<86>Dec 13 02:46:57 userdel[927213]: delete user 'rooter'
<86>Dec 13 02:46:57 userdel[927213]: removed group 'rooter' owned by 'rooter'
<86>Dec 13 02:46:57 userdel[927213]: removed shadow group 'rooter' owned by 'rooter'
<86>Dec 13 02:46:57 groupadd[927223]: group added to /etc/group: name=rooter, GID=657
<86>Dec 13 02:46:57 groupadd[927223]: group added to /etc/gshadow: name=rooter
<86>Dec 13 02:46:57 groupadd[927223]: new group: name=rooter, GID=657
<86>Dec 13 02:46:57 useradd[927232]: new user: name=rooter, UID=657, GID=657, home=/root, shell=/bin/bash
<86>Dec 13 02:46:57 userdel[927247]: delete user 'builder'
<86>Dec 13 02:46:57 userdel[927247]: removed group 'builder' owned by 'builder'
<86>Dec 13 02:46:57 userdel[927247]: removed shadow group 'builder' owned by 'builder'
<86>Dec 13 02:46:57 groupadd[927256]: group added to /etc/group: name=builder, GID=658
<86>Dec 13 02:46:57 groupadd[927256]: group added to /etc/gshadow: name=builder
<86>Dec 13 02:46:57 groupadd[927256]: new group: name=builder, GID=658
<86>Dec 13 02:46:57 useradd[927264]: new user: name=builder, UID=658, GID=658, home=/usr/src, shell=/bin/bash
<13>Dec 13 02:47:00 rpmi: libgdbm-1.8.3-alt10 1454943313 installed
<13>Dec 13 02:47:00 rpmi: libexpat-2.2.10-alt1 p9+261554.100.1.1 1605103332 installed
<13>Dec 13 02:47:00 rpmi: libp11-kit-0.23.15-alt2 p9+254920.2400.19.1 1601385869 installed
<13>Dec 13 02:47:00 rpmi: libtasn1-4.14-alt1 p9+235792.100.2.1 1565425233 installed
<13>Dec 13 02:47:00 rpmi: rpm-macros-alternatives-0.5.1-alt1 sisyphus+226946.100.1.1 1554830426 installed
<13>Dec 13 02:47:00 rpmi: alternatives-0.5.1-alt1 sisyphus+226946.100.1.1 1554830426 installed
<13>Dec 13 02:47:00 rpmi: ca-certificates-2020.06.29-alt1 p9+258899.100.3.1 1601998604 installed
<13>Dec 13 02:47:00 rpmi: ca-trust-0.1.2-alt1 p9+233349.100.1.1 1561655062 installed
<13>Dec 13 02:47:00 rpmi: p11-kit-trust-0.23.15-alt2 p9+254920.2400.19.1 1601385869 installed
<13>Dec 13 02:47:00 rpmi: libcrypto1.1-1.1.1i-alt1 p9+263105.100.1.1 1607446230 installed
<13>Dec 13 02:47:00 rpmi: libssl1.1-1.1.1i-alt1 p9+263105.100.1.1 1607446230 installed
<13>Dec 13 02:47:00 rpmi: python3-3.7.4-alt3 p9+249932.100.2.1 1587126956 installed
<13>Dec 13 02:47:00 rpmi: libpython3-3.7.4-alt3 p9+249932.100.2.1 1587126956 installed
<13>Dec 13 02:47:01 rpmi: python3-base-3.7.4-alt3 p9+249932.100.2.1 1587126956 installed
<13>Dec 13 02:47:01 rpmi: tests-for-installed-python3-pkgs-0.1.13.1-alt2 1535450458 installed
<13>Dec 13 02:47:01 rpmi: rpm-build-python3-0.1.13.1-alt2 1535450458 installed
<13>Dec 13 02:47:05 rpmi: python3-module-pkg_resources-1:40.8.0-alt2 sisyphus+229158.200.2.1 1557735221 installed
<13>Dec 13 02:47:05 rpmi: python-modules-curses-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:05 rpmi: libtinfo-devel-6.1.20180407-alt2 sisyphus+222164.200.1.1 1550686221 installed
<13>Dec 13 02:47:05 rpmi: libncurses-devel-6.1.20180407-alt2 sisyphus+222164.200.1.1 1550686221 installed
<13>Dec 13 02:47:05 rpmi: python3-dev-3.7.4-alt3 p9+249932.100.2.1 1587126956 installed
<13>Dec 13 02:47:05 rpmi: libverto-0.3.0-alt1_7 sisyphus+225932.100.1.1 1553994917 installed
<13>Dec 13 02:47:05 rpmi: libkeyutils-1.6-alt2 sisyphus+226520.100.2.1 1554512088 installed
<13>Dec 13 02:47:05 rpmi: libcom_err-1.44.6-alt1 sisyphus+224154.100.1.1 1552091653 installed
<86>Dec 13 02:47:05 groupadd[936848]: group added to /etc/group: name=_keytab, GID=499
<86>Dec 13 02:47:05 groupadd[936848]: group added to /etc/gshadow: name=_keytab
<86>Dec 13 02:47:05 groupadd[936848]: new group: name=_keytab, GID=499
<13>Dec 13 02:47:06 rpmi: libkrb5-1.17.2-alt1 p9+262110.100.3.1 1606242396 installed
<13>Dec 13 02:47:06 rpmi: libtirpc-1.0.3-alt1 1532008015 installed
<13>Dec 13 02:47:06 rpmi: libnsl2-1.1.0-alt1_1 1511548748 installed
<13>Dec 13 02:47:06 rpmi: python-modules-compiler-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-modules-email-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-modules-unittest-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-modules-encodings-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-modules-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-modules-nis-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-modules-ctypes-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-modules-multiprocessing-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-modules-logging-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-tools-2to3-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-modules-xml-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-modules-hotshot-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-modules-bsddb-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-modules-distutils-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-module-pkg_resources-1:40.8.0-alt2 sisyphus+229158.200.2.1 1557735221 installed
<13>Dec 13 02:47:06 rpmi: libnsl2-devel-1.1.0-alt1_1 1511548748 installed
<13>Dec 13 02:47:06 rpmi: python-dev-2.7.16-alt1.M90P.2 p9+260393.40.3.1 1604003646 installed
<13>Dec 13 02:47:06 rpmi: python-module-setuptools-1:40.8.0-alt2 sisyphus+229158.200.2.1 1557735221 installed
<13>Dec 13 02:47:06 rpmi: python3-module-setuptools-1:40.8.0-alt2 sisyphus+229158.200.2.1 1557735221 installed
Building target platforms: x86_64
Building for target x86_64
Wrote: /usr/src/in/nosrpm/python-module-couchquery-0.10.2-alt2.nosrc.rpm
Installing python-module-couchquery-0.10.2-alt2.src.rpm
Building target platforms: x86_64
Building for target x86_64
Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.35712
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ rm -rf python-module-couchquery-0.10.2
+ echo 'Source #0 (python-module-couchquery-0.10.2-alt2.tar):'
Source #0 (python-module-couchquery-0.10.2-alt2.tar):
+ /bin/tar -xf /usr/src/RPM/SOURCES/python-module-couchquery-0.10.2-alt2.tar
+ cd python-module-couchquery-0.10.2
+ /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/tests/test_document_local.py
RefactoringTool: Refactored ../python3/tests/test_couchshelve_local.py
RefactoringTool: No changes to ../python3/setup.py
RefactoringTool: Refactored ../python3/couchquery/shelve.py
RefactoringTool: Refactored ../python3/couchquery/changes.py
--- ../python3/tests/test_document_local.py	(original)
+++ ../python3/tests/test_document_local.py	(refactored)
@@ -65,7 +65,7 @@
         for i, rev in enumerate(revs):
             if i > 0:
                 is_compacted = False
