<86>Nov 15 10:15:27 userdel[707153]: delete user 'rooter'
<86>Nov 15 10:15:27 userdel[707153]: removed group 'rooter' owned by 'rooter'
<86>Nov 15 10:15:27 userdel[707153]: removed shadow group 'rooter' owned by 'rooter'
<86>Nov 15 10:15:27 groupadd[707196]: group added to /etc/group: name=rooter, GID=615
<86>Nov 15 10:15:27 groupadd[707196]: new group: name=rooter, GID=615
<86>Nov 15 10:15:27 useradd[707203]: new user: name=rooter, UID=615, GID=615, home=/root, shell=/bin/bash
<86>Nov 15 10:15:27 userdel[707221]: delete user 'builder'
<86>Nov 15 10:15:27 userdel[707221]: removed group 'builder' owned by 'builder'
<86>Nov 15 10:15:27 userdel[707221]: removed shadow group 'builder' owned by 'builder'
<86>Nov 15 10:15:27 groupadd[707235]: group added to /etc/group: name=builder, GID=616
<86>Nov 15 10:15:27 groupadd[707235]: group added to /etc/gshadow: name=builder
<86>Nov 15 10:15:27 groupadd[707235]: new group: name=builder, GID=616
<86>Nov 15 10:15:27 useradd[707244]: new user: name=builder, UID=616, GID=616, home=/usr/src, shell=/bin/bash
<13>Nov 15 10:15:29 rpmi: libgdbm-1.8.3-alt10 1454943334 installed
<13>Nov 15 10:15:29 rpmi: libexpat-2.2.10-alt1 p9+261554.100.1.1 1605103337 installed
<13>Nov 15 10:15:29 rpmi: libp11-kit-0.23.15-alt2 p9+254920.2400.19.1 1601385903 installed
<13>Nov 15 10:15:29 rpmi: libtasn1-4.14-alt1 p9+235792.100.2.1 1565425233 installed
<13>Nov 15 10:15:29 rpmi: rpm-macros-alternatives-0.5.1-alt1 sisyphus+226946.100.1.1 1554830426 installed
<13>Nov 15 10:15:29 rpmi: alternatives-0.5.1-alt1 sisyphus+226946.100.1.1 1554830426 installed
<13>Nov 15 10:15:29 rpmi: ca-certificates-2020.06.29-alt1 p9+258899.100.3.1 1601998604 installed
<13>Nov 15 10:15:29 rpmi: ca-trust-0.1.2-alt1 p9+233349.100.1.1 1561655062 installed
<13>Nov 15 10:15:29 rpmi: p11-kit-trust-0.23.15-alt2 p9+254920.2400.19.1 1601385903 installed
<13>Nov 15 10:15:29 rpmi: libcrypto1.1-1.1.1g-alt1 p9+250580.100.5.1 1588175266 installed
<13>Nov 15 10:15:29 rpmi: libssl1.1-1.1.1g-alt1 p9+250580.100.5.1 1588175266 installed
<13>Nov 15 10:15:29 rpmi: python3-3.7.4-alt3 p9+249932.100.2.1 1587127349 installed
<13>Nov 15 10:15:29 rpmi: libpython3-3.7.4-alt3 p9+249932.100.2.1 1587127349 installed
<13>Nov 15 10:15:30 rpmi: python3-base-3.7.4-alt3 p9+249932.100.2.1 1587127349 installed
<13>Nov 15 10:15:30 rpmi: tests-for-installed-python3-pkgs-0.1.13.1-alt2 1535450458 installed
<13>Nov 15 10:15:30 rpmi: rpm-build-python3-0.1.13.1-alt2 1535450458 installed
<13>Nov 15 10:15:32 rpmi: python3-module-six-1.12.0-alt1 sisyphus+219665.100.2.1 1548148570 installed
<13>Nov 15 10:15:32 rpmi: python3-module-pluggy-0.11.0-alt1 sisyphus+229116.100.1.1 1557316655 installed
<13>Nov 15 10:15:32 rpmi: python3-module-pkg_resources-1:40.8.0-alt2 sisyphus+229158.200.2.1 1557735221 installed
<13>Nov 15 10:15:32 rpmi: python3-module-more-itertools-7.0.0-alt3 sisyphus+226536.100.1.1 1554329928 installed
<13>Nov 15 10:15:32 rpmi: python3-module-iniconfig-1.0.0-alt1 sisyphus+227494.1100.1.3 1555839106 installed
<13>Nov 15 10:15:32 rpmi: python3-module-attrs-19.1.0-alt1 sisyphus+227473.2100.1.2 1555756986 installed
<13>Nov 15 10:15:32 rpmi: python3-module-atomicwrites-1.3.0-alt1 sisyphus+227473.2000.1.3 1555763467 installed
<13>Nov 15 10:15:32 rpmi: python3-module-apipkg-1.5-alt1 sisyphus+227465.1100.1.2 1555756555 installed
<13>Nov 15 10:15:32 rpmi: python3-module-py-1.8.0-alt2 sisyphus+228349.1400.4.1 1556631070 installed
<13>Nov 15 10:15:32 rpmi: python-modules-curses-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: libtinfo-devel-6.1.20180407-alt2 sisyphus+222164.200.1.1 1550686226 installed
<13>Nov 15 10:15:33 rpmi: libncurses-devel-6.1.20180407-alt2 sisyphus+222164.200.1.1 1550686226 installed
<13>Nov 15 10:15:33 rpmi: libverto-0.3.0-alt1_7 sisyphus+225932.100.1.1 1553994919 installed
<13>Nov 15 10:15:33 rpmi: libkeyutils-1.6-alt2 sisyphus+226520.100.2.1 1554512089 installed
<13>Nov 15 10:15:33 rpmi: libcom_err-1.44.6-alt1 sisyphus+224154.100.1.1 1552091678 installed
<86>Nov 15 10:15:33 groupadd[730753]: group added to /etc/group: name=_keytab, GID=499
<86>Nov 15 10:15:33 groupadd[730753]: group added to /etc/gshadow: name=_keytab
<86>Nov 15 10:15:33 groupadd[730753]: new group: name=_keytab, GID=499
<13>Nov 15 10:15:33 rpmi: libkrb5-1.17.1-alt1 p9+242852.100.2.1 1576572639 installed
<13>Nov 15 10:15:33 rpmi: libtirpc-1.0.3-alt1 1532008017 installed
<13>Nov 15 10:15:33 rpmi: libnsl2-1.1.0-alt1_1 1511548749 installed
<13>Nov 15 10:15:33 rpmi: python-modules-compiler-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python-modules-email-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python-modules-unittest-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python-modules-encodings-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python-modules-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python-modules-nis-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python-modules-xml-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python-modules-hotshot-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python-modules-bsddb-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python-modules-ctypes-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python-modules-multiprocessing-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python-modules-logging-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python-modules-distutils-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: libnsl2-devel-1.1.0-alt1_1 1511548749 installed
<13>Nov 15 10:15:33 rpmi: python-dev-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python-tools-2to3-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003681 installed
<13>Nov 15 10:15:33 rpmi: python3-module-pytest-3.10.1-alt5 sisyphus+228366.2000.2.3 1556707871 installed
Building target platforms: i586
Building for target i586
Wrote: /usr/src/in/nosrpm/python-module-demjson-2.2.4-alt1.nosrc.rpm
<13>Nov 15 10:15:36 rpmi: python3-dev-3.7.4-alt3 p9+249932.100.2.1 1587127349 installed
<13>Nov 15 10:15:36 rpmi: python-module-pkg_resources-1:40.8.0-alt2 sisyphus+229158.200.2.1 1557735221 installed
<13>Nov 15 10:15:37 rpmi: python-module-setuptools-1:40.8.0-alt2 sisyphus+229158.200.2.1 1557735221 installed
<13>Nov 15 10:15:37 rpmi: python3-module-setuptools-1:40.8.0-alt2 sisyphus+229158.200.2.1 1557735221 installed
Installing python-module-demjson-2.2.4-alt1.src.rpm
Building target platforms: i586
Building for target i586
Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.92418
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ rm -rf demjson-2.2.4
+ echo 'Source #0 (demjson-2.2.4.tar.gz):'
Source #0 (demjson-2.2.4.tar.gz):
+ /bin/gzip -dc /usr/src/RPM/SOURCES/demjson-2.2.4.tar.gz
+ /bin/tar -xf -
+ cd demjson-2.2.4
+ /bin/chmod -c -Rf u+rwX,go-w .
+ cp -fR . ../python3
+ find ../python3 -type f -name '*.py' -exec 2to3 -w -n '{}' +
RefactoringTool: Skipping optional fixer: buffer
RefactoringTool: Skipping optional fixer: idioms
RefactoringTool: Skipping optional fixer: set_literal
RefactoringTool: Skipping optional fixer: ws_comma
RefactoringTool: Refactored ../python3/test/test_demjson.py
--- ../python3/test/test_demjson.py	(original)
+++ ../python3/test/test_demjson.py	(refactored)
@@ -58,17 +58,17 @@
     # test method.
     def skipUnlessPython3(method):
         def always_pass(self):
-            print "\nSKIPPING TEST %s: Requires Python 3" % method.__name__
+            print("\nSKIPPING TEST %s: Requires Python 3" % method.__name__)
             return True
         return always_pass
     def skipUnlessPython27(method):
         def always_pass(self):
-            print "\nSKIPPING TEST %s: Requires Python 2.7 or greater" % method.__name__
+            print("\nSKIPPING TEST %s: Requires Python 2.7 or greater" % method.__name__)
             return True
         return always_pass
     def skipUnlessWidePython(method):
         def always_pass(self):
-            print "\nSKIPPING TEST %s: Requires Python with wide Unicode support (maxunicode > U+FFFF)" % method.__name__
+            print("\nSKIPPING TEST %s: Requires Python with wide Unicode support (maxunicode > U+FFFF)" % method.__name__)
             return True
         return always_pass
 
@@ -173,14 +173,14 @@
         chars = []
         for i, b in enumerate(byte_values):
             if ord('B') <= b <= ord('Z'):
-                chars.append( unichr(b-1) )
+                chars.append( chr(b-1) )
             elif b == ord('A'):
-                chars.append( u'Z' )
-            elif b <= 0x7fL:
-                chars.append( unichr(b) )
+                chars.append( 'Z' )
+            elif b <= 0x7f:
+                chars.append( chr(b) )
             else:
                 raise UnicodeDecodeError('rot-1',byte_list,i,i,"Can not decode byte value 0x%02x"%b)
-        return (u''.join(chars), i+1)
+        return (''.join(chars), i+1)
 
 ## ------------------------------
 class no_curly_braces(codecs.CodecInfo):
@@ -213,8 +213,8 @@
             if b > 0x7f or b == ord('{') or b == ord('}'):
                 raise UnicodeDecodeError('degenerate',byte_list,i,i,"Can not decode byte value 0x%02x"%b)
             else:
-                chars.append( unichr(b) )
-        return (u''.join(chars), i+1)
+                chars.append( chr(b) )
+        return (''.join(chars), i+1)
 
 ## ------------------------------
 
@@ -411,11 +411,9 @@
         try:
             m = r.match( value )
         except TypeError:
-            raise self.failureException, \
-                  "can't compare non-string to regex: %r" % value
+            raise self.failureException("can't compare non-string to regex: %r" % value)
         if m is None:
-            raise self.failureException, \
-                  (msg or '%r !~ /%s/' %(value,pattern))
+            raise self.failureException(msg or '%r !~ /%s/' %(value,pattern))
 
     def testEncodeNumber(self):
         self.assertEqual(demjson.encode(0), '0')
@@ -468,7 +466,7 @@
                             'Decimal -0 is not encoded as a negative zero')
 
     def testJsonInt(self):
-        self.assertTrue( isinstance( demjson.json_int(0), (int,long) ) )
+        self.assertTrue( isinstance( demjson.json_int(0), int ) )
         self.assertEqual(demjson.json_int(0), 0)
         self.assertEqual(demjson.json_int(555999), 555999)
         self.assertEqual(demjson.json_int(-555999), -555999)
@@ -570,10 +568,10 @@
     def testDecodeStringUnicodeEscape(self):
         self.assertEqual(demjson.decode(r'"\u0000"',warnings=False), '\0')
         self.assertEqual(demjson.decode(r'"\u0061"'), 'a')
-        self.assertEqual(demjson.decode(r'"\u2012"'), u'\u2012')
-        self.assertEqual(demjson.decode(r'"\u1eDc"'), u'\u1edc')
-        self.assertEqual(demjson.decode(r'"\uffff"'), u'\uffff')
-        self.assertEqual(demjson.decode(r'"\u00a012"'), u'\u00a0' + '12')
+        self.assertEqual(demjson.decode(r'"\u2012"'), '\u2012')
+        self.assertEqual(demjson.decode(r'"\u1eDc"'), '\u1edc')
+        self.assertEqual(demjson.decode(r'"\uffff"'), '\uffff')
+        self.assertEqual(demjson.decode(r'"\u00a012"'), '\u00a0' + '12')
         self.assertRaises(demjson.JSONDecodeError, demjson.decode, r'"\u041"', strict=True)
         self.assertRaises(demjson.JSONDecodeError, demjson.decode, r'"\u041Z"', strict=True)
         self.assertRaises(demjson.JSONDecodeError, demjson.decode, r'"\u"', strict=True)
@@ -581,8 +579,8 @@
 
     def testEncodeStringUnicodeEscape(self):
         self.assertEqual(demjson.encode('\0', escape_unicode=True), r'"\u0000"')
-        self.assertEqual(demjson.encode(u'\u00e0', escape_unicode=True), r'"\u00e0"')
-        self.assertEqual(demjson.encode(u'\u2012', escape_unicode=True), r'"\u2012"')
+        self.assertEqual(demjson.encode('\u00e0', escape_unicode=True), r'"\u00e0"')
+        self.assertEqual(demjson.encode('\u2012', escape_unicode=True), r'"\u2012"')
 
     def testHtmlSafe(self):
         self.assertEqual(demjson.encode('<', html_safe=True), r'"\u003c"')
@@ -593,14 +591,14 @@
         self.assertEqual(demjson.encode('a<b>c&d/e', html_safe=False), r'"a<b>c&d/e"')
 
     def testDecodeStringExtendedUnicodeEscape(self):
-        self.assertEqual(demjson.decode(r'"\u{0041}"',allow_extended_unicode_escapes=True), u'A')
-        self.assertEqual(demjson.decode(r'"\u{1aFe}"',allow_extended_unicode_escapes=True), u'\u1afe')
-        self.assertEqual(demjson.decode(r'"\u{41}"',allow_extended_unicode_escapes=True), u'A')
-        self.assertEqual(demjson.decode(r'"\u{1}"',allow_extended_unicode_escapes=True), u'\u0001')
-        self.assertEqual(demjson.decode(r'"\u{00000000000041}"',allow_extended_unicode_escapes=True), u'A')
-        self.assertEqual(demjson.decode(r'"\u{1000a}"',allow_extended_unicode_escapes=True), u'\U0001000a')
-        self.assertEqual(demjson.decode(r'"\u{10ffff}"',allow_extended_unicode_escapes=True), u'\U0010FFFF')
-        self.assertEqual(demjson.decode(r'"\u{0000010ffff}"',allow_extended_unicode_escapes=True), u'\U0010FFFF')
+        self.assertEqual(demjson.decode(r'"\u{0041}"',allow_extended_unicode_escapes=True), 'A')
+        self.assertEqual(demjson.decode(r'"\u{1aFe}"',allow_extended_unicode_escapes=True), '\u1afe')
+        self.assertEqual(demjson.decode(r'"\u{41}"',allow_extended_unicode_escapes=True), 'A')
+        self.assertEqual(demjson.decode(r'"\u{1}"',allow_extended_unicode_escapes=True), '\u0001')
+        self.assertEqual(demjson.decode(r'"\u{00000000000041}"',allow_extended_unicode_escapes=True), 'A')
+        self.assertEqual(demjson.decode(r'"\u{1000a}"',allow_extended_unicode_escapes=True), '\U0001000a')
+        self.assertEqual(demjson.decode(r'"\u{10ffff}"',allow_extended_unicode_escapes=True), '\U0010FFFF')
+        self.assertEqual(demjson.decode(r'"\u{0000010ffff}"',allow_extended_unicode_escapes=True), '\U0010FFFF')
         self.assertRaises(demjson.JSONDecodeError, demjson.decode, r'"\u{0041}"', strict=True)
         self.assertRaises(demjson.JSONDecodeError, demjson.decode, r'"\u{110000}"', allow_extended_unicode_escapes=True)
         self.assertRaises(demjson.JSONDecodeError, demjson.decode, r'"\u{012g}"', allow_extended_unicode_escapes=True)
@@ -678,27 +676,27 @@
     def testDecodeStringRawUnicode(self):
         QT = ord('"')
         self.assertEqual(demjson.decode(rawbytes([ QT,0xC3,0xA0,QT ]),
-                                        encoding='utf-8'), u'\u00e0')
+                                        encoding='utf-8'), '\u00e0')
         self.assertEqual(demjson.decode(rawbytes([ QT,0,0,0, 0xE0,0,0,0, QT,0,0,0 ]),
-                                        encoding='ucs4le'), u'\u00e0')
+                                        encoding='ucs4le'), '\u00e0')
         self.assertEqual(demjson.decode(rawbytes([ 0,0,0,QT, 0,0,0,0xE0, 0,0,0,QT ]),
-                                        encoding='ucs4be'), u'\u00e0')
+                                        encoding='ucs4be'), '\u00e0')
         self.assertEqual(demjson.decode(rawbytes([ 0,0,0,QT, 0,0,0,0xE0, 0,0,0,QT ]),
-                                        encoding='utf-32be'), u'\u00e0')
+                                        encoding='utf-32be'), '\u00e0')
         self.assertEqual(demjson.decode(rawbytes([ 0,0,0xFE,0xFF, 0,0,0,QT, 0,0,0,0xE0, 0,0,0,QT ]),
-                                        encoding='ucs4'), u'\u00e0')
+                                        encoding='ucs4'), '\u00e0')
 
     def testEncodeStringRawUnicode(self):
         QT = ord('"')
-        self.assertEqual(demjson.encode(u'\u00e0', escape_unicode=False, encoding='utf-8'),
+        self.assertEqual(demjson.encode('\u00e0', escape_unicode=False, encoding='utf-8'),
                          rawbytes([ QT, 0xC3, 0xA0, QT ]) )
-        self.assertEqual(demjson.encode(u'\u00e0', escape_unicode=False, encoding='ucs4le'),
+        self.assertEqual(demjson.encode('\u00e0', escape_unicode=False, encoding='ucs4le'),
                          rawbytes([ QT,0,0,0, 0xE0,0,0,0, QT,0,0,0 ]) )
-        self.assertEqual(demjson.encode(u'\u00e0', escape_unicode=False, encoding='ucs4be'),
+        self.assertEqual(demjson.encode('\u00e0', escape_unicode=False, encoding='ucs4be'),
                          rawbytes([ 0,0,0,QT, 0,0,0,0xE0, 0,0,0,QT ]) )
-        self.assertEqual(demjson.encode(u'\u00e0', escape_unicode=False, encoding='utf-32be'),
+        self.assertEqual(demjson.encode('\u00e0', escape_unicode=False, encoding='utf-32be'),
                          rawbytes([ 0,0,0,QT, 0,0,0,0xE0, 0,0,0,QT ]) )
-        self.assertTrue(demjson.encode(u'\u00e0', escape_unicode=False, encoding='ucs4')
+        self.assertTrue(demjson.encode('\u00e0', escape_unicode=False, encoding='ucs4')
                         in [rawbytes([ 0,0,0xFE,0xFF, 0,0,0,QT, 0,0,0,0xE0, 0,0,0,QT ]),
                             rawbytes([ 0xFF,0xFE,0,0, QT,0,0,0, 0xE0,0,0,0, QT,0,0,0 ]) ])
 
@@ -707,36 +705,36 @@
         # output encoding could have represented them in the raw.
 
         # Test U+001B escape - a control character
-        self.assertEqual(demjson.encode(u'\u001B', escape_unicode=False, encoding='utf-8'),
+        self.assertEqual(demjson.encode('\u001B', escape_unicode=False, encoding='utf-8'),
                          rawbytes([ ord(c) for c in '"\\u001b"' ]) )
         # Test U+007F delete - a control character
-        self.assertEqual(demjson.encode(u'\u007F', escape_unicode=False, encoding='utf-8'),
+        self.assertEqual(demjson.encode('\u007F', escape_unicode=False, encoding='utf-8'),
                          rawbytes([ ord(c) for c in '"\\u007f"' ]) )
         # Test U+00AD soft hyphen - a format control character
-        self.assertEqual(demjson.encode(u'\u00AD', escape_unicode=False, encoding='utf-8'),
+        self.assertEqual(demjson.encode('\u00AD', escape_unicode=False, encoding='utf-8'),
                          rawbytes([ ord(c) for c in '"\\u00ad"' ]) )
         # Test U+200F right-to-left mark
-        self.assertEqual(demjson.encode(u'\u200F', escape_unicode=False, encoding='utf-8'),
+        self.assertEqual(demjson.encode('\u200F', escape_unicode=False, encoding='utf-8'),
                          rawbytes([ ord(c) for c in '"\\u200f"' ]) )
         # Test U+2028 line separator
-        self.assertEqual(demjson.encode(u'\u2028', escape_unicode=False, encoding='utf-8'),
+        self.assertEqual(demjson.encode('\u2028', escape_unicode=False, encoding='utf-8'),
                          rawbytes([ ord(c) for c in '"\\u2028"' ]) )
         # Test U+2029 paragraph separator
-        self.assertEqual(demjson.encode(u'\u2029', escape_unicode=False, encoding='utf-8'),
+        self.assertEqual(demjson.encode('\u2029', escape_unicode=False, encoding='utf-8'),
                          rawbytes([ ord(c) for c in '"\\u2029"' ]) )
         # Test U+E007F cancel tag
-        self.assertEqual(demjson.encode(u'\U000E007F', escape_unicode=False, encoding='utf-8'),
+        self.assertEqual(demjson.encode('\U000E007F', escape_unicode=False, encoding='utf-8'),
                          rawbytes([ ord(c) for c in '"\\udb40\\udc7f"' ]) )
 
     def testDecodeSupplementalUnicode(self):
         import sys
         if sys.maxunicode > 65535:
             self.assertEqual(demjson.decode( rawbytes([ ord(c) for c in r'"\udbc8\udf45"' ]) ),
-                             u'\U00102345')
+                             '\U00102345')
             self.assertEqual(demjson.decode( rawbytes([ ord(c) for c in r'"\ud800\udc00"' ]) ),
-                             u'\U00010000')
+                             '\U00010000')
             self.assertEqual(demjson.decode( rawbytes([ ord(c) for c in r'"\udbff\udfff"' ]) ),
-                             u'\U0010ffff')
+                             '\U0010ffff')
         for bad_case in [r'"\ud801"', r'"\udc02"',
                          r'"\ud801\udbff"', r'"\ud801\ue000"',
                          r'"\ud801\u2345"']:
@@ -749,11 +747,11 @@
     def testEncodeSupplementalUnicode(self):
         import sys
         if sys.maxunicode > 65535:
-            self.assertEqual(demjson.encode(u'\U00010000',encoding='ascii'),
+            self.assertEqual(demjson.encode('\U00010000',encoding='ascii'),
                              rawbytes([ ord(c) for c in r'"\ud800\udc00"' ]) )
-            self.assertEqual(demjson.encode(u'\U00102345',encoding='ascii'),
+            self.assertEqual(demjson.encode('\U00102345',encoding='ascii'),
                              rawbytes([ ord(c) for c in r'"\udbc8\udf45"' ]) )
-            self.assertEqual(demjson.encode(u'\U0010ffff',encoding='ascii'),
+            self.assertEqual(demjson.encode('\U0010ffff',encoding='ascii'),
                              rawbytes([ ord(c) for c in r'"\udbff\udfff"' ]) )
 
     def have_codec(self, name):
@@ -772,7 +770,7 @@
             # is different than ISO8859-1.
             d = rawbytes([ ord('"'), ord('a'), 0xe0, 0x8c, ord('"') ])
             self.assertEqual(demjson.decode( d, encoding='cp1252' ),
-                             u"a\u00e0\u0152")
+                             "a\u00e0\u0152")
 
     def testDecodeWithEBCDIC(self):
         have_ebcdic = self.have_codec('ibm037')
@@ -780,7 +778,7 @@
             # Try EBCDIC
             d = rawbytes([ 0x7f, 0xc1, 0xc0, 0x7c, 0xe0, 0xa4, 0xf0, 0xf1, 0xf5, 0xf2, 0x7f ])
             self.assertEqual(demjson.decode( d, encoding='ibm037' ),
-                             u"A{@\u0152")
+                             "A{@\u0152")
 
     def testDecodeWithISO8859_1(self):
         have_iso8859_1 = self.have_codec('iso8859-1')
@@ -788,21 +786,21 @@
             # Try ISO-8859-1
             d = rawbytes([ ord('"'), ord('a'), 0xe0, ord('\\'), ord('u'), ord('0'), ord('1'), ord('5'), ord('2'), ord('"') ])
             self.assertEqual(demjson.decode( d, encoding='iso8859-1' ),
-                             u"a\u00e0\u0152")
+                             "a\u00e0\u0152")
 
     def testDecodeWithCustomCodec(self):
         # Try Rot-1
         ci = rot_one.lookup('rot-1')
         d = rawbytes([ ord('"'), ord('A'), ord('B'), ord('Y'), ord('Z'), ord(' '), ord('5'), ord('"') ])
         self.assertEqual(demjson.decode( d, encoding=ci ),
-                         u"ZAXY 5")
+                         "ZAXY 5")
 
     def testDecodeWithDegenerateCodec(self):
         ci = no_curly_braces.lookup('degenerate')
 
         d = rawbytes([ord(c) for c in '"abc"' ])
         self.assertEqual(demjson.decode( d, encoding=ci ),
-                         u"abc")
+                         "abc")
 
         d = rawbytes([ord(c) for c in '{"abc":42}' ])
         self.assertRaises(demjson.JSONDecodeError, demjson.decode, d, encoding=ci )
@@ -810,36 +808,36 @@
     def testEncodeWithWindows1252(self):
         have_cp1252 = self.have_codec('cp1252')
         if have_cp1252:
-            s = u'a\u00e0\u0152'
+            s = 'a\u00e0\u0152'
             self.assertEqual(demjson.encode( s, encoding='cp1252' ),
                              rawbytes([ ord('"'), ord('a'), 0xe0, 0x8c, ord('"') ]) )
 
     def testEncodeWithEBCDIC(self):
         have_ebcdic = self.have_codec('ibm037')
         if have_ebcdic:
-            s = u"A{@\u0152"
+            s = "A{@\u0152"
             self.assertEqual(demjson.encode( s, encoding='ibm037' ),
                              rawbytes([ 0x7f, 0xc1, 0xc0, 0x7c, 0xe0, 0xa4, 0xf0, 0xf1, 0xf5, 0xf2, 0x7f ]) )
 
     def testEncodeWithISO8859_1(self):
         have_iso8859_1 = self.have_codec('iso8859-1')
         if have_iso8859_1:
-            s = u'a\u00e0\u0152'
+            s = 'a\u00e0\u0152'
             self.assertEqual(demjson.encode( s, encoding='iso8859-1' ),
                              rawbytes([ ord('"'), ord('a'), 0xe0, ord('\\'), ord('u'), ord('0'), ord('1'), ord('5'), ord('2'), ord('"') ]) )
 
     def testEncodeWithCustomCodec(self):
         # Try Rot-1
         ci = rot_one.lookup('rot-1')
-        d = u"ABYZ 5"
+        d = "ABYZ 5"
         self.assertEqual(demjson.encode( d, encoding=ci ),
                          rawbytes([ ord('"'), ord('B'), ord('C'), ord('Z'), ord('A'), ord(' '), ord('5'), ord('"') ]) )
 
     def testEncodeWithDegenerateCodec(self):
         ci = no_curly_braces.lookup('degenerate')
 
-        self.assertRaises(demjson.JSONEncodeError, demjson.encode, u'"abc"', encoding=ci )
-        self.assertRaises(demjson.JSONEncodeError, demjson.encode, u'{"abc":42}', encoding=ci )
+        self.assertRaises(demjson.JSONEncodeError, demjson.encode, '"abc"', encoding=ci )
+        self.assertRaises(demjson.JSONEncodeError, demjson.encode, '{"abc":42}', encoding=ci )
 
 
     def testDecodeArraySimple(self):
@@ -903,7 +901,7 @@
         self.assertRaises(demjson.JSONDecodeError, demjson.decode, '{"a":1,"a":1}', prevent_duplicate_keys=True)
         self.assertRaises(demjson.JSONDecodeError, demjson.decode, '{"a":1,"a":2}', prevent_duplicate_keys=True)
         self.assertRaises(demjson.JSONDecodeError, demjson.decode, '{"b":9,"a":1,"c":42,"a":2}', prevent_duplicate_keys=True)
-        self.assertRaises(demjson.JSONDecodeError, demjson.decode, '{"a":1,"\u0061":1}', prevent_duplicate_keys=True)
+        self.assertRaises(demjson.JSONDecodeError, demjson.decode, '{"a":1,"\\u0061":1}', prevent_duplicate_keys=True)
 
     def testDecodeObjectBad(self):
         self.assertRaises(demjson.JSONDecodeError, demjson.decode, '{"a"}', strict=True)
@@ -948,7 +946,7 @@
                 class i(object):
                     def __init__(self):
                         self.n = 0
-                    def next(self):
+                    def __next__(self):
                         self.n += 1
                         if self.n < 10:
                             return 2**self.n
@@ -959,12 +957,12 @@
                          '[2,4,8,16,32,64,128,256,512]' )
 
     def testEncodeStringLike(self):
-        import UserString
-        class LikeString(UserString.UserString):
+        import collections
+        class LikeString(collections.UserString):
             pass
         mystring = LikeString('hello')
         self.assertEqual(demjson.encode(mystring), '"hello"')
-        mystring = LikeString(u'hi\u2012there')
+        mystring = LikeString('hi\u2012there')
         self.assertEqual(demjson.encode(mystring, escape_unicode=True, encoding='utf-8'),
                          rawbytes([ ord(c) for c in r'"hi\u2012there"' ]) )
 
@@ -986,7 +984,7 @@
         # Form-feed is not a valid JSON whitespace char
         self.assertRaises(demjson.JSONDecodeError, demjson.decode, '\x0c[]', strict=True)
         # No-break-space is not a valid JSON whitespace char
-        self.assertRaises(demjson.JSONDecodeError, demjson.decode, u'\u00a0[]', strict=True)
+        self.assertRaises(demjson.JSONDecodeError, demjson.decode, '\u00a0[]', strict=True)
 
     def testDecodeInvalidStartingType(self):
         if False:
@@ -1084,9 +1082,9 @@
         def pairs(dct):
             return sorted(dct.items())
         self.assertEqual(demjson.decode('{"a":42, "b":{"c":99}}'),
-                         {u'a': 42, u'b': {u'c': 99}} )
+                         {'a': 42, 'b': {'c': 99}} )
         self.assertEqual(demjson.decode('{"a":42, "b":{"c":99}}', decode_object=pairs),
-                         [(u'a', 42), (u'b', [(u'c', 99)])] )
+                         [('a', 42), ('b', [('c', 99)])] )
 
     def testDecodeStringHook(self):
         import string
@@ -1110,13 +1108,13 @@
         d2 = {complex(0,42): "imaginary-forty-two", "a":"Alpha"}
 
         def make_key( k ):
-            if isinstance(k,basestring):
+            if isinstance(k,str):
                 raise demjson.JSONSkipHook
             else:
                 return repr(k)
 
         def make_key2( k ):
-            if isinstance(k, (int,basestring)):
+            if isinstance(k, (int,str)):
                 raise demjson.JSONSkipHook
             else:
                 return repr(k)
@@ -1202,7 +1200,7 @@
         def enc_val( val ):
             if isinstance(val, complex):
                 return {'real':val.real, 'imaginary':val.imag}
-            elif isinstance(val, basestring):
+            elif isinstance(val, str):
                 return val.upper()
             elif isinstance(val, datetime.date):
                 return val.strftime("Year %Y Month %m Day %d")
@@ -1211,12 +1209,12 @@
 
         v = {'ten':10, 'number': complex(3, 7.25), 'asof': datetime.date(2014,1,17)}
         self.assertEqual(demjson.encode( v, encode_value=enc_val ),
-                         u'{"ASOF":"YEAR 2014 MONTH 01 DAY 17","NUMBER":{"IMAGINARY":7.25,"REAL":3.0},"TEN":10}' )
+                         '{"ASOF":"YEAR 2014 MONTH 01 DAY 17","NUMBER":{"IMAGINARY":7.25,"REAL":3.0},"TEN":10}' )
 
     def testEncodeDefault(self):
         import datetime
         def dictkeys( d ):
-            return "/".join( sorted([ str(k) for k in d.keys() ]) )
+            return "/".join( sorted([ str(k) for k in list(d.keys()) ]) )
         def magic( d ):
             return complex( 1, len(d))
         class Anon(object):
@@ -1235,13 +1233,13 @@
         vals = [ "abc", 123, Anon("Hello"), sys, {'a':42,'wow':True} ]
 
         self.assertEqual(demjson.encode( vals, encode_default=repr ),
-                         u'["abc",123,"%s","%s",{"a":42,"wow":true}]' % ( repr(vals[2]), repr(vals[3])) )
+                         '["abc",123,"%s","%s",{"a":42,"wow":true}]' % ( repr(vals[2]), repr(vals[3])) )
 
         self.assertEqual(demjson.encode( vals, encode_default=repr, encode_dict=dictkeys ),
-                         u'["abc",123,"%s","%s","a/wow"]' % ( repr(vals[2]), repr(vals[3])) )
+                         '["abc",123,"%s","%s","a/wow"]' % ( repr(vals[2]), repr(vals[3])) )
 
         self.assertEqual(demjson.encode( vals, encode_default=repr, encode_dict=magic ),
-                         u'["abc",123,"%s","%s","%s"]' % ( repr(vals[2]), repr(vals[3]), repr(magic(vals[4])) ) )
+                         '["abc",123,"%s","%s","%s"]' % ( repr(vals[2]), repr(vals[3]), repr(magic(vals[4])) ) )
 
 
         self.assertRaises( demjson.JSONEncodeError, demjson.encode, Anon("Hello") )