-            print i, rev
+            print(i, rev)
         self.assertEqual(is_compacted, True)
 
     def tearDown(self):
--- ../python3/tests/test_couchshelve_local.py	(original)
+++ ../python3/tests/test_couchshelve_local.py	(refactored)
@@ -86,26 +86,26 @@
         
         EXPECTED_KEYS = set(['item1', 'item2', 'item3']) 
         FOUND_KEYS = set(d.keys())
-        self.assert_(len(EXPECTED_KEYS ^ FOUND_KEYS) == 0)
+        self.assertTrue(len(EXPECTED_KEYS ^ FOUND_KEYS) == 0)
     
         EXPECTED_VALUES = set([1, 2, 3]) 
         FOUND_VALUES = set(d.values())
-        self.assert_(len(EXPECTED_VALUES ^ FOUND_VALUES) == 0)
+        self.assertTrue(len(EXPECTED_VALUES ^ FOUND_VALUES) == 0)
     
     
         FOUND_ITEMS = set(d.items())
-        self.assert_(len(EXPECTED_ITEMS ^ FOUND_ITEMS) == 0)
+        self.assertTrue(len(EXPECTED_ITEMS ^ FOUND_ITEMS) == 0)
     
     
         items = []
-        generator = d.iteritems()
+        generator = iter(d.items())
         try:
             while True:
-                items.append(generator.next())
+                items.append(next(generator))
         except StopIteration:
             pass
         FOUND_ITEMS = set(items)
-        self.assert_(len(EXPECTED_ITEMS ^ FOUND_ITEMS) == 0)
+        self.assertTrue(len(EXPECTED_ITEMS ^ FOUND_ITEMS) == 0)
     
 
     def test_confict_behavior(self):
--- ../python3/couchquery/shelve.py	(original)
+++ ../python3/couchquery/shelve.py	(refactored)
@@ -99,12 +99,12 @@
   from collections import MutableMapping as DictMixin
 
 try:
-    import cPickle as pickle
+    import pickle as pickle
 except ImportError:
     import pickle
 
 
-class ConflictError(StandardError):
+class ConflictError(Exception):
     pass
 
 
@@ -201,7 +201,7 @@
             raise ValueError
 
         values = []
-        for key in self.keys():
+        for key in list(self.keys()):
             values.append(self[key])
         return tuple(values)
 
@@ -212,7 +212,7 @@
             raise ValueError
 
         items = []
-        for key in self.keys():
+        for key in list(self.keys()):
             items.append((key, self[key]))
         return tuple(items)
 
@@ -222,7 +222,7 @@
         if self._db is None:
             raise ValueError
 
-        for key in self.keys():
+        for key in list(self.keys()):
             yield (key, self[key])
 
     def sync(self):
@@ -231,7 +231,7 @@
 
         if self._writeback and self._cache:
             self._writeback = False
-            for key, value in self._cache.iteritems():
+            for key, value in self._cache.items():
                 self[key] = value
             self._writeback = True
             self._cache = {}
--- ../python3/couchquery/changes.py	(original)
+++ ../python3/couchquery/changes.py	(refactored)
@@ -1,6 +1,6 @@
-import httplib
-import urlparse
-import urllib
+import http.client
+import urllib.parse
+import urllib.request, urllib.parse, urllib.error
 from threading import Thread
 
 try:
@@ -33,8 +33,8 @@
             self.listeners.remove(function)
             
     def get_update_seq(self):        
-        url = urlparse.urlparse(self.uri)
-        conn = httplib.HTTPConnection(url.netloc)
+        url = urllib.parse.urlparse(self.uri)
+        conn = http.client.HTTPConnection(url.netloc)
         conn.request("GET", url.path)
         resp = conn.getresponse()
         assert resp.status == 200