@@ -1249,12 +1247,12 @@
         self.assertRaises( demjson.JSONEncodeError, demjson.encode, Anon2("Hello"), encode_default=encode_anon )
 
     def testEncodeDate(self):
-        d = datetime.date(2014,01,04)
+        d = datetime.date(2014,0o1,0o4)
         self.assertEqual(demjson.encode( d ), '"2014-01-04"' )
         self.assertEqual(demjson.encode( d, date_format='%m/%d/%Y' ), '"01/04/2014"' )
 
     def testEncodeDatetime(self):
-        d = datetime.datetime(2014,01,04,13,22,15)
+        d = datetime.datetime(2014,0o1,0o4,13,22,15)
         self.assertEqual(demjson.encode( d ), '"2014-01-04T13:22:15"' )
         self.assertEqual(demjson.encode( d, datetime_format='%m/%d/%Y %H hr %M min' ), '"01/04/2014 13 hr 22 min"' )
 
@@ -1417,8 +1415,8 @@
         self.assertEqual( self.decode_stats( '"abc"' ).max_string_length, 3 )
         self.assertEqual( self.decode_stats( '"abc"' ).total_string_length, 3 )
         self.assertEqual( self.decode_stats( r'"\u2020"' ).max_string_length, 1 )
-        self.assertEqual( self.decode_stats( u'"\u2020"' ).max_string_length, 1 )
-        self.assertEqual( self.decode_stats( u'"\U0010ffff"' ).max_string_length, (1 if is_wide_python else 2) )
+        self.assertEqual( self.decode_stats( '"\u2020"' ).max_string_length, 1 )
+        self.assertEqual( self.decode_stats( '"\U0010ffff"' ).max_string_length, (1 if is_wide_python else 2) )
         self.assertEqual( self.decode_stats( r'"\ud804\udc88"' ).max_string_length, (1 if is_wide_python else 2) )
         self.assertEqual( self.decode_statsRefactoringTool: Refactored ../python3/demjson.py
( '["","abc","defghi"]' ).max_string_length, 6 )
         self.assertEqual( self.decode_stats( '["","abc","defghi"]' ).total_string_length, 9 )
@@ -1428,8 +1426,8 @@
         self.assertEqual( self.decode_stats( r'"\0"' ).max_codepoint, 0 )
         self.assertEqual( self.decode_stats( r'"\u0000"' ).min_codepoint, 0 )
         self.assertEqual( self.decode_stats( r'"\u0000"' ).max_codepoint, 0 )
-        self.assertEqual( self.decode_stats( u'"\u0000"' ).min_codepoint, 0 )
-        self.assertEqual( self.decode_stats( u'"\u0000"' ).max_codepoint, 0 )
+        self.assertEqual( self.decode_stats( '"\u0000"' ).min_codepoint, 0 )
+        self.assertEqual( self.decode_stats( '"\u0000"' ).max_codepoint, 0 )
         self.assertEqual( self.decode_stats( r'"\1"' ).min_codepoint, 1 )
         self.assertEqual( self.decode_stats( r'"\1"' ).max_codepoint, 1 )
         self.assertEqual( self.decode_stats( r'"\u0001"' ).min_codepoint, 1 )
@@ -1442,12 +1440,12 @@
         self.assertEqual( self.decode_stats( r'"\377"' ).max_codepoint, 255 )
         self.assertEqual( self.decode_stats( r'"\uffff"' ).min_codepoint, 0xffff )
         self.assertEqual( self.decode_stats( r'"\uffff"' ).max_codepoint, 0xffff )
-        self.assertEqual( self.decode_stats( u'"\uffff"' ).min_codepoint, 0xffff )
-        self.assertEqual( self.decode_stats( u'"\uffff"' ).max_codepoint, 0xffff )
+        self.assertEqual( self.decode_stats( '"\uffff"' ).min_codepoint, 0xffff )
+        self.assertEqual( self.decode_stats( '"\uffff"' ).max_codepoint, 0xffff )
         self.assertEqual( self.decode_stats( '["mnoapj","kzcde"]' ).min_codepoint, ord('a') )
         self.assertEqual( self.decode_stats( '["mnoapj","kzcde"]' ).max_codepoint, ord('z') )
-        self.assertEqual( self.decode_stats( u'"\U0010ffff"' ).min_codepoint, (0x10ffff if is_wide_python else 0xdbff) )
-        self.assertEqual( self.decode_stats( u'"\U0010ffff"' ).max_codepoint, (0x10ffff if is_wide_python else 0xdfff) )
+        self.assertEqual( self.decode_stats( '"\U0010ffff"' ).min_codepoint, (0x10ffff if is_wide_python else 0xdbff) )
+        self.assertEqual( self.decode_stats( '"\U0010ffff"' ).max_codepoint, (0x10ffff if is_wide_python else 0xdfff) )
 
     def testStatsComments(self):
         self.assertEqual( self.decode_stats( 'true' ).num_comments, 0 )
@@ -1493,9 +1491,9 @@
 
 def run_all_tests():
     unicode_width = 'narrow' if sys.maxunicode<=0xFFFF else 'wide'
-    print 'Running with demjson version %s, Python version %s with %s-Unicode' % (demjson.__version__, sys.version.split(' ',1)[0],unicode_width)
+    print('Running with demjson version %s, Python version %s with %s-Unicode' % (demjson.__version__, sys.version.split(' ',1)[0],unicode_width))
     if int( demjson.__version__.split('.',1)[0] ) < 2:
-        print 'WARNING: TESTING AGAINST AN OLD VERSION!'
+        print('WARNING: TESTING AGAINST AN OLD VERSION!')
     unittest.main()
     
 if __name__ == '__main__':
--- ../python3/demjson.py	(original)
+++ ../python3/demjson.py	(refactored)
@@ -364,7 +364,7 @@
         return self.__module__ + '.undefined'
     def __str__(self):
         return 'undefined'
-    def __nonzero__(self):
+    def __bool__(self):
         return False
 undefined = _undefined_class()
 syntax_error = _undefined_class()  # same as undefined, but has separate identity
@@ -642,7 +642,7 @@
 # ----------------------------------------------------------------------
 # Integers
 
-class json_int( (1L).__class__ ):    # Have to specify base this way to satisfy 2to3
+class json_int( (1).__class__ ):    # Have to specify base this way to satisfy 2to3
     """A subclass of the Python int/long that remembers its format (hex,octal,etc).
 
     Initialize it the same as an int, but also accepts an additional keyword
@@ -807,9 +807,9 @@
                 return bytes(f)
         else:
             try:
-                import cStringIO as sio
+                import io as sio
             except ImportError:
-                import StringIO as sio
+                import io as sio
             f = sio.StringIO()
             write = f.write
             tobytes = f.getvalue
@@ -924,7 +924,7 @@
                 if errors == 'strict':
                     raise UnicodeDecodeError('utf32',obj,i,i+4,'Invalid code point U+%04X' % n)
                 elif errors == 'replace':
-                    chars.append( unichr(0xFFFD) )
+                    chars.append( chr(0xFFFD) )
                 elif errors == 'backslashreplace':
                     if n > 0xffff:
                         esc = "\\u%04x" % (n,)
@@ -940,7 +940,7 @@
                     pass
             else:
                 chars.append( helpers.safe_unichr(n) )
-        return (u''.join( chars ), num_bytes)
+        return (''.join( chars ), num_bytes)
 
     @staticmethod
     def utf32le_decode( obj, errors='strict' ):
@@ -960,11 +960,11 @@
 def _make_unsafe_string_chars():
     import unicodedata
     unsafe = []
-    for c in [unichr(i) for i in range(0x100)]:
-        if c == u'"' or c == u'\\' \
+    for c in [chr(i) for i in range(0x100)]:
+        if c == '"' or c == '\\' \
                 or unicodedata.category( c ) in ['Cc','Cf','Zl','Zp']:
             unsafe.append( c )
-    return u''.join( unsafe )
+    return ''.join( unsafe )
 
 class helpers(object):
     """A set of utility functions."""
@@ -1029,19 +1029,19 @@
             # Narrow-Unicode python, construct a UTF-16 surrogate pair.
             w1, w2 = helpers.make_surrogate_pair( codepoint )
             if w2 is None:
-                c = unichr(w1)
+                c = chr(w1)
             else:
-                c = unichr(w1) + unichr(w2)
-        else:
-            c = unichr(codepoint)
+                c = chr(w1) + chr(w2)
+        else:
+            c = chr(codepoint)
         return c
 
     @staticmethod
     def char_is_unicode_ws( c ):
         """Determines if the given character is a Unicode space character"""
-        if not isinstance(c,unicode):
-            c = unicode(c)
-        if c in u' \t\n\r\f\v':
+        if not isinstance(c,str):
+            c = str(c)
+        if c in ' \t\n\r\f\v':
             return True
         import unicodedata
         return unicodedata.category(c) == 'Zs'
@@ -1058,7 +1058,7 @@
         Unicode characters in the Zl or Zp categories.
 
         """
-        return c in u'\r\n\u2028\u2029'
+        return c in '\r\n\u2028\u2029'
 
     @staticmethod
     def char_is_identifier_leader( c ):
@@ -1072,7 +1072,7 @@
         """Determines if the character may be part of a JavaScript
         identifier.
         """
-        return c.isalnum() or c in u'_$\u200c\u200d'
+        return c.isalnum() or c in '_$\u200c\u200d'
 
     @staticmethod
     def extend_and_flatten_list_with_sep( orig_seq, extension_seq, separator='' ):
@@ -1101,13 +1101,13 @@
 
         """
         import unicodedata
-        txt2 = filter( lambda c: unicodedata.category(unicode(c)) != 'Cf', txt )
+        txt2 = [c for c in txt if unicodedata.category(str(c)) != 'Cf']
 
         # 2to3 NOTE: The following is needed to work around a broken
         # Python3 conversion in which filter() will be transformed
         # into a list rather than a string.
-        if not isinstance(txt2,basestring):
-            txt2 = u''.join(txt2)
+        if not isinstance(txt2,str):
+            txt2 = ''.join(txt2)
         return txt2
 
     @staticmethod
@@ -1151,7 +1151,7 @@
         ords = []
         for i in range(0, min(len(s),4)):
             x = s[i]
-            if isinstance(x, basestring):
+            if isinstance(x, str):
                 x = ord(x)
             ords.append( x )
 
@@ -1177,7 +1177,7 @@
             d = ords[3]
 
         z = s[-1]
-        if isinstance(z, basestring):
+        if isinstance(z, str):
             z = ord(z)
 
         if bom4 and ( (hasattr(codecs,'BOM_UTF32_LE') and bom4 == codecs.BOM_UTF32_LE) or
@@ -1235,7 +1235,7 @@
         the returned value.
 
         """
-        if isinstance(txt, unicode):
+        if isinstance(txt, str):
             res = _namedtuple('DecodedString',['string','codec','bom'])( txt, None, None )
         else:
             if encoding is None or encoding == 'auto':
@@ -1256,10 +1256,10 @@
             unitxt, numbytes = cdk.decode( txt, **cdk_kw )  # DO THE DECODE HERE!
 
             # Remove BOM if present
-            if len(unitxt) > 0 and unitxt[0] == u'\uFEFF':
+            if len(unitxt) > 0 and unitxt[0] == '\uFEFF':
                 bom = cdk.encode(unitxt[0])[0]
                 unitxt = unitxt[1:]
-            elif len(unitxt) > 0 and unitxt[0] == u'\uFFFE': # Reversed BOM
+            elif len(unitxt) > 0 and unitxt[0] == '\uFFFE': # Reversed BOM
                 raise UnicodeDecodeError(cdk.name,txt,0,0,"Wrong byte order, found reversed BOM U+FFFE")
             else:
                 bom = None
@@ -1299,9 +1299,9 @@
         n = ord(c)
         w1, w2 = helpers.make_surrogate_pair(n)
         if w2 is None:
-            return (unichr(w1),)
-        else:
-            return (unichr(w1), unichr(w2))
+            return (chr(w1),)
+        else:
+            return (chr(w1), chr(w2))
 
     @staticmethod
     def make_surrogate_pair( codepoint ):
@@ -1318,7 +1318,7 @@
     @staticmethod
     def isnumbertype( obj ):
         """Is the object of a Python number type (excluding complex)?"""
-        return isinstance(obj, (int,long,float)) \
+        return isinstance(obj, (int,float)) \
                and not isinstance(obj, bool) \
                or obj is nan or obj is inf or obj is neginf \
                or (decimal and isinstance(obj, decimal.Decimal))
@@ -1356,12 +1356,12 @@
     @staticmethod
     def isstringtype( obj ):
         """Is the object of a Python string type?"""
-        if isinstance(obj, basestring):
+        if isinstance(obj, str):
             return True
         # Must also check for some other pseudo-string types
-        import types, UserString
-        return isinstance(obj, types.StringTypes) \
-               or isinstance(obj, UserString.UserString)
+        import types, collections
+        return isinstance(obj, (str,)) \
+               or isinstance(obj, collections.UserString)
                ## or isinstance(obj, UserString.MutableString)
 
     @staticmethod
@@ -1640,7 +1640,7 @@
     def restore_position(self):
         try:
             old_pos = self.__saved_pos.pop()   # Can raise IndexError
-        except IndexError, err:
+        except IndexError as err:
             raise IndexError("Attempt to restore buffer position that was never saved")
         else:
             self.__pos = old_pos
@@ -1669,13 +1669,13 @@
         self.rewind()
         self.__codec = None
         self.__bom = None
-        self.__rawbuf = u''
+        self.__rawbuf = ''
         self.__cmax = 0  # max number of chars in input
         try:
             decoded = helpers.unicode_decode( txt, encoding )
         except JSONError:
             raise
-        except Exception, err:
+        except Exception as err:
             # Re-raise as a JSONDecodeError
             e2 = sys.exc_info()
             newerr = JSONDecodeError("a Unicode decoding error occurred")
@@ -2063,7 +2063,7 @@
         self._position = None
         self.outer_position = None
         self.context_description = None
-        for kw,val in kwargs.items():
+        for kw,val in list(kwargs.items()):
             if kw == 'severity':
                 if val not in self.severities:
                     raise TypeError("%s given invalid severity %r" % (self.__class__.__name__, val))
@@ -2339,7 +2339,7 @@
         if self.min_codepoint is not None:
             cp = 'U+%04X' % self.min_codepoint
             try:
-                charname = unicodedata.name(unichr(self.min_codepoint))
+                charname = unicodedata.name(chr(self.min_codepoint))
             except ValueError:
                 charname = '? UNKNOWN CHARACTER'
             lines.append("   min codepoint: %6s  (%s)" % (cp, charname))
@@ -2349,7 +2349,7 @@
         if self.max_codepoint is not None:
             cp = 'U+%04X' % self.max_codepoint
             try:
-                charname = unicodedata.name(unichr(self.max_codepoint))
+                charname = unicodedata.name(chr(self.max_codepoint))
             except ValueError:
                 charname = '? UNKNOWN CHARACTER'
             lines.append("   max codepoint: %6s  (%s)" % (cp, charname))
@@ -2491,7 +2491,7 @@
         outer_position = None
         severity = 'error'
         context_description = None
-        for kw, val in kwargs.items():
+        for kw, val in list(kwargs.items()):
             if kw == 'position': position = val
             elif kw == 'outer_position': outer_position = val
             elif kw == 'severity': severity = val
@@ -2776,9 +2776,9 @@
     zero = ord('0')
     if not key:
         key = ''
-    elif isinstance( key, (int,long) ):
+    elif isinstance( key, int ):
         key = numfmt % key
-    elif isinstance( key, basestring ):
+    elif isinstance( key, str ):
         keylen = len(key)
         words = []
         i=0
@@ -2810,10 +2810,8 @@
     _OrderedDict = None
 
 
-class json_options(object):
+class json_options(object, metaclass=_behaviors_metaclass):
     """Options to determine how strict the decoder or encoder should be."""
-
-    __metaclass__ = _behaviors_metaclass
     _behavior_values = (ALLOW, WARN, FORBID)
     _behaviors = (
         ("all_numeric_signs",
@@ -2962,7 +2960,7 @@
             # Do this keyword first, so other keywords may override specific behaviors
             self.strictness = kwargs['strict']
 
-        for kw,val in kwargs.items():
+        for kw,val in list(kwargs.items()):
             if kw == 'compactly': # alias for 'encode_compactly'
                 self.encode_compactly = val
             elif kw == 'strict':
@@ -2973,9 +2971,9 @@
             elif kw == 'html_safe' or kw == 'xml_safe':
                 if bool(val):
                     if self.always_escape_chars is None:
-                        self.always_escape_chars = set(u'<>/&')
+                        self.always_escape_chars = set('<>/&')
                     else:
-                        self.always_escape_chars.update( set(u'<>/&') )
+                        self.always_escape_chars.update( set('<>/&') )
             elif kw == 'always_escape':
                 if val:
                     if self.always_escape_chars is None:
@@ -3001,14 +2999,14 @@
                         self.decimal_context = decimal.ExtendedContext
                     elif isinstance(val, decimal.Context):
                         self.decimal_context = val
-                    elif isinstance(val,(int,long)) or val[0].isdigit:
+                    elif isinstance(val,int) or val[0].isdigit:
                         prec = int(val)
                         self.decimal_context = decimal.Context( prec=prec )
                     else:
                         raise ValueError("Option for %r should be a decimal.Context, a number of significant digits, or one of 'default','basic', or 'extended'." % (kw,))
             elif kw in ('allow','warn','forbid','prevent','deny'):
                 action = {'allow':ALLOW, 'warn':WARN, 'forbid':FORBID, 'prevent':FORBID, 'deny':FORBID}[ kw ]
-                if isinstance(val,basestring):
+                if isinstance(val,str):
                     val = [b.replace('-','_') for b in val.replace(',',' ').split()]
                 for behavior in val:
                     self.set_behavior( behavior, action )
@@ -3177,19 +3175,19 @@
         Returns a number value, which could be an int, float, or decimal.
 
         """
-        if isinstance(sign, (int,long)):
+        if isinstance(sign, int):
             if sign < 0:
                 sign = '-'
             else:
                 sign = '+'
-        if isinstance(s,basestring):
+        if isinstance(s,str):
             if s.startswith('-') or s.startswith('+'):
                 sign = s[0]
                 s = s[1:]
 
         if self.int_as_float:
             # Making a float/decimal
-            if isinstance(s, (int,long)):
+            if isinstance(s, int):
                 if self.float_type == NUMBER_DECIMAL:
                     n = self.decimal_context.create_decimal( s )
                     if sign=='-':
@@ -3213,7 +3211,7 @@
                 n2 = self.make_float( s[:-1] + ('9' if s[-1]<='5' else '0'), sign )
                 if (n==inf or n==n2) and self.float_type != NUMBER_FLOAT:
                     n = self.make_decimal( s, sign )
-        elif isinstance( s, (int,long) ):
+        elif isinstance( s, int ):
             # already an integer
             n = s
             if sign=='-':
@@ -3233,7 +3231,7 @@
                         n = self.negzero_float
                     else:
                         n *= -1
-        if isinstance(n,(int,long)) and self.keep_format:
+        if isinstance(n,int) and self.keep_format:
             n = json_int(n, number_format=number_format)
         return n
 
@@ -3246,7 +3244,7 @@
         if s.startswith('-') or s.startswith('+'):
             sign = s[0]
             s = s[1:]
-        elif isinstance(sign, (int,long)):
+        elif isinstance(sign, int):
             if sign < 0:
                 sign = '-'
             else:
@@ -3274,7 +3272,7 @@
         if s.startswith('-') or s.startswith('+'):
             sign = s[0]
             s = s[1:]
-        elif isinstance(sign, (int,long)):
+        elif isinstance(sign, int):
             if sign < 0:
                 sign = '-'
             else:
@@ -3296,7 +3294,7 @@
         return self._leading_zero_radix
     @leading_zero_radix.setter
     def leading_zero_radix(self, radix):
-        if isinstance(radix,basestring):
+        if isinstance(radix,str):
             try:
                 radix = int(radix)
             except ValueError:
@@ -3415,7 +3413,7 @@
                     '\\': '\\\\' }
     _optional_rev_escapes = { '/': '\\/' }  # only escaped if forced to do so
 
-    json_syntax_characters = u"{}[]\"\\,:0123456789.-+abcdefghijklmnopqrstuvwxyz \t\n\r"
+    json_syntax_characters = "{}[]\"\\,:0123456789.-+abcdefghijklmnopqrstuvwxyz \t\n\r"
 
     all_hook_names = ('decode_number', 'decode_float', 'decode_object',
                       'decode_array', 'decode_string',
@@ -3458,8 +3456,8 @@
 
         self._asciiencodable = \
             [32 <= c < 128 \
-                 and not self._rev_escapes.has_key(chr(c)) \
-                 and not unicodedata.category(unichr(c)) in ['Cc','Cf','Zl','Zp']
+                 and chr(c) not in self._rev_escapes \
+                 and not unicodedata.category(chr(c)) in ['Cc','Cf','Zl','Zp']
              for c in range(0,256)]
 
     @property
@@ -3588,7 +3586,7 @@
             rval = hook( input_object, *args, **kwargs )
         except JSONSkipHook:
             raise  # Do nothing
-        except Exception, err:
+        except Exception as err:
             exc_info = sys.exc_info()
             if hook_name.startswith('encode_'):
                 ex_class = JSONEncodeHookError
@@ -3621,9 +3619,9 @@
         if not self.options.unicode_whitespace:
             return c in ' \t\n\r'
         else:
-            if not isinstance(c,unicode):
-                c = unicode(c)
-            if c in u' \t\n\r\f\v':
+            if not isinstance(c,str):
+                c = str(c)
+            if c in ' \t\n\r\f\v':
                 return True
             import unicodedata
             return unicodedata.category(c) == 'Zs'
@@ -3636,7 +3634,7 @@
         """
         if c == '\r' or c == '\n':
             return True
-        if c == u'\u2028' or c == u'\u2029': # unicodedata.category(c) in  ['Zl', 'Zp']
+        if c == '\u2028' or c == '\u2029': # unicodedata.category(c) in  ['Zl', 'Zp']
             return True
         return False
 
@@ -3734,7 +3732,7 @@
                         val = self.call_hook( hook_name, nbr, position=start_position )
                     except JSONSkipHook:
                         pass
-                    except JSONError, err:
+                    except JSONError as err:
                         state.push_exception(err)
                         val = undefined
                     else:
@@ -3795,7 +3793,7 @@
                 return undefined
 
         # Check for radix-prefixed numbers
-        elif c == '0' and (buf.peek(1) in [u'x',u'X']):
+        elif c == '0' and (buf.peek(1) in ['x','X']):
             # ----- HEX NUMBERS 0x123
             prefix = buf.popstr(2)
             digits = buf.popwhile( helpers.is_hex_digit )
@@ -3810,7 +3808,7 @@
             state.update_integer_stats( ival, sign=sign, position=start_position )
             n = state.options.make_int( ival, sign, number_format=NUMBER_FORMAT_HEX )
             return n
-        elif c == '0' and (buf.peek(1) in [u'o','O']):
+        elif c == '0' and (buf.peek(1) in ['o','O']):
             # ----- NEW-STYLE OCTAL NUMBERS  0o123
             prefix = buf.popstr(2)
             digits = buf.popwhile( helpers.is_octal_digit )
@@ -3825,7 +3823,7 @@
             state.update_integer_stats( ival, sign=sign, position=start_position )
             n = state.options.make_int( ival, sign, number_format=NUMBER_FORMAT_OCTAL )
             return n
-        elif c == '0' and (buf.peek(1) in [u'b','B']):
+        elif c == '0' and (buf.peek(1) in ['b','B']):
             # ----- NEW-STYLE BINARY NUMBERS  0b1101
             prefix = buf.popstr(2)
             digits = buf.popwhile( helpers.is_binary_digit )
@@ -3999,7 +3997,7 @@
             state.append( n.json_format() )
             return
 
-        if isinstance(n, (int,long)):
+        if isinstance(n, int):
             state.append( str(n) )
             return
 
@@ -4101,7 +4099,7 @@
                                           position=highsur_position, outer_position=string_position,
                                           context='String')
                         should_stop = state.should_stop
-                        uc = u'\ufffd' # replacement char
+                        uc = '\ufffd' # replacement char
                     _append( uc )
                     high_surrogate = None
                     highsur_position = None
@@ -4111,7 +4109,7 @@
                                      position=highsur_position, outer_position=string_position,
                                      context='String')
                     should_stop = state.should_stop