@@ -43,10 +43,10 @@
     def start(self):
         if 'since' not in self.options and not self.since_first:
             self.options['since'] = self.get_update_seq()
-        url = urlparse.urlparse(self.uri)
-        conn = httplib.HTTPConnection(url.netloc)
-        conn.request("GET", url.path+'_changes?'+urllib.urlencode(self.options))
-        print url.path+'_changes?'+urllib.urlencode(self.options)
+        url = urllib.parse.urlpaRefactoringTool: Refactored ../python3/couchquery/asynchttp.py
rse(self.uri)
+        conn = http.client.HTTPConnection(url.netloc)
+        conn.request("GET", url.path+'_changes?'+urllib.parse.urlencode(self.options))
+        print(url.path+'_changes?'+urllib.parse.urlencode(self.options))
         response = conn.getresponse()
         assert response.status == 200
         self.conn, self.response = conn, response
@@ -73,7 +73,7 @@
 if __name__ == "__main__":
     changes = Changes('http://localhost:5984/testdb')
     def printLine(obj):
-        print json.dumps(obj)
+        print(json.dumps(obj))
     changes.addListener(printLine)
     changes.start()
     from time import sleep
--- ../python3/couchquery/asynchttp.py	(original)
+++ ../python3/couchquery/asynchttp.py	(refactored)
@@ -73,7 +73,7 @@
 import socket
 import time
 import string
-import cStringIO
+import io
 import mimetools
 
 HTTP_PORT = 80
@@ -97,7 +97,7 @@
         # we're expecting something like 'HTTP/1.1 200 OK'
         self._replyline = fp.readline()
         if self.debuglevel > 0:
-            print "reply: %s" % (self._replyline)
+            print("reply: %s" % (self._replyline))
             
         replylist = string.split(self._replyline, None, 2)
 
@@ -129,7 +129,7 @@
         self.msg = mimetools.Message(fp, 0)
         if self.debuglevel > 0:
             for hdr in self.msg.headers:
-                print "header: %s" %  (string.strip(hdr))
+                print("header: %s" %  (string.strip(hdr)))
 
         self.body = None
 
@@ -222,7 +222,7 @@
         self.__set_state(_STATE_CONNECTING)
         self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
         if self.debuglevel > 0:
-            print "connecting: (%s, %s)" % (self.host, self.port)
+            print("connecting: (%s, %s)" % (self.host, self.port))
         
         asyncore.dispatcher.connect(self, (self.host, self.port))
 
@@ -232,7 +232,7 @@
         And remove ourselves from the asyncore polling group
         """
         if self.debuglevel > 0:
-            print "asynchttp.close() (%s, %s)" % (self.host, self.port)
+            print("asynchttp.close() (%s, %s)" % (self.host, self.port))
             
         self.connected = 0
 
@@ -251,7 +251,7 @@
         because it conflicts with asynchat
         """
         if self.debuglevel > 0:
-            print "send_entity %s"
+            print("send_entity %s")
             
         self._requestfp.write(str)
         
@@ -265,7 +265,7 @@
         nothing gets sent to the server until getresponse() is called.
         """
         if self.debuglevel > 0:
-            print "putrequest %s %s" % (method, url)
+            print("putrequest %s %s" % (method, url))
             
         if not self.__state is _STATE_ACTIVE:
             raise RequestNotReady(
@@ -273,7 +273,7 @@
                 name=str(self)
                 )
 
-        self._requestfp = cStringIO.StringIO()
+        self._requestfp = io.StringIO()
         
         if not url:
             url = '/'
@@ -323,7 +323,7 @@
         key, it will wipe out the existing entry.
         """
         if self.debuglevel > 0:
-            print "putheader %s: %s" % (header, value)
+            print("putheader %s: %s" % (header, value))
             
         self._headerdict[header] = value
 
@@ -334,9 +334,9 @@
         stream to be sent when getresponse() is called.
         """
         if self.debuglevel > 0:
-            print "endheaders"
-            
-        for header, value in self._headerdict.items():
+            print("endheaders")
+            
+        for header, value in list(self._headerdict.items()):
             self._requestfp.write(
                 '%s: %s\r\n' % (header, value)
                 )
@@ -348,20 +348,20 @@
         Send a complete request to the server.
         """
         if self.debuglevel > 0:
-            print "request"
+            print("request")
             
         self._send_request(method, url, body, headers)
 
     def _send_request(self, method, url, body, headers):
         if self.debuglevel > 0:
-            print "_send_request"
+            print("_send_request")
             
         self.putrequest(method, url)
 
         if body:
             self.putheader('Content-Length', str(len(body)))
             
-        for hdr, value in headers.items():
+        for hdr, value in list(headers.items()):
             self.putheader(hdr, value)
             
         self.endheaders()
@@ -384,7 +384,7 @@
         # exit this state on a blank line
         self.set_terminator("\r\n\r\n")
         
-        self._responsefp = cStringIO.StringIO()
+        self._responsefp = io.StringIO()
         
     def handle_connect(self):
         """
@@ -392,7 +392,7 @@
         """
         self.__set_state(_STATE_ACTIVE)
         if self.debuglevel > 0:
-            print "connected: (%s, %s)" % (self.host, self.port)
+            print("connected: (%s, %s)" % (self.host, self.port))
             
     def handle_close(self):
         """
@@ -402,9 +402,9 @@
         connection.
         """
         if self.debuglevel > 0:
-            print "closed by server: (%s, %s) %s" % (
+            print("closed by server: (%s, %s) %s" % (
                 self.host, self.port, self.__state
-                )
+                ))
             
         # 2001-03-14 djf If the server closed the connection while we're
         # requesting body data, it  may just be trying to tell us that