-                    _append( u'\ufffd' ) # replacement char
+                    _append( '\ufffd' ) # replacement char
                     high_surrogate = None
                     highsur_position = None
 
@@ -4153,7 +4151,7 @@
                         _append( chr(n) )
                     else:
                         _append( helpers.safe_unichr(n) )
-                elif escapes.has_key(c):
+                elif c in escapes:
                     buf.skip()
                     _append( escapes[c] )
                 elif c == 'u' or c == 'x':
@@ -4214,7 +4212,7 @@
 
                     if high_surrogate:
                         # Decode surrogate pair and clear high surrogate
-                        low_surrogate = unichr(codepoint)
+                        low_surrogate = chr(codepoint)
                         try:
                             uc = helpers.surrogate_pair_as_unicode( high_surrogate, low_surrogate )
                         except ValueError as err:
@@ -4222,7 +4220,7 @@
                                               outer_position=string_position,
                                               context='String')
                             should_stop = state.should_stop
-                            uc = u'\ufffd' # replacement char
+                            uc = '\ufffd' # replacement char
                         _append( uc )
                         high_surrogate = None
                         highsur_position = None
@@ -4236,14 +4234,14 @@
                             should_stop = state.should_stop
                         _append( chr(codepoint) )
                     elif 0xd800 <= codepoint <= 0xdbff: # high surrogate
-                        high_surrogate = unichr(codepoint)  # remember until we get to the low surrogate
+                        high_surrogate = chr(codepoint)  # remember until we get to the low surrogate
                         highsur_position = escape_position.copy()
                     elif 0xdc00 <= codepoint <= 0xdfff: # low surrogate
                         state.push_error('Low unicode surrogate must be proceeded by a high surrogate', position=escape_position,
                                          outer_position=string_position,
                                          context='String')
                         should_stop = state.should_stop
-                        _append( u'\ufffd' ) # replacement char
+                        _append( '\ufffd' ) # replacement char
                     else:
                         # Other chars go in as a unicode char
                         _append( helpers.safe_unichr(codepoint) )
@@ -4301,7 +4299,7 @@
             state.push_error('High unicode surrogate must be followed by a low surrogate',
                              position=highsur_position, outer_position=string_position,
                              context='String')
-            _append( u'\ufffd' ) # replacement char
+            _append( '\ufffd' ) # replacement char
             high_surrogate = None
             highsur_position = None
 
@@ -4323,7 +4321,7 @@
                 s = self.call_hook( 'decode_string', s, position=string_position )
             except JSONSkipHook:
                 pass
-            except JSONError, err:
+            except JSONError as err:
                 state.push_exception(err)
                 s = undefined
         return s
@@ -4336,16 +4334,16 @@
         # able to use ord() on it's simulated "characters".  Also
         # convert Python2 'str' types to unicode strings first.
         import unicodedata, sys
-        import UserString
+        import collections
         py2strenc = self.options.py2str_encoding
-        if isinstance(s, UserString.UserString):
+        if isinstance(s, collections.UserString):
             def tochar(c):
                 c2 = c.data
-                if py2strenc and not isinstance(c2,unicode):
+                if py2strenc and not isinstance(c2,str):
                     return c2.decode( py2strenc )
                 else:
                     return c2
-        elif py2strenc and not isinstance(s,unicode):
+        elif py2strenc and not isinstance(s,str):
             s = s.decode( py2strenc )
             tochar = None
         else:
@@ -4386,8 +4384,8 @@
                         i += 1
                     else:
                         break
-                chunks.append( unicode(s[j:i]) )
-            elif revesc.has_key(c):
+                chunks.append( str(s[j:i]) )
+            elif c in revesc:
                 # Has a shortcut escape sequence, like "\n"
                 chunks.append(revesc[c])
                 i += 1
@@ -4431,7 +4429,7 @@
                     doesc = encunicode
 
                 if doesc:
-                    if optrevesc.has_key(c):
+                    if c in optrevesc:
                         chunks.append(optrevesc[c])
                     else:
                         chunks.append(r'\u%04x' % cord)
@@ -4498,7 +4496,7 @@
                     val = self.call_hook( 'decode_float', kw, position=start_position )
                 except JSONSkipHook:
                     pass
-                except JSONError, err:
+                except JSONError as err:
                     state.push_exception(err)
                     return undefined
                 else:
@@ -4508,7 +4506,7 @@
                     val = self.call_hook( 'decode_number', kw, position=start_position )
                 except JSONSkipHook:
                     pass
-                except JSONError, err:
+                except JSONError as err:
                     state.push_exception(err)
                     return undefined
                 else:
@@ -4793,7 +4791,7 @@
                     obj = self.call_hook( 'decode_object', obj, position=start_position )
                 except JSONSkipHook:
                     pass
-                except JSONError, err:
+                except JSONError as err:
                     state.push_exception(err)
                     obj = undefined
         else:
@@ -4803,7 +4801,7 @@
                     obj = self.call_hook( 'decode_array', obj, position=start_position )
                 except JSONSkipHook:
                     pass
-                except JSONError, err:
+                except JSONError as err:
                     state.push_exception(err)
                     obj = undefined
         return obj
@@ -4888,9 +4886,9 @@
         if not state.has_errors:
             try:
                 self._do_decode( state )    # DECODE!
-            except JSONException, err:
+            except JSONException as err:
                 state.push_exception( err )
-            except Exception, err:   # Mainly here to catch maximum recursion depth exceeded
+            except Exception as err:   # Mainly here to catch maximum recursion depth exceeded
                 e2 = sys.exc_info()
                 raise
                 newerr = JSONDecodeError("An unexpected failure occured", severity='fatal', position=state.buf.position)
@@ -4955,8 +4953,8 @@
                     # Only whitespace, line and paragraph separators,
                     # and format control chars are legal here.
                     import unicodedata
-                    catfirst = unicodedata.category(unicode(first))
-                    catsecond = unicodedata.category(unicode(second))
+                    catfirst = unicodedata.category(str(first))
+                    catsecond = unicodedata.category(str(second))
                     if catfirst not in ('Zs','Zl','Zp','Cf') or \
                            catsecond not in ('Zs','Zl','Zp','Cf'):
                         state.push_fatal( 'The input is gibberish, is the Unicode encoding correct?' )
@@ -4996,10 +4994,10 @@
             c = 'undefined'
         elif isinstance(obj,bool):
             c =  'bool'
-        elif isinstance(obj, (int,long,float,complex)) or\
+        elif isinstance(obj, (int,float,complex)) or\
                 (decimal and isinstance(obj, decimal.Decimal)):
             c = 'number'
-        elif isinstance(obj, basestring) or helpers.isstringtype(obj):
+        elif isinstance(obj, str) or helpers.isstringtype(obj):
             c = 'string'
         else:
             if isinstance(obj,dict):
@@ -5104,7 +5102,7 @@
         if encoding is not None:
             try:
                 output, nchars = cdk.encode( JSON.json_syntax_characters )
-            except UnicodeError, err:
+            except UnicodeError as err:
                 raise JSONEncodeError("Output encoding %s is not sufficient to encode JSON" % cdk.name)
 
         # Do the JSON encoding!
@@ -5119,7 +5117,7 @@
         else:
             try:
                 output, nchars = cdk.encode( unitxt )
-            except UnicodeEncodeError, err:
+            except UnicodeEncodeError as err:
                 # Re-raise as a JSONDecodeError
                 e2 = sys.exc_info()
                 newerr = JSONEncodeError("a Unicode encoding error occurred")
@@ -5166,12 +5164,12 @@
         elif obj_classification == 'number':
             try:
                 self.encode_number( obj, state )
-            except JSONEncodeError, err1:
+            except JSONEncodeError as err1:
                 # Bad number, probably a complex with non-zero imaginary part.
                 # Let the default encoders take a shot at encoding.
                 try:
                     self.try_encode_default(obj, state)
-                except Exception, err2:
+                except Exception as err2:
                     # Default handlers couldn't deal with it, re-raise original exception.
                     raise err1
         elif obj_classification == 'string':
@@ -5300,7 +5298,7 @@
         it = None
         if isdict and hasattr(obj,'iterkeys'):
             try:
-                it = obj.iterkeys()
+                it = iter(obj.keys())
             except AttributeError:
                 pass
         else:
@@ -5348,7 +5346,7 @@
             try: # while not StopIteration
                 part_idx = 0
                 while True:
-                    obj2 = it.next()
+ RefactoringTool: No changes to ../python3/setup.py
RefactoringTool: Files that were modified:
RefactoringTool: ../python3/test/test_demjson.py
RefactoringTool: ../python3/demjson.py
RefactoringTool: ../python3/setup.py
                   obj2 = next(it)
                     part_idx += 1   # Note, will start counting at 1
                     if obj2 is obj:
                         raise JSONEncodeError('trying to encode an infinite sequence',obj)
@@ -5410,9 +5408,9 @@
                 elif srt == SORT_SMART:
                     part_keys.sort( key=(lambda t: (smart_sort_transform(t[0]),t[0])) )
                 elif srt == SORT_ALPHA_CI:
-                    part_keys.sort( key=(lambda t: (unicode(t[0]).upper(),t[0])) )
+                    part_keys.sort( key=(lambda t: (str(t[0]).upper(),t[0])) )
                 elif srt or srt == SORT_ALPHA:
-                    part_keys.sort( key=(lambda t: unicode(t[0])) )
+                    part_keys.sort( key=(lambda t: str(t[0])) )
                 # Now make parts match the new sort order
                 if srt is not None:
                     parts = [parts[pk[1]] for pk in part_keys]
@@ -5672,7 +5670,7 @@
     kwargs = kwargs.copy()
 
     todel = []
-    for kw,val in kwargs.items():
+    for kw,val in list(kwargs.items()):
         if kw == "return_errors":
             return_errors = bool(val)
             todel.append(kw)
@@ -5736,7 +5734,7 @@
     if not encoding:
         encoding = 'utf-8'
 
-    if not isinstance(filename,basestring) or not filename:
+    if not isinstance(filename,str) or not filename:
         raise TypeError("Expected a file name")
 
     if not overwrite and os.path.exists(filename):