@@ -427,11 +427,11 @@
 
         try:
             if self.debuglevel > 0:
-                print "preparing to read %s" % (self.ac_in_buffer_size,)
+                print("preparing to read %s" % (self.ac_in_buffer_size,))
             data = self.recv (self.ac_in_buffer_size)
             if self.debuglevel > 0:
-                print "read completed %s bytes" % (len(data),)
-        except socket.error, why:
+                print("read completed %s bytes" % (len(data),))
+        except socket.error as why:
             self.handle_error()
             return
 
@@ -446,7 +446,7 @@
             lb = len(self.ac_in_buffer)
             terminator = self.get_terminator()
             if self.debuglevel > 0:
-                print "lb = %s; terminator = '%s'" % (lb, terminator)
+                print("lb = %s; terminator = '%s'" % (lb, terminator))
             if terminator is None:
                 # no terminator, collect it all
                 self.collect_incoming_data (self.ac_in_buffer)
@@ -500,7 +500,7 @@
                         self.ac_in_buffer = ''
 
         if self.debuglevel > 0:
-            print "exit handle_read"
+            print("exit handle_read")
 
     def handle_error(self):
         """
@@ -556,11 +556,11 @@
             )
         
         # set up for getting the body
-        self._responsefp = cStringIO.StringIO()
+        self._responsefp = io.StringIO()
 
         if transferencoding:
             if transferencoding == "chunked":
-                self._chunkfp = cStringIO.StringIO()
+                self._chunkfp = io.StringIO()
                 self.set_terminator("\r\n")
                 self.__set_state(_STATE_CHUNK_START)
                 return
@@ -604,7 +604,7 @@
         a line containing the chunk size in hex.
         """
         if self.debuglevel > 0:
-            print "chunkbuffer = '%s'" % (self._chunkbuffer)
+            print("chunkbuffer = '%s'" % (self._chunkbuffer))
             
         # 2001-03-26 djf -- kludge alert! We shouldn't have to lstrip
         # here, but sometimes we get extra whitespace
@@ -615,7 +615,7 @@
             chunkline, self._chunkbuffer = splitlist
 
         if self.debuglevel > 0:
-            print "chunkline = '%s'" % (chunkline)
+            print("chunkline = '%s'" % (chunkline))
             
         i = string.find(chunkline, ';')
         if i >= 0:
@@ -630,7 +630,7 @@
                 ))
             
         if self.debuglevel > 0:
-            print "chunksize = %d" % (chunksize)
+            print("chunksize = %d" % (chunksize))
 
         return chunksize
 
@@ -644,20 +644,20 @@
         self._chunksize = self._get_chunk_size()
         if self._chunksize == 0:
             if self.debuglevel > 0:
-                print "0 size Chunk: ending chunk processing"
+                print("0 size Chunk: ending chunk processing")
             self.response.body = self._chunkfp.getvalue()
             self._chunkfp = None
             self.set_terminator("\r\n\r\n")
-            self._responsefp = cStringIO.StringIO()
+            self._responsefp = io.StringIO()
             self.__set_state(_STATE_CHUNK_RESIDUE)
             return
 
         self.set_terminator(self._chunksize+2)
         if self.debuglevel > 0:
-            print "_chunk_start_data terminator = %s" % (
+            print("_chunk_start_data terminator = %s" % (
                 self._chunksize+2,
-            )
-        self._responsefp = cStringIO.StringIO()
+            ))
+        self._responsefp = io.StringIO()
         self.__set_state(_STATE_CHUNK_BODY)
 
     def _chunk_body_data(self):
@@ -685,7 +685,7 @@
             #if we have some text left over, we hope it's another chunk,
             # but if it doesn't contain a newline, it is insufficient
             if self._chunkbuffer.find("\r\n") < 0:
-                self._responsefp = cStringIO.StringIO()
+                self._responsefp = io.StringIO()
                 self.set_terminator("\r\n")
                 self.__set_state(_STATE_CHUNK_START)
                 return
@@ -693,7 +693,7 @@
             self._chunksize = self._get_chunk_size()
             if self._chunksize == 0:
                 if self.debuglevel > 0:
-                    print "0 size Chunk: ending chunk processing"
+                    print("0 size Chunk: ending chunk processing")
                 self.response.body = self._chunkfp.getvalue()
                 self._chunkfp = None
 
@@ -715,7 +715,7 @@
                 # send entity headers. It should  at least send
                 # a final '\r\n'
                 self.set_terminator("\r\n\r\n")
-                self._responsefp = cStringIO.StringIO()
+                self._responsefp = io.StringIO()
                 self.__set_state(_STATE_CHUNK_RESIDUE)
                 return
 
@@ -726,7 +726,7 @@
             bufsize = len(self._chunkbuffer) 
             if bufsize < chunk_plus_crlf_size:
                 self.set_terminator(chunk_plus_crlf_size - bufsize)
-                self._responsefp = cStringIO.StringIO()
+                self._responsefp = io.StringIO()
                 self.__set_state(_STATE_CHUNK_BODY)
                 return
 
@@ -736,7 +736,7 @@
 
         # we don't have any text left over, but we haven't hit a
         # zero chunk. See if the server will give us another line
-        self._responsefp = cStringIO.StringIO()
+        self._responsefp = io.StringIO()
         self.set_terminator("\r\n")
         self.__set_state(_STATE_CHUNK_START)
         
@@ -747,7 +747,7 @@
         """
         residue = string.strip(self._responsefp.getvalue())
         if self.debuglevel > 0 and residue:
-            print "chunk residue '%s'" % (residue)
+            print("chunk residue '%s'" % (residue))
             
         self._responsefp = None
 
@@ -772,7 +772,7 @@
         Change state be setting _found_terminator
         """
         if self.debuglevel > 0:
-            print "%s to %s" % (self.__state, next_state)
+            print("%s to %s" % (self.__state, next_state))
         self.__state = next_state
         self.found_terminator = self._TERMINATOR_MAP[self.__state]
 
@@ -829,7 +829,7 @@
         self.close()
         
     def handle_connect(self):
-        print "__test_AsyncHTTPConnection.handle_connect"
+        print("__test_AsyncHTTPConnection.handle_connect")
         AsyncHTTPConnection.handle_connect(self)
         self.putrequest("GET", self._url)
         self.endheaders()
@@ -840,7 +840,7 @@
     Code for commandline testing
     """
     if len(sys.argv) < 4:
-        print "Usage:  asynchttp.py <host> <port> <request>"
+        print("Usage:  asynchttp.py <host> <port> <request>")
         sys.exit(-1)
 
     tester = __test_AsyncHTTPConnection(
@@ -854,19 +854,19 @@
     asyncore.loop()
 
     if not hasattr(tester, "response"):
-RefactoringTool: Refactored ../python3/couchquery/__init__.py
        print "No rsponse"
+        print("No rsponse")
         sys.exit(-1)
 
-    print "results %s %d %s" % (
+    print("results %s %d %s" % (
         tester.response.version,
         tester.response.status,
         tester.response.reason
-        )
-        
-    print "headers:"
+        ))
+        
+    print("headers:")
     for hdr in tester.response.msg.headers:
-        print "%s" %  (string.strip(hdr))
+        print("%s" %  (string.strip(hdr)))
     
     if tester.response.status == 200:
-        print "body:"
-        print tester.response.body
+        print("body:")
+        print(tester.response.body)
--- ../python3/couchquery/__init__.py	(original)
+++ ../python3/couchquery/__init__.py	(refactored)
@@ -1,9 +1,9 @@
 import os
 import sys
-import urllib
+import urllib.request, urllib.parse, urllib.error
 import copy
 import types
-from urlparse import urlparse
+from urllib.parse import urlparse
 
 import httplib2
 
@@ -143,16 +143,16 @@
 
     def items(self, key='key', value='value'):
         if value == 'value':
-            values = self.values()
+            values = list(self.values())
         else:
             values = [x[value] for x in self.__rows]
 
         if key == 'value':
-            keys = self.values()
+            keys = list(self.values())
         else:
             keys = [x[key] for x in self.__rows]
 
-        return zip(keys, values)
+        return list(zip(keys, values))
 
     @property
     def offset(self):
@@ -170,7 +170,7 @@
         return self.offset + [x[key] for x in self.__rows].index(obj)
 
     def __iter__(self):
-        for i in xrange(len(self.__rows)):
+        for i in range(len(self.__rows)):
             x = self.__rows[i]
             if (type(x) is dict and
                     type(x['value']) is dict and
@@ -182,7 +182,7 @@
                 yield x['value']
 
     def __contains__(self, obj):
-        if isinstance(obj, basestring):
+        if isinstance(obj, str):
             return obj in (x['id'] for x in self.__rows)
         else:
             return obj in (x['value'] for x in self.__rows)
@@ -257,13 +257,13 @@
         #     if k in ['key', 'startkey', 'endkey']:
         #         kwargs[k] = json.dumps(v)
         qs = {}
-        for k, v in kwargs.iteritems():
+        for k, v in kwargs.items():
             if 'docid' not in k and k != 'stale':
                 qs[k] = json.dumps(v)
             else:
                 qs[k] = v
 
-        query_string = urllib.urlencode(qs)
+        query_string = urllib.parse.urlencode(qs)
         if len(query_string) is not 0:
             path = self.path + '?' + query_string
         else:
@@ -309,18 +309,18 @@
 
     def temp_view(self, map_, reduce_=None, language='javascript', **kwargs):
         view = {"map": map_, "language": language}
-        if isinstance(reduce_, basestring):
+        if isinstance(reduce_, str):
             view['reduce'] = reduce_
         body = json.dumps(view)
         if not kwargs:
             path = self.db.uri+'_temp_view'
         else:
-            for k, v in kwargs.iteritems():
+            for k, v in kwargs.items():
                 if type(v) is bool:
                     kwargs[k] = str(v).lower()
                 if k in ['key', 'startkey', 'endkey']:
                     kwargs[k] = json.dumps(v)
-            query_string = urllib.urlencode(kwargs)
+            query_string = urllib.parse.urlencode(kwargs)
             path = self.path+'_temp_view' + '?' + query_string
 
         response = self.db.http.post(path, body=body)
@@ -338,7 +338,7 @@
 
     def all(self, keys=None, include_docs=True, **kwargs):
         kwargs['include_docs'] = include_docs
-        qs = '&'.join(k+'='+json.dumps(v) for k, v in kwargs.iteritems())
+        qs = '&'.join(k+'='+json.dumps(v) for k, v in kwargs.items())
         if keys:
             response = self.db.http.post(
                 '_all_docs?' + qs, body=json.dumps({"keys": keys}))
@@ -418,14 +418,14 @@
     def get(self, id_, rev=None):
         """Get a single document by id and
         (optionally) reviRefactoringTool: Files that were modified:
RefactoringTool: ../python3/tests/test_document_local.py
RefactoringTool: ../python3/tests/test_couchshelve_local.py
RefactoringTool: ../python3/setup.py
RefactoringTool: ../python3/couchquery/shelve.py
RefactoringTool: ../python3/couchquery/changes.py
RefactoringTool: ../python3/couchquery/asynchttp.py
RefactoringTool: ../python3/couchquery/__init__.py
sion from the database."""
-        id_ = urllib.quote(id_)
+        id_ = urllib.parse.quote(id_)
         if rev is None:
             response = self.http.get(id_)
         else:
             response = self.http.get(id_+"?rev="+rev)
         if response.status == 200:
             obj = dict((str(k), v)
-                       for k, v in json.loads(response.body).iteritems())
+                       for k, v in json.loads(response.body).items())
             return Document(obj, db=self)
         else:
             raise CouchDBDocumentDoesNotExist("No document at id "+id_)
@@ -455,7 +455,7 @@
         """List all documents ids in the database."""
         response = self.http.get("_all_docs")
         obj = dict((str(k), v)
-                   for k, v in json.loads(response.body).iteritems())
+                   for k, v in json.loads(response.body).items())
         ids = []
         for row in obj["rows"]:
             ids.append(str(row["id"]))
@@ -567,11 +567,11 @@
             raise CouchDBException("Bulk update failed "+response.body)
 
     def add_attachments(self, doc, f, name=None, content_type=None, rev=None):
-        if isinstance(doc, basestring):
+        if isinstance(doc, str):
             id_ = doc
         else:
             id_ = doc["_id"]
-        if isinstance(f, basestring):
+        if isinstance(f, str):
             assert os.path.isfile(f)
             body = open(f, 'r').read()
             if content_type is None:
@@ -624,7 +624,7 @@
                 info = self.save(document)
             else:
                 info = {'id': current['_id'], 'rev': rev}
-        except Exception, e:
+        except Exception as e:
             info = self.save(document)
 
         rev = info['rev']
+ exit 0
Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.84143
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd python-module-couchquery-0.10.2
+ CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2'
+ export CFLAGS
+ CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2'
+ export CXXFLAGS
+ FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2'
+ export FFLAGS
+ /usr/bin/python setup.py build
running build
running build_py
creating build
creating build/lib
creating build/lib/couchquery
copying couchquery/shelve.py -> build/lib/couchquery
copying couchquery/changes.py -> build/lib/couchquery
copying couchquery/asynchttp.py -> build/lib/couchquery
copying couchquery/__init__.py -> build/lib/couchquery
running egg_info
creating couchquery.egg-info
writing requirements to couchquery.egg-info/requires.txt
writing couchquery.egg-info/PKG-INFO
writing top-level names to couchquery.egg-info/top_level.txt
writing dependency_links to couchquery.egg-info/dependency_links.txt
writing manifest file 'couchquery.egg-info/SOURCES.txt'
reading manifest file 'couchquery.egg-info/SOURCES.txt'
writing manifest file 'couchquery.egg-info/SOURCES.txt'
+ pushd ../python3
~/RPM/BUILD/python3 ~/RPM/BUILD/python-module-couchquery-0.10.2
+ CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2'
+ export CFLAGS
+ CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2'
+ export CXXFLAGS
+ FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2'
+ export FFLAGS
+ /usr/bin/python3 setup.py build
running build
running build_py
creating build
creating build/lib
creating build/lib/couchquery
copying couchquery/shelve.py -> build/lib/couchquery
copying couchquery/changes.py -> build/lib/couchquery
copying couchquery/asynchttp.py -> build/lib/couchquery
copying couchquery/__init__.py -> build/lib/couchquery
running egg_info
creating couchquery.egg-info
writing couchquery.egg-info/PKG-INFO
writing dependency_links to couchquery.egg-info/dependency_links.txt
writing requirements to couchquery.egg-info/requires.txt
writing top-level names to couchquery.egg-info/top_level.txt
writing manifest file 'couchquery.egg-info/SOURCES.txt'
reading manifest file 'couchquery.egg-info/SOURCES.txt'
writing manifest file 'couchquery.egg-info/SOURCES.txt'
+ popd
~/RPM/BUILD/python-module-couchquery-0.10.2
+ exit 0
Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.28299
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ /bin/chmod -Rf u+rwX -- /usr/src/tmp/python-module-couchquery-buildroot
+ :
+ /bin/rm -rf -- /usr/src/tmp/python-module-couchquery-buildroot
+ cd python-module-couchquery-0.10.2
+ CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2'
+ export CFLAGS
+ CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2'
+ export CXXFLAGS
+ FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2'
+ export FFLAGS
+ /usr/bin/python setup.py install --skip-build --root=/usr/src/tmp/python-module-couchquery-buildroot --force
running install
running install_lib
creating /usr/src/tmp/python-module-couchquery-buildroot
creating /usr/src/tmp/python-module-couchquery-buildroot/usr
creating /usr/src/tmp/python-module-couchquery-buildroot/usr/lib
creating /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7
creating /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages
creating /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery
copying build/lib/couchquery/__init__.py -> /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery
copying build/lib/couchquery/asynchttp.py -> /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery
copying build/lib/couchquery/changes.py -> /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery
copying build/lib/couchquery/shelve.py -> /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery
byte-compiling /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/__init__.py to __init__.pyc
byte-compiling /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/asynchttp.py to asynchttp.pyc
byte-compiling /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/changes.py to changes.pyc
byte-compiling /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/shelve.py to shelve.pyc
running install_egg_info
running egg_info
writing requirements to couchquery.egg-info/requires.txt
writing couchquery.egg-info/PKG-INFO
writing top-level names to couchquery.egg-info/top_level.txt
writing dependency_links to couchquery.egg-info/dependency_links.txt
reading manifest file 'couchquery.egg-info/SOURCES.txt'
writing manifest file 'couchquery.egg-info/SOURCES.txt'
Copying couchquery.egg-info to /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery-0.10.2-py2.7.egg-info
running install_scripts
+ pushd ../python3
~/RPM/BUILD/python3 ~/RPM/BUILD/python-module-couchquery-0.10.2
+ CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2'
+ export CFLAGS
+ CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2'
+ export CXXFLAGS
+ FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2'
+ export FFLAGS
+ /usr/bin/python3 setup.py install --skip-build --root=/usr/src/tmp/python-module-couchquery-buildroot --force
running install
running install_lib
creating /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3
creating /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages
creating /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery
copying build/lib/couchquery/__init__.py -> /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery
copying build/lib/couchquery/asynchttp.py -> /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery
copying build/lib/couchquery/changes.py -> /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery
copying build/lib/couchquery/shelve.py -> /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery
byte-compiling /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/__init__.py to __init__.cpython-37.pyc
byte-compiling /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/asynchttp.py to asynchttp.cpython-37.pyc
byte-compiling /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/changes.py to changes.cpython-37.pyc
byte-compiling /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/shelve.py to shelve.cpython-37.pyc
running install_egg_info
running egg_info
writing couchquery.egg-info/PKG-INFO
writing dependency_links to couchquery.egg-info/dependency_links.txt
writing requirements to couchquery.egg-info/requires.txt
writing top-level names to couchquery.egg-info/top_level.txt
reading manifest file 'couchquery.egg-info/SOURCES.txt'
writing manifest file 'couchquery.egg-info/SOURCES.txt'
Copying couchquery.egg-info to /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery-0.10.2-py3.7.egg-info
running install_scripts
+ popd
~/RPM/BUILD/python-module-couchquery-0.10.2
+ /usr/lib/rpm/brp-alt
Cleaning files in /usr/src/tmp/python-module-couchquery-buildroot (auto)
Verifying and fixing files in /usr/src/tmp/python-module-couchquery-buildroot (binconfig,pkgconfig,libtool,desktop)
Checking contents of files in /usr/src/tmp/python-module-couchquery-buildroot/ (default)
Compressing files in /usr/src/tmp/python-module-couchquery-buildroot (auto)
Adjusting library links in /usr/src/tmp/python-module-couchquery-buildroot
./usr/lib:
Verifying ELF objects in /usr/src/tmp/python-module-couchquery-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-couchquery-buildroot using /usr/bin/python
unlink /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/__init__.pyc
unlink /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/asynchttp.pyc
unlink /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/changes.pyc
unlink /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/shelve.pyc
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/__init__.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/asynchttp.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/changes.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/shelve.py
Bytecompiling python modules with optimization in /usr/src/tmp/python-module-couchquery-buildroot using /usr/bin/python -O
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/__init__.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/asynchttp.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/changes.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/shelve.py
Bytecompiling python3 modules in /usr/src/tmp/python-module-couchquery-buildroot using /usr/bin/python3
unlink /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/__pycache__/__init__.cpython-37.pyc
unlink /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/__pycache__/asynchttp.cpython-37.pyc
unlink /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/__pycache__/changes.cpython-37.pyc
unlink /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/__pycache__/shelve.cpython-37.pyc
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/__init__.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/asynchttp.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/changes.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/shelve.py
Bytecompiling python3 modules with optimization in /usr/src/tmp/python-module-couchquery-buildroot using /usr/bin/python3 -O
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/__init__.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/asynchttp.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/changes.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/shelve.py
Bytecompiling python3 modules with optimization-2 in /usr/src/tmp/python-module-couchquery-buildroot using /usr/bin/python3 -OO
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/__init__.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/asynchttp.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/changes.py
compile /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/shelve.py
Hardlinking identical .pyc and .opt-?.pyc files
'./usr/lib/python3/site-packages/couchquery/__pycache__/shelve.cpython-37.opt-1.pyc' => './usr/lib/python3/site-packages/couchquery/__pycache__/shelve.cpython-37.pyc'
'./usr/lib/python3/site-packages/couchquery/__pycache__/changes.cpython-37.opt-2.pyc' => './usr/lib/python3/site-packages/couchquery/__pycache__/changes.cpython-37.opt-1.pyc'
'./usr/lib/python3/site-packages/couchquery/__pycache__/asynchttp.cpython-37.opt-1.pyc' => './usr/lib/python3/site-packages/couchquery/__pycache__/asynchttp.cpython-37.pyc'
Hardlinking identical .pyc and .pyo files
'./usr/lib/python2.7/site-packages/couchquery/shelve.pyo' => './usr/lib/python2.7/site-packages/couchquery/shelve.pyc'
'./usr/lib/python2.7/site-packages/couchquery/asynchttp.pyo' => './usr/lib/python2.7/site-packages/couchquery/asynchttp.pyc'
Processing files: python-module-couchquery-0.10.2-alt2
Executing(%doc): /bin/sh -e /usr/src/tmp/rpm-tmp.26145
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd python-module-couchquery-0.10.2
+ DOCDIR=/usr/src/tmp/python-module-couchquery-buildroot/usr/share/doc/python-module-couchquery-0.10.2
+ export DOCDIR
+ rm -rf /usr/src/tmp/python-module-couchquery-buildroot/usr/share/doc/python-module-couchquery-0.10.2
+ /bin/mkdir -p /usr/src/tmp/python-module-couchquery-buildroot/usr/share/doc/python-module-couchquery-0.10.2
+ cp -prL README.md /usr/src/tmp/python-module-couchquery-buildroot/usr/share/doc/python-module-couchquery-0.10.2
+ chmod -R go-w /usr/src/tmp/python-module-couchquery-buildroot/usr/share/doc/python-module-couchquery-0.10.2
+ chmod -R a+rX /usr/src/tmp/python-module-couchquery-buildroot/usr/share/doc/python-module-couchquery-0.10.2
+ exit 0
Finding Provides (using /usr/lib/rpm/find-provides)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.pk6F9t
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.VlkthE
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-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/__init__.py: skipping sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/__init__.py: line=13 IGNORE (for REQ=slight and deep=8) module=jsonlib2
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/__init__.py: line=16 IGNORE (for REQ=slight and deep=12) module=yajl
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/__init__.py: line=19 IGNORE (for REQ=slight and deep=16) module=simplejson
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/__init__.py: line=21 IGNORE (for REQ=slight and deep=16) module=json
python.req: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/asynchttp.py: skipping sys
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/changes.py: line=7 IGNORE (for REQ=slight and deep=8) module=jsonlib2
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/changes.py: line=10 IGNORE (for REQ=slight and deep=12) module=yajl
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/changes.py: line=13 IGNORE (for REQ=slight and deep=16) module=simplejson
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/changes.py: line=15 IGNORE (for REQ=slight and deep=16) module=json
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/changes.py: line=79 IGNORE (for REQ=slight and deep=8) module=time
python.req: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/shelve.py: hiding couchquery, which SEEMS TO BE SELF-SATISFIED
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/shelve.py: line=97 IGNORE (for REQ=slight and deep=8) module=UserDict
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/shelve.py: line=99 IGNORE (for REQ=slight and deep=8) module=collections
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/shelve.py: line=102 IGNORE (for REQ=slight and deep=8) module=cPickle
/usr/lib/rpm/python.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/shelve.py: line=104 IGNORE (for REQ=slight and deep=8) module=pickle
shebang.req.files: executable script /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python2.7/site-packages/couchquery/asynchttp.py is not executable
Provides: python2.7(couchquery), python2.7(couchquery.asynchttp), python2.7(couchquery.changes), python2.7(couchquery.shelve)
Requires: /usr/lib/python2.7/site-packages, python-modules, python2.7(httplib2), python2.7(mimetools)
Processing files: python3-module-couchquery-0.10.2-alt2
Executing(%doc): /bin/sh -e /usr/src/tmp/rpm-tmp.51262
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd python-module-couchquery-0.10.2
+ DOCDIR=/usr/src/tmp/python-module-couchquery-buildroot/usr/share/doc/python3-module-couchquery-0.10.2
+ export DOCDIR
+ rm -rf /usr/src/tmp/python-module-couchquery-buildroot/usr/share/doc/python3-module-couchquery-0.10.2
+ /bin/mkdir -p /usr/src/tmp/python-module-couchquery-buildroot/usr/share/doc/python3-module-couchquery-0.10.2
+ cp -prL README.md /usr/src/tmp/python-module-couchquery-buildroot/usr/share/doc/python3-module-couchquery-0.10.2
+ chmod -R go-w /usr/src/tmp/python-module-couchquery-buildroot/usr/share/doc/python3-module-couchquery-0.10.2
+ chmod -R a+rX /usr/src/tmp/python-module-couchquery-buildroot/usr/share/doc/python3-module-couchquery-0.10.2
+ exit 0
Finding Provides (using /usr/lib/rpm/find-provides)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.oHlvBT
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.sqgyLc
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-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/__init__.py: skipping sys
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/__init__.py: line=13 IGNORE (for REQ=slight and deep=8) module=jsonlib2
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/__init__.py: line=16 IGNORE (for REQ=slight and deep=12) module=yajl
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/__init__.py: line=19 IGNORE (for REQ=slight and deep=16) module=simplejson
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/__init__.py: line=21 IGNORE (for REQ=slight and deep=16) module=json
python3.req: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/asynchttp.py: skipping sys
python3.req: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/asynchttp.py: skipping time
python3.req: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/asynchttp.py: skipping mimetools
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/changes.py: line=7 IGNORE (for REQ=slight and deep=8) module=jsonlib2
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/changes.py: line=10 IGNORE (for REQ=slight and deep=12) module=yajl
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/changes.py: line=13 IGNORE (for REQ=slight and deep=16) module=simplejson
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/changes.py: line=15 IGNORE (for REQ=slight and deep=16) module=json
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/changes.py: line=79 IGNORE (for REQ=slight and deep=8) module=time
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/shelve.py: line=97 IGNORE (for REQ=slight and deep=8) module=UserDict
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/shelve.py: line=99 IGNORE (for REQ=slight and deep=8) module=collections
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/shelve.py: line=102 IGNORE (for REQ=slight and deep=8) module=pickle
/usr/lib/rpm/python3.req.py: /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/shelve.py: line=104 IGNORE (for REQ=slight and deep=8) module=pickle
shebang.req.files: executable script /usr/src/tmp/python-module-couchquery-buildroot/usr/lib/python3/site-packages/couchquery/asynchttp.py is not executable
Provides: python3(couchquery), python3(couchquery.asynchttp), python3(couchquery.changes), python3(couchquery.shelve)
Requires: /usr/lib/python3/site-packages, python3(asynchat) < 0, python3(asyncore) < 0, python3(copy) < 0, python3(http.client) < 0, python3(httplib2) < 0, python3(io) < 0, python3(os) < 0, python3(socket) < 0, python3(string) < 0, python3(threading) < 0, python3(types) < 0, python3(urllib.error) < 0, python3(urllib.parse) < 0, python3(urllib.request) < 0
Wrote: /usr/src/RPM/RPMS/noarch/python-module-couchquery-0.10.2-alt2.noarch.rpm
Wrote: /usr/src/RPM/RPMS/noarch/python3-module-couchquery-0.10.2-alt2.noarch.rpm
12.64user 1.59system 0:16.83elapsed 84%CPU (0avgtext+0avgdata 34960maxresident)k
0inputs+0outputs (0major+269826minor)pagefaults 0swaps
24.36user 7.99system 0:33.76elapsed 95%CPU (0avgtext+0avgdata 117740maxresident)k
0inputs+0outputs (0major+704946minor)pagefaults 0swaps