@@ -5761,7 +5759,7 @@
     See the decode() function for a description of other possible options.
 
     """
-    if isinstance(filename,basestring):
+    if isinstance(filename,str):
         try:
             fp = open(filename, 'rb')
         except Exception:
@@ -5947,11 +5945,11 @@
                               write_stats=stats_fp,
                               filename_for_errors=pfx,
                               json_options=jsonopts )
-        except JSONError, err:
+        except JSONError as err:
             success = self.SUCCESS_FAIL
             if verbose_fp:
                 verbose_fp.write('%s%s\n' % (pfx, err.pretty_description()) )
-        except Exception, err:
+        except Exception as err:
             success = self.SUCCESS_FAIL
             if verbose_fp:
                 verbose_fp.write('%s%s\n' % (pfx, str(err) ))
@@ -5998,7 +5996,7 @@
                 fp = open( filename, 'rb' )
                 jsondata = fp.read()
                 fp.close()
-            except IOError, err:
+            except IOError as err:
                 self.stderr.write('%s: %s\n' % (pfx, str(err)) )
                 return self.SUCCESS_FAIL
             if verbose:
@@ -6018,7 +6016,7 @@
                 try:
                     fp = open( output_filename, 'wb' )
                     fp.write( reformatted )
-                except IOError, err:
+                except IOError as err:
                     self.stderr.write('%s: %s\n' % (pfx, str(err)) )
                     success = False
             else:
@@ -6090,7 +6088,7 @@
                                          'allow=', 'warn=', 'forbid=', 'deny=',
                                          'help', 'help-behaviors',
                                          'version','copyright'] )
-        except getopt.GetoptError, err:
+        except getopt.GetoptError as err:
             self.stderr.write( "Error: %s.  Use \"%s --help\" for usage information.\n" \
                                   % (err.msg, self.program_name) )
             return 1
@@ -6270,7 +6268,7 @@
                     # checking multiple files, do not change a
                     # previous error back to ok.
                     success = False
-            except KeyboardInterrupt, err:
+            except KeyboardInterrupt as err:
                 sys.stderr.write("\njsonlint interrupted!\n")
                 sys.exit(1)
     
+ exit 0
Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.89487
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd demjson-2.2.4
+ CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic'
+ export CFLAGS
+ CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic'
+ export CXXFLAGS
+ FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic'
+ export FFLAGS
+ /usr/bin/python setup.py build --debug
running build
running build_py
creating build
creating build/lib
copying demjson.py -> build/lib
running build_scripts
creating build/scripts-2.7
copying and adjusting jsonlint -> build/scripts-2.7
changing mode of build/scripts-2.7/jsonlint from 644 to 755
+ pushd ../python3
~/RPM/BUILD/python3 ~/RPM/BUILD/demjson-2.2.4
+ CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic'
+ export CFLAGS
+ CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic'
+ export CXXFLAGS
+ FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic'
+ export FFLAGS
+ /usr/bin/python3 setup.py build --debug
running build
running build_py
creating build
creating build/lib
copying demjson.py -> build/lib
Fixing build/lib/demjson.py
Skipping optional fixer: buffer
Skipping optional fixer: idioms
Skipping optional fixer: set_literal
Skipping optional fixer: ws_comma
Fixing build/lib/demjson.py
Skipping optional fixer: buffer
Skipping optional fixer: idioms
Skipping optional fixer: set_literal
Skipping optional fixer: ws_comma
running build_scripts
creating build/scripts-3.7
copying and adjusting jsonlint -> build/scripts-3.7
changing mode of build/scripts-3.7/jsonlint from 644 to 755
+ popd
~/RPM/BUILD/demjson-2.2.4
+ exit 0
Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.46804
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ /bin/chmod -Rf u+rwX -- /usr/src/tmp/python-module-demjson-buildroot
+ :
+ /bin/rm -rf -- /usr/src/tmp/python-module-demjson-buildroot
+ cd demjson-2.2.4
+ pushd ../python3
~/RPM/BUILD/python3 ~/RPM/BUILD/demjson-2.2.4
+ CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic'
+ export CFLAGS
+ CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic'
+ export CXXFLAGS
+ FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic'
+ export FFLAGS
+ /usr/bin/python3 setup.py install --skip-build --root=/usr/src/tmp/python-module-demjson-buildroot --force
running install
running install_lib
creating /usr/src/tmp/python-module-demjson-buildroot
creating /usr/src/tmp/python-module-demjson-buildroot/usr
creating /usr/src/tmp/python-module-demjson-buildroot/usr/lib
creating /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3
creating /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages
copying build/lib/demjson.py -> /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages
byte-compiling /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py to demjson.cpython-37.pyc
running install_egg_info
running egg_info
creating demjson.egg-info
writing demjson.egg-info/PKG-INFO
writing dependency_links to demjson.egg-info/dependency_links.txt
writing top-level names to demjson.egg-info/top_level.txt
writing manifest file 'demjson.egg-info/SOURCES.txt'
reading manifest file 'demjson.egg-info/SOURCES.txt'
writing manifest file 'demjson.egg-info/SOURCES.txt'
Copying demjson.egg-info to /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson-2.2.4-py3.7.egg-info
running install_scripts
creating /usr/src/tmp/python-module-demjson-buildroot/usr/bin
copying build/scripts-3.7/jsonlint -> /usr/src/tmp/python-module-demjson-buildroot/usr/bin
changing mode of /usr/src/tmp/python-module-demjson-buildroot/usr/bin/jsonlint to 755
+ popd
~/RPM/BUILD/demjson-2.2.4
+ pushd /usr/src/tmp/python-module-demjson-buildroot/usr/bin
~/tmp/python-module-demjson-buildroot/usr/bin ~/RPM/BUILD/demjson-2.2.4
++ ls
+ for i in $(ls)
+ mv jsonlint jsonlint.py3
+ popd
~/RPM/BUILD/demjson-2.2.4
+ CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic'
+ export CFLAGS
+ CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic'
+ export CXXFLAGS
+ FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic'
+ export FFLAGS
+ /usr/bin/python setup.py install --skip-build --root=/usr/src/tmp/python-module-demjson-buildroot --force
running install
running install_lib
creating /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7
creating /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages
copying build/lib/demjson.py -> /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages
byte-compiling /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py to demjson.pyc
running install_scripts
copying build/scripts-2.7/jsonlint -> /usr/src/tmp/python-module-demjson-buildroot/usr/bin
changing mode of /usr/src/tmp/python-module-demjson-buildroot/usr/bin/jsonlint to 755
running install_egg_info
Writing /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson-2.2.4-py2.7.egg-info
+ /usr/lib/rpm/brp-alt
Cleaning files in /usr/src/tmp/python-module-demjson-buildroot (auto)
Verifying and fixing files in /usr/src/tmp/python-module-demjson-buildroot (binconfig,pkgconfig,libtool,desktop)
Checking contents of files in /usr/src/tmp/python-module-demjson-buildroot/ (default)
Compressing files in /usr/src/tmp/python-module-demjson-buildroot (auto)
Adjusting library links in /usr/src/tmp/python-module-demjson-buildroot
./usr/lib:
Verifying ELF objects in /usr/src/tmp/python-module-demjson-buildroot (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal)
Bytecompiling python modules in /usr/src/tmp/python-module-demjson-buildroot using /usr/bin/python
unlink /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.pyc
compile /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py
Bytecompiling python modules with optimization in /usr/src/tmp/python-module-demjson-buildroot using /usr/bin/python -O
compile /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py
Bytecompiling python3 modules in /usr/src/tmp/python-module-demjson-buildroot using /usr/bin/python3
unlink /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/__pycache__/demjson.cpython-37.pyc
compile /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py
Bytecompiling python3 modules with optimization in /usr/src/tmp/python-module-demjson-buildroot using /usr/bin/python3 -O
compile /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py
Bytecompiling python3 modules with optimization-2 in /usr/src/tmp/python-module-demjson-buildroot using /usr/bin/python3 -OO
compile /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py
Hardlinking identical .pyc and .opt-?.pyc files
'./usr/lib/python3/site-packages/__pycache__/demjson.cpython-37.opt-1.pyc' => './usr/lib/python3/site-packages/__pycache__/demjson.cpython-37.pyc'
Hardlinking identical .pyc and .pyo files
'./usr/lib/python2.7/site-packages/demjson.pyo' => './usr/lib/python2.7/site-packages/demjson.pyc'
Executing(%check): /bin/sh -e /usr/src/tmp/rpm-tmp.37193
Check is turned off by --disable check
Processing files: python-module-demjson-2.2.4-alt1
Executing(%doc): /bin/sh -e /usr/src/tmp/rpm-tmp.35837
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd demjson-2.2.4
+ DOCDIR=/usr/src/tmp/python-module-demjson-buildroot/usr/share/doc/python-module-demjson-2.2.4
+ export DOCDIR
+ rm -rf /usr/src/tmp/python-module-demjson-buildroot/usr/share/doc/python-module-demjson-2.2.4
+ /bin/mkdir -p /usr/src/tmp/python-module-demjson-buildroot/usr/share/doc/python-module-demjson-2.2.4
+ cp -prL LICENSE.txt README.txt README.md docs/CHANGES.txt docs/HOOKS.txt docs/INSTALL.txt docs/NEWS.txt docs/PYTHON3.txt docs/demjson.txt docs/jsonlint.txt /usr/src/tmp/python-module-demjson-buildroot/usr/share/doc/python-module-demjson-2.2.4
+ chmod -R go-w /usr/src/tmp/python-module-demjson-buildroot/usr/share/doc/python-module-demjson-2.2.4
+ chmod -R a+rX /usr/src/tmp/python-module-demjson-buildroot/usr/share/doc/python-module-demjson-2.2.4
+ exit 0
Finding Provides (using /usr/lib/rpm/find-provides)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.vMrSp4
find-provides: running scripts (alternatives,debuginfo,lib,pam,perl,pkgconfig,python,python3,shell)
Finding Requires (using /usr/lib/rpm/find-requires)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.SUkmOn
find-requires: running scripts (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,python3,rpmlib,shebang,shell,static,symlinks,systemd-services)
python.req: /usr/src/tmp/python-module-demjson-buildroot/usr/bin/jsonlint: skipping sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/bin/jsonlint: line=36 IGNORE (for REQ=slight and deep=8) module=demjson
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=152 IGNORE (for REQ=slight and deep=8) module=collections
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=164 IGNORE (for REQ=slight and deep=8) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=200 IGNORE (for REQ=slight and deep=8) module=decimal
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=416 IGNORE (for REQ=slight and deep=20) module=struct
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=416 IGNORE (for REQ=slight and deep=20) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=800 IGNORE (for REQ=slight and deep=12) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=800 IGNORE (for REQ=slight and deep=12) module=struct
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=810 IGNORE (for REQ=slight and deep=20) module=cStringIO
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=812 IGNORE (for REQ=slight and deep=20) module=StringIO
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=882 IGNORE (for REQ=slight and deep=12) module=struct
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=882 IGNORE (for REQ=slight and deep=12) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=961 IGNORE (for REQ=slight and deep=8) module=unicodedata
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=976 IGNORE (for REQ=slight and deep=7) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=1046 IGNORE (for REQ=slight and deep=12) module=unicodedata
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=1103 IGNORE (for REQ=slight and deep=12) module=unicodedata
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=1119 IGNORE (for REQ=slight and deep=12) module=codecs
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=1123 IGNORE (for REQ=slight and deep=12) module=codecs
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=1159 IGNORE (for REQ=slight and deep=12) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=1159 IGNORE (for REQ=slight and deep=12) module=codecs
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=1362 IGNORE (for REQ=slight and deep=12) module=types
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=1362 IGNORE (for REQ=slight and deep=12) module=UserString
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=1668 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=2210 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=2312 IGNORE (for REQ=slight and deep=11) module=unicodedata
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=2425 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=2803 IGNORE (for REQ=slight and deep=8) module=enum
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=2808 IGNORE (for REQ=slight and deep=8) module=collections
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=3437 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=3437 IGNORE (for REQ=slight and deep=11) module=unicodedata
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=3437 IGNORE (for REQ=slight and deep=11) module=re
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=3581 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=3628 IGNORE (for REQ=slight and deep=15) module=unicodedata
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=4338 IGNORE (for REQ=slight and deep=11) module=unicodedata
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=4338 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=4339 IGNORE (for REQ=slight and deep=11) module=UserString
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=4878 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=4957 IGNORE (for REQ=slight and deep=23) module=unicodedata
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=4991 IGNORE (for REQ=slight and deep=11) module=datetime
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=5056 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=5056 IGNORE (for REQ=slight and deep=11) module=codecs
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=5256 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=5664 IGNORE (for REQ=slight and deep=8) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=5704 IGNORE (for REQ=slight and deep=12) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=5711 IGNORE (for REQ=slight and deep=12) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=5735 IGNORE (for REQ=slight and deep=8) module=os
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=5735 IGNORE (for REQ=slight and deep=8) module=errno
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=5898 IGNORE (for REQ=slight and deep=11) module=os
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=5898 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=5987 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=6051 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=6051 IGNORE (for REQ=slight and deep=11) module=os
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=6051 IGNORE (for REQ=slight and deep=11) module=getopt
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py: line=6051 IGNORE (for REQ=slight and deep=11) module=unicodedata
shebang.req.files: executable script /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python2.7/site-packages/demjson.py is not executable
Provides: python2.7(demjson)
Requires: /usr/bin/python, /usr/lib/python2.7/site-packages, python-base
Processing files: python3-module-demjson-2.2.4-alt1
Executing(%doc): /bin/sh -e /usr/src/tmp/rpm-tmp.39640
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd demjson-2.2.4
+ DOCDIR=/usr/src/tmp/python-module-demjson-buildroot/usr/share/doc/python3-module-demjson-2.2.4
+ export DOCDIR
+ rm -rf /usr/src/tmp/python-module-demjson-buildroot/usr/share/doc/python3-module-demjson-2.2.4
+ /bin/mkdir -p /usr/src/tmp/python-module-demjson-buildroot/usr/share/doc/python3-module-demjson-2.2.4
+ cp -prL LICENSE.txt README.txt README.md docs/CHANGES.txt docs/HOOKS.txt docs/INSTALL.txt docs/NEWS.txt docs/PYTHON3.txt docs/demjson.txt docs/jsonlint.txt /usr/src/tmp/python-module-demjson-buildroot/usr/share/doc/python3-module-demjson-2.2.4
+ chmod -R go-w /usr/src/tmp/python-module-demjson-buildroot/usr/share/doc/python3-module-demjson-2.2.4
+ chmod -R a+rX /usr/src/tmp/python-module-demjson-buildroot/usr/share/doc/python3-module-demjson-2.2.4
+ exit 0
Finding Provides (using /usr/lib/rpm/find-provides)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.Bh5ecv
find-provides: running scripts (alternatives,debuginfo,lib,pam,perl,pkgconfig,python,python3,shell)
Finding Requires (using /usr/lib/rpm/find-requires)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.tlT3Ja
find-requires: running scripts (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,python3,rpmlib,shebang,shell,static,symlinks,systemd-services)
python3.req: /usr/src/tmp/python-module-demjson-buildroot/usr/bin/jsonlint.py3: skipping sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/bin/jsonlint.py3: line=36 IGNORE (for REQ=slight and deep=8) module=demjson
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=152 IGNORE (for REQ=slight and deep=8) module=collections
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=164 IGNORE (for REQ=slight and deep=8) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=200 IGNORE (for REQ=slight and deep=8) module=decimal
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=416 IGNORE (for REQ=slight and deep=20) module=struct
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=416 IGNORE (for REQ=slight and deep=20) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=800 IGNORE (for REQ=slight and deep=12) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=800 IGNORE (for REQ=slight and deep=12) module=struct
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=810 IGNORE (for REQ=slight and deep=20) module=io
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=812 IGNORE (for REQ=slight and deep=20) module=io
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=882 IGNORE (for REQ=slight and deep=12) module=struct
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=882 IGNORE (for REQ=slight and deep=12) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=961 IGNORE (for REQ=slight and deep=8) module=unicodedata
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=976 IGNORE (for REQ=slight and deep=7) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=1046 IGNORE (for REQ=slight and deep=12) module=unicodedata
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=1103 IGNORE (for REQ=slight and deep=12) module=unicodedata
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=1119 IGNORE (for REQ=slight and deep=12) module=codecs
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=1123 IGNORE (for REQ=slight and deep=12) module=codecs
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=1159 IGNORE (for REQ=slight and deep=12) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=1159 IGNORE (for REQ=slight and deep=12) module=codecs
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=1362 IGNORE (for REQ=slight and deep=12) module=types
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=1362 IGNORE (for REQ=slight and deep=12) module=collections
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=1668 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=2210 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=2312 IGNORE (for REQ=slight and deep=11) module=unicodedata
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=2425 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=2803 IGNORE (for REQ=slight and deep=8) module=enum
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=2808 IGNORE (for REQ=slight and deep=8) module=collections
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=3435 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=3435 IGNORE (for REQ=slight and deep=11) module=unicodedata
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=3435 IGNORE (for REQ=slight and deep=11) module=re
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=3579 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=3626 IGNORE (for REQ=slight and deep=15) module=unicodedata
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=4336 IGNORE (for REQ=slight and deep=11) module=unicodedata
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=4336 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=4337 IGNORE (for REQ=slight and deep=11) module=collections
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=4876 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=4955 IGNORE (for REQ=slight and deep=23) module=unicodedata
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=4989 IGNORE (for REQ=slight and deep=11) module=datetime
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=5054 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=5054 IGNORE (for REQ=slight and deep=11) module=codecs
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=5254 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=5662 IGNORE (for REQ=slight and deep=8) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=5702 IGNORE (for REQ=slight and deep=12) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=5709 IGNORE (for REQ=slight and deep=12) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=5733 IGNORE (for REQ=slight and deep=8) module=os
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=5733 IGNORE (for REQ=slight and deep=8) module=errno
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=5896 IGNORE (for REQ=slight and deep=11) module=os
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=5896 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=5985 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=6049 IGNORE (for REQ=slight and deep=11) module=sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=6049 IGNORE (for REQ=slight and deep=11) module=os
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=6049 IGNORE (for REQ=slight and deep=11) module=getopt
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py: line=6049 IGNORE (for REQ=slight and deep=11) module=unicodedata
shebang.req.files: executable script /usr/src/tmp/python-module-demjson-buildroot/usr/lib/python3/site-packages/demjson.py is not executable
Provides: python3(demjson)
Requires: /usr/bin/python3, /usr/lib/python3/site-packages, python3(codecs) < 0
Wrote: /usr/src/RPM/RPMS/noarch/python-module-demjson-2.2.4-alt1.noarch.rpm
Wrote: /usr/src/RPM/RPMS/noarch/python3-module-demjson-2.2.4-alt1.noarch.rpm
22.28user 0.78system 0:27.21elapsed 84%CPU (0avgtext+0avgdata 63460maxresident)k
0inputs+0outputs (0major+248479minor)pagefaults 0swaps
30.15user 3.94system 0:40.46elapsed 84%CPU (0avgtext+0avgdata 118820maxresident)k
0inputs+0outputs (0major+732668minor)pagefaults 0swaps