<86>Jan 21 15:35:51 userdel[1152532]: delete user 'rooter' <86>Jan 21 15:35:51 userdel[1152532]: removed group 'rooter' owned by 'rooter' <86>Jan 21 15:35:51 userdel[1152532]: removed shadow group 'rooter' owned by 'rooter' <86>Jan 21 15:35:51 groupadd[1152549]: group added to /etc/group: name=rooter, GID=642 <86>Jan 21 15:35:51 groupadd[1152549]: group added to /etc/gshadow: name=rooter <86>Jan 21 15:35:51 groupadd[1152549]: new group: name=rooter, GID=642 <86>Jan 21 15:35:51 useradd[1152558]: new user: name=rooter, UID=642, GID=642, home=/root, shell=/bin/bash <86>Jan 21 15:35:52 userdel[1152575]: delete user 'builder' <86>Jan 21 15:35:52 userdel[1152575]: removed group 'builder' owned by 'builder' <86>Jan 21 15:35:52 userdel[1152575]: removed shadow group 'builder' owned by 'builder' <86>Jan 21 15:35:52 groupadd[1152593]: group added to /etc/group: name=builder, GID=643 <86>Jan 21 15:35:52 groupadd[1152593]: group added to /etc/gshadow: name=builder <86>Jan 21 15:35:52 groupadd[1152593]: new group: name=builder, GID=643 <86>Jan 21 15:35:52 useradd[1152604]: new user: name=builder, UID=643, GID=643, home=/usr/src, shell=/bin/bash /usr/src/in/srpm/googlecl-0.9.13-alt2.src.rpm: The use of such a license name is ambiguous: Apache /usr/src/in/srpm/googlecl-0.9.13-alt2.src.rpm: license not found in '/usr/share/license' directory: License /usr/src/in/srpm/googlecl-0.9.13-alt2.src.rpm: license not found in '/usr/share/license' directory: 2.0 <13>Jan 21 15:35:54 rpmi: libgdbm-1.8.3-alt10 1454943334 installed <13>Jan 21 15:35:54 rpmi: libexpat-2.2.10-alt1 sisyphus+259966.100.1.1 1602824518 installed <13>Jan 21 15:35:54 rpmi: libp11-kit-0.23.15-alt2 sisyphus+252784.100.2.2 1591274901 installed <13>Jan 21 15:35:54 rpmi: libtasn1-4.16.0-alt1 sisyphus+245480.100.1.1 1580825062 installed <13>Jan 21 15:35:54 rpmi: rpm-macros-alternatives-0.5.1-alt1 sisyphus+226946.100.1.1 1554830426 installed <13>Jan 21 15:35:54 rpmi: alternatives-0.5.1-alt1 sisyphus+226946.100.1.1 1554830426 installed <13>Jan 21 15:35:54 rpmi: ca-certificates-2020.10.22-alt1 sisyphus+260224.300.2.1 1603549301 installed <13>Jan 21 15:35:54 rpmi: ca-trust-0.1.2-alt1 sisyphus+233348.100.1.1 1561653823 installed <13>Jan 21 15:35:54 rpmi: p11-kit-trust-0.23.15-alt2 sisyphus+252784.100.2.2 1591274901 installed <13>Jan 21 15:35:54 rpmi: libcrypto1.1-1.1.1i-alt2 sisyphus+264815.100.1.1 1610967332 installed <13>Jan 21 15:35:54 rpmi: libssl1.1-1.1.1i-alt2 sisyphus+264815.100.1.1 1610967332 installed <13>Jan 21 15:35:54 rpmi: python3-3.8.6-alt1 sisyphus+259085.100.2.1 1601904174 installed <13>Jan 21 15:35:55 rpmi: python3-base-3.8.6-alt1 sisyphus+259085.100.2.1 1601904174 installed <13>Jan 21 15:35:55 rpmi: libpython3-3.8.6-alt1 sisyphus+259085.100.2.1 1601904174 installed <13>Jan 21 15:35:55 rpmi: tests-for-installed-python3-pkgs-0.1.13.1-alt2 1535450458 installed <13>Jan 21 15:35:55 rpmi: rpm-build-python3-0.1.13.1-alt2 1535450458 installed <13>Jan 21 15:35:58 rpmi: python-modules-compiler-2.7.18-alt3 sisyphus+263690.140.6.1 1608730167 installed <13>Jan 21 15:35:58 rpmi: python-modules-email-2.7.18-alt3 sisyphus+263690.140.6.1 1608730167 installed <13>Jan 21 15:35:58 rpmi: python-modules-unittest-2.7.18-alt3 sisyphus+263690.140.6.1 1608730167 installed <13>Jan 21 15:35:59 rpmi: python-modules-2.7.18-alt3 sisyphus+263690.140.6.1 1608730167 installed <13>Jan 21 15:35:59 rpmi: python-modules-encodings-2.7.18-alt3 sisyphus+263690.140.6.1 1608730167 installed <13>Jan 21 15:35:59 rpmi: python-modules-ctypes-2.7.18-alt3 sisyphus+263690.140.6.1 1608730167 installed <13>Jan 21 15:35:59 rpmi: python-modules-multiprocessing-2.7.18-alt3 sisyphus+263690.140.6.1 1608730167 installed <13>Jan 21 15:35:59 rpmi: python-modules-logging-2.7.18-alt3 sisyphus+263690.140.6.1 1608730167 installed <13>Jan 21 15:35:59 rpmi: python-tools-2to3-2.7.18-alt3 sisyphus+263690.140.6.1 1608730167 installed Building target platforms: i586 Building for target i586 Wrote: /usr/src/in/nosrpm/googlecl-0.9.13-alt2.nosrc.rpm (w1.gzdio) <13>Jan 21 15:36:02 rpmi: python3-module-pkg_resources-1:46.1.3-alt2 sisyphus+260458.600.6.1 1603876498 installed <13>Jan 21 15:36:02 rpmi: libtinfo-devel-6.2.20201107-alt1 sisyphus+261749.100.1.1 1605292929 installed <13>Jan 21 15:36:02 rpmi: libncurses-devel-6.2.20201107-alt1 sisyphus+261749.100.1.1 1605292929 installed <13>Jan 21 15:36:02 rpmi: python3-dev-3.8.6-alt1 sisyphus+259085.100.2.1 1601904174 installed <13>Jan 21 15:36:02 rpmi: python3-module-setuptools-1:46.1.3-alt2 sisyphus+260458.600.6.1 1603876498 installed Installing googlecl-0.9.13-alt2.src.rpm Building target platforms: i586 Building for target i586 Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.59755 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + rm -rf googlecl-0.9.13 + echo 'Source #0 (googlecl-0.9.13.tar):' Source #0 (googlecl-0.9.13.tar): + /bin/tar -xf /usr/src/RPM/SOURCES/googlecl-0.9.13.tar + cd googlecl-0.9.13 + /bin/chmod -c -Rf u+rwX,go-w . + echo 'Patch #0 (port-on-python3.patch):' Patch #0 (port-on-python3.patch): + /usr/bin/patch -p1 patching file setup.py + find -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 ./setup.py RefactoringTool: Refactored ./upload-diffs.py --- ./setup.py (original) +++ ./setup.py (refactored) @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from __future__ import with_statement + try: from setuptools import setup @@ -52,10 +52,10 @@ # For the distributed tarball, they should not. if os.path.exists(SCRIPT_TO_RENAME) and\ not _md5_hash_file(SCRIPT_TO_INSTALL) == _md5_hash_file(SCRIPT_TO_RENAME): - print SCRIPT_TO_INSTALL + ' exists and is not the same as ' +\ - SCRIPT_TO_RENAME - print 'Not trusting ' + SCRIPT_TO_INSTALL - print 'Please update it or remove it.' + print(SCRIPT_TO_INSTALL + ' exists and is not the same as ' +\ + SCRIPT_TO_RENAME) + print('Not trusting ' + SCRIPT_TO_INSTALL) + print('Please update it or remove it.') exit(-1) else: shutil.copy(SCRIPT_TO_RENAME, SCRIPT_TO_INSTALL) --- ./upload-diffs.py (original) +++ ./upload-diffs.py (refactored) @@ -33,8 +33,8 @@ # This code is derived from appcfg.py in the App Engine SDK (open source), # and from ASPN recipe #146306. -import ConfigParser -import cookielib +import configparser +import http.cookiejar import fnmatch import getpass import logging @@ -45,9 +45,9 @@ import socket import subprocess import sys -import urllib -import urllib2 -import urlparse +import urllib.request, urllib.parse, urllib.error +import urllib.request, urllib.error, urllib.parse +import urllib.parse # The md5 module was deprecated in Python 2.5. try: @@ -128,15 +128,15 @@ last_email = last_email_file.readline().strip("\n") last_email_file.close() prompt += " [%s]" % last_email - except IOError, e: + except IOError as e: pass - email = raw_input(prompt + ": ").strip() + email = input(prompt + ": ").strip() if email: try: last_email_file = open(last_email_file_name, "w") last_email_file.write(email) last_email_file.close() - except IOError, e: + except IOError as e: pass else: email = last_email @@ -152,20 +152,20 @@ msg: The string to print. """ if verbosity > 0: - print msg + print(msg) def ErrorExit(msg): """Print an error message to stderr and exit.""" - print >>sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) -class ClientLoginError(urllib2.HTTPError): +class ClientLoginError(urllib.error.HTTPError): """Raised to indicate there was an error authenticating with ClientLogin.""" def __init__(self, url, code, msg, headers, args): - urllib2.HTTPError.__init__(self, url, code, msg, headers, None) + urllib.error.HTTPError.__init__(self, url, code, msg, headers, None) self.args = args self.reason = args["Error"] @@ -217,10 +217,10 @@ def _CreateRequest(self, url, data=None): """Creates a new urllib request.""" logging.debug("Creating request for: '%s' with payload:\n%s", url, data) - req = urllib2.Request(url, data=data) + req = urllib.request.Request(url, data=data) if self.host_override: req.add_header("Host", self.host_override) - for key, value in self.extra_headers.iteritems(): + for key, value in self.extra_headers.items(): req.add_header(key, value) return req @@ -244,7 +244,7 @@ account_type = "HOSTED" req = self._CreateRequest( url="https://www.google.com/accounts/ClientLogin", - data=urllib.urlencode({ + data=urllib.parse.urlencode({ "Email": email, "Passwd": password, "service": "ah", @@ -258,7 +258,7 @@ response_dict = dict(x.split("=") for x in response_body.split("\n") if x) return response_dict["Auth"] - except urllib2.HTTPError, e: + except urllib.error.HTTPError as e: if e.code == 403: body = e.read() response_dict = dict(x.split("=", 1) for x in body.split("\n") if x) @@ -280,14 +280,14 @@ continue_location = "http://localhost/" args = {"continue": continue_location, "auth": auth_token} req = self._CreateRequest("%s/_ah/login?%s" % - (self.host, urllib.urlencode(args))) + (self.host, urllib.parse.urlencode(args))) try: response = self.opener.open(req) - except urllib2.HTTPError, e: + except urllib.error.HTTPError as e: response = e if (response.code != 302 or response.info()["location"] != continue_location): - raise urllib2.HTTPError(req.get_full_url(), response.code, response.msg, + raise urllib.error.HTTPError(req.get_full_url(), response.code, response.msg, response.headers, response.fp) self.authenticated = True @@ -310,36 +310,36 @@ credentials = self.auth_function() try: auth_token = self._GetAuthToken(credentials[0], credentials[1]) - except ClientLoginError, e: + except ClientLoginError as e: if e.reason == "BadAuthentication": - print >>sys.stderr, "Invalid username or password." + print("Invalid username or password.", file=sys.stderr) continue if e.reason == "CaptchaRequired": - print >>sys.stderr, ( + print(( "Please go to\n" "https://www.google.com/accounts/DisplayUnlockCaptcha\n" "and verify you are a human. Then try again.\n" "If you are using a Google Apps account the URL is:\n" - "https://www.google.com/a/yourdomain.com/UnlockCaptcha") + "https://www.google.com/a/yourdomain.com/UnlockCaptcha"), file=sys.stderr) break if e.reason == "NotVerified": - print >>sys.stderr, "Account not verified." + print("Account not verified.", file=sys.stderr) break if e.reason == "TermsNotAgreed": - print >>sys.stderr, "User has not agreed to TOS." + print("User has not agreed to TOS.", file=sys.stderr) break if e.reason == "AccountDeleted": - print >>sys.stderr, "The user account has been deleted." + print("The user account has been deleted.", file=sys.stderr) break if e.reason == "AccountDisabled": - print >>sys.stderr, "The user account has been disabled." + print("The user account has been disabled.", file=sys.stderr) break if e.reason == "ServiceDisabled": - print >>sys.stderr, ("The user's access to the service has been " - "disabled.") + print(("The user's access to the service has been " + "disabled."), file=sys.stderr) break if e.reason == "ServiceUnavailable": - print >>sys.stderr, "The service is not available; try again later." + print("The service is not available; try again later.", file=sys.stderr) break raise self._GetAuthCookie(auth_token) @@ -380,18 +380,18 @@ args = dict(kwargs) url = "%s%s" % (self.host, request_path) if args: - url += "?" + urllib.urlencode(args) + url += "?" + urllib.parse.urlencode(args) req = self._CreateRequest(url=url, data=payload) req.add_header("Content-Type", content_type) if extra_headers: - for header, value in extra_headers.items(): + for header, value in list(extra_headers.items()): req.add_header(header, value) try: f = self.opener.open(req) response = f.read() f.close() return response - except urllib2.HTTPError, e: + except urllib.error.HTTPError as e: if tries > 3: raise elif e.code == 401 or e.code == 302: @@ -421,35 +421,35 @@ Returns: A urllib2.OpenerDirector object. """ - opener = urllib2.OpenerDirector() - opener.add_handler(urllib2.ProxyHandler()) - opener.add_handler(urllib2.UnknownHandler()) - opener.add_handler(urllib2.HTTPHandler()) - opener.add_handler(urllib2.HTTPDefaultErrorHandler()) - opener.add_handler(urllib2.HTTPSHandler()) + opener = urllib.request.OpenerDirector() + opener.add_handler(urllib.request.ProxyHandler()) + opener.add_handler(urllib.request.UnknownHandler()) + opener.add_handler(urllib.request.HTTPHandler()) + opener.add_handler(urllib.request.HTTPDefaultErrorHandler()) + opener.add_handler(urllib.request.HTTPSHandler()) opener.add_handler(urllib2.HTTPErrorProcessor()) if self.save_cookies: self.cookie_file = os.path.expanduser("~/.codereview_upload_cookies") - self.cookie_jar = cookielib.MozillaCookieJar(self.cookie_file) + self.cookie_jar = http.cookiejar.MozillaCookieJar(self.cookie_file) if os.path.exists(self.cookie_file): try: self.cookie_jar.load() self.authenticated = True StatusUpdate("Loaded authentication cookies from %s" % self.cookie_file) - except (cookielib.LoadError, IOError): + except (http.cookiejar.LoadError, IOError): # Failed to load cookies - just ignore them. pass else: # Create an empty cookie file with mode 600 - fd = os.open(self.cookie_file, os.O_CREAT, 0600) + fd = os.open(self.cookie_file, os.O_CREAT, 0o600) os.close(fd) # Always chmod the cookie file - os.chmod(self.cookie_file, 0600) + os.chmod(self.cookie_file, 0o600) else: # Don't save cookies across runs of update.py. - self.cookie_jar = cookielib.CookieJar() - opener.add_handler(urllib2.HTTPCookieProcessor(self.cookie_jar)) + self.cookie_jar = http.cookiejar.CookieJar() + opener.add_handler(urllib.request.HTTPCookieProcessor(self.cookie_jar)) return opener @@ -589,11 +589,11 @@ if keyring: password = keyring.get_password(host, local_email) if password is not None: - print "Using password from system keyring." + print("Using password from system keyring.") else: password = getpass.getpass("Password for %s: " % local_email) if keyring: - answer = raw_input("Store password in system keyring?(y/N) ").strip() + answer = input("Store password in system keyring?(y/N) ").strip() if answer == "y": keyring.set_password(host, local_email, password) return (local_email, password) @@ -624,7 +624,7 @@ lines.append('--' + BOUNDARY) lines.append('Content-Disposition: form-data; name="%s"' % key) lines.append('') - if isinstance(value, unicode): + if isinstance(value, str): value = value.encode('utf-8') lines.append(value) for (key, filename, value) in files: @@ -633,7 +633,7 @@ (key, filename)) lines.append('Content-Type: %s' % GetContentType(filename)) lines.append('') - if isinstance(value, unicode): + if isinstance(value, str): value = value.encode('utf-8') lines.append(value) lines.append('--' + BOUNDARY + '--') @@ -675,7 +675,7 @@ line = p.stdout.readline() if not line: break - print line.strip("\n") + print(line.strip("\n")) output_array.append(line) output = "".join(output_array) else: @@ -683,7 +683,7 @@ p.wait() errout = p.stderr.read() if print_output and errout: - print >>sys.stderr, errout + print(errout, file=sys.stderr) p.stdout.close() p.stderr.close() return output, p.returncode @@ -734,11 +734,11 @@ """Show an "are you sure?" prompt if there are unknown files.""" unknown_files = self.GetUnknownFiles() if unknown_files: - print "The following files are not added to version control:" + print("The following files are not added to version control:") for line in unknown_files: - print line + print(line) prompt = "Are you sure to continue?(y/N) " - answer = raw_input(prompt).strip() + answer = input(prompt).strip() if answer != "y": ErrorExit("User aborted") @@ -790,13 +790,13 @@ else: type = "current" if len(content) > MAX_UPLOAD_SIZE: - print ("Not uploading the %s file for %s because it's too large." % - (type, filename)) + print(("Not uploading the %s file for %s because it's too large." % + (type, filename))) file_too_large = True content = "" checksum = md5(content).hexdigest() if options.verbose > 0 and not file_too_large: - print "Uploading %s file for %s" % (type, filename) + print("Uploading %s file for %s" % (type, filename)) url = "/%d/upload_content/%d/%d" % (int(issue), int(patchset), file_id) form_fields = [("filename", filename), ("status", status), @@ -818,7 +818,7 @@ patches = dict() [patches.setdefault(v, k) for k, v in patch_list] - for filename in patches.keys(): + for filename in list(patches.keys()): base_content, new_content, is_binary, status = files[filename] file_id_str = patches.get(filename) if file_id_str.find("nobase") != -1: @@ -885,8 +885,8 @@ words = line.split() if len(words) == 2 and words[0] == "URL:": url = words[1] - scheme, netloc, path, params, query, fragment = urlparse.urlparse(url) - username, netloc = urllib.splituser(netloc) + scheme, netloc, path, params, query, fragment = urllib.parse.urlparse(url) + username, netloc = urllib.parse.splituser(netloc) if username: logging.info("Removed username from base URL") if netloc.endswith("svn.python.org"): @@ -904,12 +904,12 @@ logging.info("Guessed CollabNet base = %s", base) elif netloc.endswith(".googlecode.com"): path = path + "/" - base = urlparse.urlunparse(("http", netloc, path, params, + base = urllib.parse.urlunparse(("http", netloc, path, params, query, fragment)) logging.info("Guessed Google Code base = %s", base) else: path = path + "/" - base = urlparse.urlunparse((scheme, netloc, path, params, + base = urllib.parse.urlunparse((scheme, netloc, path, params, query, fragment)) logging.info("Guessed base = %s", base) return base @@ -1404,8 +1404,8 @@ rv = [] for patch in patches: if len(patch[1]) > MAX_UPLOAD_SIZE: - print ("Not uploading the patch for " + patch[0] + - " because the file is too large.") + print(("Not uploading the patch for " + patch[0] + + " because the file is too large.")) continue form_fields = [("filename", patch[0])] if not options.download_base: @@ -1413,7 +1413,7 @@ files = [("data", "data.diff", patch[1])] ctype, body = EncodeMultipartFormData(form_fields, files) url = "/%d/upload_patch/%d" % (int(issue), int(patchset)) - print "Uploading patch for " + patch[0] + print("Uploading patch for " + patch[0]) response_body = rpc_server.Send(url, body, content_type=ctype) lines = response_body.splitlines() if not lines or lines[0] != "OK": @@ -1442,7 +1442,8 @@ out, returncode = RunShellWithReturnCode(["hg", "root"]) if returncode == 0: return (VCS_MERCURIAL, out.strip()) - except OSError, (errno, message): + except OSError as xxx_todo_changeme: + (errno, message) = xxx_todo_changeme.args if errno != 2: # ENOENT -- they don't have hg installed. raise @@ -1458,7 +1459,8 @@ "--is-inside-work-tree"]) if returncode == 0: return (VCS_GIT, None) - except OSError, (errno, message): + except OSError as xxx_todo_changeme1: + (errno, message) = xxx_todo_changeme1.args if errno != 2: # ENOENT -- they don't have git installed. raise @@ -1536,7 +1538,7 @@ subversion_config = os.path.expanduser("~/.subversion/config") if not os.path.exists(subversion_config): return {} - config = ConfigParser.ConfigParser() + config = configparser.ConfigParser() config.read(subversion_config) RefactoringTool: No changes to ./src/win_setup.py RefactoringTool: Refactored ./src/googlecl/youtube/service.py RefactoringTool: Refactored ./src/googlecl/youtube/__init__.py if (config.has_section("miscellany") and config.has_option("miscellany", "enable-auto-props") and @@ -1591,7 +1593,7 @@ svn_auto_props_map = LoadSubversionAutoProperties() all_props = [] - for file_pattern, props in svn_auto_props_map.items(): + for file_pattern, props in list(svn_auto_props_map.items()): if fnmatch.fnmatch(filename, file_pattern): all_props.extend(props) if all_props: @@ -1661,8 +1663,8 @@ guessed_base = vcs.GuessBase(options.download_base) if base: if guessed_base and base != guessed_base: - print "Using base URL \"%s\" from --base_url instead of \"%s\"" % \ - (base, guessed_base) + print("Using base URL \"%s\" from --base_url instead of \"%s\"" % \ + (base, guessed_base)) else: base = guessed_base @@ -1676,12 +1678,12 @@ data = vcs.PostProcessDiff(data) files = vcs.GetBaseFiles(data) if verbosity >= 1: - print "Upload server:", options.server, "(change with -s/--server)" + print("Upload server:", options.server, "(change with -s/--server)") if options.issue: prompt = "Message describing this patch set: " else: prompt = "New issue subject: " - message = options.message or raw_input(prompt).strip() + message = options.message or input(prompt).strip() if not message: ErrorExit("A non-empty message is required") rpc_server = GetRpcServer(options.server, @@ -1716,7 +1718,7 @@ # Send a hash of all the base file so the server can determine if a copy # already exists in an earlier patchset. base_hashes = "" - for file, info in files.iteritems(): + for file, info in files.items(): if not info[0] is None: checksum = md5(info[0]).hexdigest() if base_hashes: @@ -1725,7 +1727,7 @@ form_fields.append(("base_hashes", base_hashes)) if options.private: if options.issue: - print "Warning: Private flag ignored when updating an existing issue." + print("Warning: Private flag ignored when updating an existing issue.") else: form_fields.append(("private", "1")) # If we're uploading base files, don't send the email before the uploads, so @@ -1735,7 +1737,7 @@ if not options.download_base: form_fields.append(("content_upload", "1")) if len(data) > MAX_UPLOAD_SIZE: - print "Patch is large, so uploading file patches separately." + print("Patch is large, so uploading file patches separately.") uploaded_diff_file = [] form_fields.append(("separate_patches", "1")) else: @@ -1775,7 +1777,7 @@ try: RealMain(sys.argv) except KeyboardInterrupt: - print + print() StatusUpdate("Interrupted.") sys.exit(1) --- ./src/googlecl/youtube/service.py (original) +++ ./src/googlecl/youtube/service.py (refactored) @@ -59,7 +59,7 @@ video.media.category = build_category(category) try: self.UpdateVideoEntry(video) - except gdata.service.RequestError, err: + except gdata.service.RequestError as err: if err.args[0]['body'].find('invalid_value') != -1: LOG.error('Category update failed, ' + category + ' is not a category.') @@ -107,7 +107,7 @@ """ from gdata.media import Group, Title, Description, Keywords, Private - if isinstance(paths, basestring): + if isinstance(paths, str): paths = [paths] set_private = lambda private: Private() if private else None for path in paths: @@ -126,9 +126,9 @@ LOG.info(safe_encode('Loading ' + path)) try: entry = self.InsertVideoEntry(video_entry, path) - except gdata.service.RequestError, err: + except gdata.service.RequestError as err: LOG.error('Failed to upload video: %s' % err) - except gdata.youtube.service.YouTubeError, err: + except gdata.youtube.service.YouTubeError as err: err_str = str(err) if err_str.find('path name or a file-like object') != -1: err_str = safe_encode('Could not find file ' + path) --- ./src/googlecl/youtube/__init__.py (original) +++ ./srcRefactoringTool: Refactored ./src/googlecl/service.py RefactoringTool: Refactored ./src/googlecl/picasa/service.py /googlecl/youtube/__init__.py (refactored) @@ -105,9 +105,9 @@ entries = client.GetVideos(user=options.owner or 'default', titles=titles_list) for vid in entries: - print googlecl.base.compile_entry_string(VideoEntryToStringWrapper(vid), + print(googlecl.base.compile_entry_string(VideoEntryToStringWrapper(vid), options.fields.split(','), - delimiter=options.delimiter) + delimiter=options.delimiter)) def _run_post(client, options, args): --- ./src/googlecl/service.py (original) +++ ./src/googlecl/service.py (refactored) @@ -110,7 +110,7 @@ try: request_token = self.FetchOAuthRequestToken(scopes=scopes, extra_parameters=fetch_params) - except gdata.service.FetchingOAuthRequestTokenFailed, err: + except gdata.service.FetchingOAuthRequestTokenFailed as err: LOG.error(err[0]['body'].strip() + '; Request token retrieval failed!') if str(err).find('Timestamp') != -1: LOG.info('Is your system clock up to date? See the FAQ on our wiki: ' @@ -123,13 +123,13 @@ if browser is not None: try: browser.open(str(auth_url)) - except Exception, err: + except Exception as err: # Blanket catch of Exception is a bad idea, but don't want to pass in # error to look for. - LOG.error('Failed to launch web browser: ' + unicode(err)) + LOG.error('Failed to launch web browser: ' + str(err)) message = ('Please log in and/or grant access via your browser at %s ' 'then hit enter.' % auth_url) - raw_input(message) + input(message) # This upgrades the token, and if successful, sets the access token try: self.UpgradeToOAuthAccessToken(request_token) --- ./src/googlecl/picasa/service.py (original) +++ ./src/googlecl/picasa/service.py (refactored) @@ -16,12 +16,12 @@ """Service details and instances for the Picasa service.""" -from __future__ import with_statement + __author__ = 'tom.h.miller@gmail.com (Tom Miller)' import logging import os -import urllib +import urllib.request, urllib.parse, urllib.error import time import gdata.photos @@ -56,7 +56,7 @@ # 'video/', eliminating duplicates via set(), then converting to tuple() # since that's what gdata.photos.service uses. gdata.photos.service.SUPPORTED_UPLOAD_TYPES += \ - tuple(set([vtype.split('/')[1] for vtype in SUPPORTED_VIDEO_TYPES.values()])) + tuple(set([vtype.split('/')[1] for vtype in list(SUPPORTED_VIDEO_TYPES.values())])) DOWNLOAD_VIDEO_TYPES = {'swf': 'application/x-shockwave-flash', 'mp4': 'video/mpeg4',} @@ -198,10 +198,10 @@ if not user: user = 'default' entries = self.GetAlbum(user=user, titles=titles) - if video_format not in DOWNLOAD_VIDEO_TYPES.keys(): + if video_format not in list(DOWNLOAD_VIDEO_TYPES.keys()): LOG.error('Unsupported video format: ' + video_format) LOG.info('Try one of the following video formats: ' + - str(DOWNLOAD_VIDEO_TYPES.keys())[1:-1]) + str(list(DOWNLOAD_VIDEO_TYPES.keys()))[1:-1]) video_format = 'mp4' LOG.info('Downloading videos as ' + video_format) @@ -235,7 +235,7 @@ photo_concat += 1 LOG.info(safe_encode('Downloading %s to %s' % (safe_decode(photo_or_video.title.text), path))) - urllib.urlretrieve(url, path) + urllib.request.urlretrieve(url, path) DownloadAlbum = download_album @@ -304,18 +304,18 @@ filename_or_handle=path, keywords=keywords, content_type=content_type) - except GooglePhotosException, err: + except GooglePhotosException as err: LOG.error('Failed to upload %s. (%s: %s)', path, err.args[0], RefactoringTool: Refactored ./src/googlecl/picasa/__init__.py RefactoringTool: Refactored ./src/googlecl/finance/service.py RefactoringTool: No changes to ./src/googlecl/finance/__init__.py RefactoringTool: Refactored ./src/googlecl/docs/service.py err.args[1]) failures.append(file) - except Exception, err: + except Exception as err: # Don't let a stray error wreck an upload of 1000 photos - LOG.error(safe_encode('Unexpected error -- ' + unicode(err))) + LOG.error(safe_encode('Unexpected error -- ' + str(err))) failures.append(file) if failures: LOG.info(str(len(failures)) + ' photos failed to upload') - LOG.debug(safe_encode('Failed files: ' + unicode(failures))) + LOG.debug(safe_encode('Failed files: ' + str(failures))) return failures InsertMediaList = insert_media_list --- ./src/googlecl/picasa/__init__.py (original) +++ ./src/googlecl/picasa/__init__.py (refactored) @@ -228,9 +228,9 @@ force_photos=True, photo_title=options.photo) for entry in entries: - print googlecl.base.compile_entry_string(PhotoEntryToStringWrapper(entry), + print(googlecl.base.compile_entry_string(PhotoEntryToStringWrapper(entry), options.fields.split(','), - delimiter=options.delimiter) + delimiter=options.delimiter)) def _run_list_albums(client, options, args): @@ -239,9 +239,9 @@ titles=titles_list, force_photos=False) for entry in entries: - print googlecl.base.compile_entry_string(AlbumEntryToStringWrapper(entry), + print(googlecl.base.compile_entry_string(AlbumEntryToStringWrapper(entry), options.fields.split(','), - delimiter=options.delimiter) + delimiter=options.delimiter)) def _run_post(client, options, args): --- ./src/googlecl/finance/service.py (original) +++ ./src/googlecl/finance/service.py (refactored) @@ -94,7 +94,7 @@ pfl.portfolio_title = title try: return self.AddPortfolio(pfl) - except RequestError, err: + except RequestError as err: LOG.error('Failed to create portfolio: %s' % err[0]['body']) CreatePortfolio = create_portfolio @@ -241,7 +241,7 @@ try: return self.AddTransaction(txn, portfolio_id=pfl.portfolio_id, ticker_id=ticker) - except RequestError, err: + except RequestError as err: LOG.error('Failed to create transaction: %s' % err[0]['body']) --- ./src/googlecl/docs/service.py (original) +++ ./src/googlecl/docs/service.py (refactored) @@ -26,7 +26,7 @@ docs get --folder "Some folder" """ -from __future__ import with_statement + __author__ = 'tom.h.miller@gmail.com (Tom Miller)' import gdata.docs.service @@ -82,14 +82,14 @@ server_response = self.request('GET', uri) response_body = server_response.read() if server_response.status != 200: - raise gdata.service.RequestError, {'status': server_response.status, + raise gdata.service.RequestError({'status': server_response.status, 'reason': server_response.reason, - 'body': response_body} + 'body': response_body}) if googlecl.docs.base.can_export(uri) and\ self.config.lazy_get(SECTION_HEADER, 'decode_utf_8', False, bool): try: file_string = response_body.decode('utf-8-sig') - except UnicodeError, err: + except UnicodeError as err: LOG.debug('Could not decode: ' + str(err)) file_string = response_body else: @@ -253,10 +253,10 @@ try: content_type = SUPPORTED_FILETYPES[file_ext.upper()] except KeyError: - print 'Could not find mimetype for ' + file_ext - while file_ext not in SUPPORTED_FILETYPES.keys(): - file_ext = raw_input('Please enter one of ' + - SUPPORTED_FILETYPES.keys() + + printRefactoringTool: Refactored ./src/googlecl/docs/client.py RefactoringTool: Refactored ./src/googlecl/docs/base.py ('Could not find mimetype for ' + file_ext) + while file_ext not in list(SUPPORTED_FILETYPES.keys()): + file_ext = input('Please enter one of ' + + list(SUPPORTED_FILETYPES.keys()) + ' for a content type to upload as.') content_type = SUPPORTED_FILETYPES[file_ext.upper()] mediasource = gdata.MediaSource(file_path=path_to_new_content, --- ./src/googlecl/docs/client.py (original) +++ ./src/googlecl/docs/client.py (refactored) @@ -26,7 +26,7 @@ docs get --folder "Some folder" """ -from __future__ import with_statement + __author__ = 'tom.h.miller@gmail.com (Tom Miller)' import gdata.docs.client @@ -94,7 +94,7 @@ self.config.lazy_get(SECTION_HEADER, 'decode_utf_8', False, bool): try: file_string = response_string.decode('utf-8-sig') - except UnicodeError, err: + except UnicodeError as err: LOG.debug('Could not decode: ' + str(err)) file_string = response_string else: @@ -252,10 +252,10 @@ try: content_type = MIMETYPES[file_ext.upper()] except KeyError: - print 'Could not find mimetype for ' + file_ext - while file_ext not in MIMETYPES.keys(): - file_ext = raw_input('Please enter one of ' + - MIMETYPES.keys() + + print('Could not find mimetype for ' + file_ext) + while file_ext not in list(MIMETYPES.keys()): + file_ext = input('Please enter one of ' + + list(MIMETYPES.keys()) + ' to determine the content type to upload as.') content_type = MIMETYPES[file_ext.upper()] mediasource = gdata.data.MediaSource(file_path=path_to_new_content, --- ./src/googlecl/docs/base.py (original) +++ ./src/googlecl/docs/base.py (refactored) @@ -26,10 +26,10 @@ docs get --folder "Some folder" """ -from __future__ import with_statement + __author__ = 'tom.h.miller@gmail.com (Tom Miller)' -import ConfigParser +import configparser import logging import os import shlex @@ -96,7 +96,7 @@ temp_dir = tempfile.mkdtemp() # If we're creating a new document and not given a folder entry - if new_doc and isinstance(folder_entry_or_path, basestring): + if new_doc and isinstance(folder_entry_or_path, str): folder_path = os.path.normpath(folder_entry_or_path) # Some systems allow more than one path separator if os.altsep: @@ -132,7 +132,7 @@ 'you to finish editing your file.') LOG.info('Hit enter in this shell when you finished editing and saved ' 'your work.') - raw_input('') + input('') if file_hash and file_hash == _md5_hash_file(path): LOG.info('No modifications to file, not uploading.') return None @@ -141,7 +141,7 @@ return None if new_doc: - if isinstance(folder_entry_or_path, basestring): + if isinstance(folder_entry_or_path, str): # Let code in upload_docs handle the creation of new folder(s) self.upload_docs([base_path], doc_title) else: @@ -151,7 +151,7 @@ else: try: doc_entry = self._modify_entry(doc_entry_or_title, path, file_ext) - except self.request_error, err: + except self.request_error as err: LOG.error(err) new_path = safe_move(path, '.') LOG.info(safe_encode('Moved edited document to ' + @@ -183,9 +183,9 @@ """ if not os.path.isdir(base_path): if len(entries) > 1: - raise DocsError(safe_encode(u'Specified multiple source files, but ' + - u'destination "' + base_path + - u'" is not a directory')) + raise DocsError(safe_encode('Specified multiple source files, but ' + + 'destination "' + base_path + + '" is not a directory')) format_from_filename = googlecl.get_extension_from_path(base_path) if format_from_filename and not fRefactoringTool: Refactored ./src/googlecl/docs/__init__.py RefactoringTool: Refactored ./src/googlecl/contacts/service.py RefactoringTool: Refactored ./src/googlecl/contacts/client.py RefactoringTool: Refactored ./src/googlecl/contacts/base.py RefactoringTool: Refactored ./src/googlecl/contacts/__init__.py ile_ext: # Strip the extension off here if it exists. Don't want to double up @@ -228,10 +228,10 @@ self.Export(entry, path) else: self.Download(entry, path) - except self.request_error, err: + except self.request_error as err: LOG.error(safe_encode('Download of ' + entry_title + ' failed: ' + - unicode(err))) - except EnvironmentError, err: + str(err))) + except EnvironmentError as err: LOG.error(err) LOG.info('Does your destination filename contain invalid characters?') @@ -376,7 +376,7 @@ try: new_entry = self._transmit_doc(path, entry_title, post_uri, content_type, file_ext) - except self.request_error, err: + except self.request_error as err: LOG.error('Failed to upload %s: %s', path, err) if (str(err).find('ServiceForbiddenException') != -1 or str(err).find('Unsupported Media Type') != -1): @@ -418,7 +418,7 @@ False if not (must use client.Download) """ - if isinstance(entry_or_url, (str, unicode)): + if isinstance(entry_or_url, str): url = entry_or_url else: url = entry_or_url.content.src --- ./src/googlecl/docs/__init__.py (original) +++ ./src/googlecl/docs/__init__.py (refactored) @@ -132,9 +132,9 @@ folder_entries = client.get_folder(options.folder) entries = client.get_doclist(titles_list, folder_entries) if not os.path.isdir(options.dest) and len(entries) > 1: - LOG.error(googlecl.safe_encode(u'Specified multiple source files, but ' + - u'destination "' + options.dest + - u'" is not a directory')) + LOG.error(googlecl.safe_encode('Specified multiple source files, but ' + + 'destination "' + options.dest + + '" is not a directory')) return client.get_docs(options.dest, entries, file_ext=options.format) @@ -144,10 +144,10 @@ folder_entries = client.get_folder(options.folder) entries = client.get_doclist(titles_list, folder_entries) for entry in entries: - print googlecl.base.compile_entry_string( + print(googlecl.base.compile_entry_string( googlecl.base.BaseEntryToStringWrapper(entry), options.fields.split(','), - delimiter=options.delimiter) + delimiter=options.delimiter)) def _run_upload(client, options, args): @@ -165,7 +165,7 @@ if args: LOG.info('Sorry, no support for additional arguments for ' '"docs edit" yet') - LOG.debug('(Ignoring ' + unicode(args) +')') + LOG.debug('(Ignoring ' + str(args) +')') if not hasattr(client, 'Download'): LOG.error('Editing documents is not supported' + --- ./src/googlecl/contacts/service.py (original) +++ ./src/googlecl/contacts/service.py (refactored) @@ -23,7 +23,7 @@ contacts list title,email """ -from __future__ import with_statement + __author__ = 'tom.h.miller@gmail.com (Tom Miller)' import atom --- ./src/googlecl/contacts/client.py (original) +++ ./src/googlecl/contacts/client.py (refactored) @@ -23,7 +23,7 @@ contacts list title,email """ -from __future__ import with_statement + __author__ = 'tom.h.miller@gmail.com (Tom Miller)' import atom --- ./src/googlecl/contacts/base.py (original) +++ ./src/googlecl/contacts/base.py (refactored) @@ -23,7 +23,7 @@ contacts list title,email """ -from __future__ import with_statement + __author__ = 'tom.h.miller@gmail.com (Tom Miller)' import logging --- ./src/googlecl/contacts/__init__.py (original) +++ ./src/googlecl/contacts/__init__.py (refactored) @@ -143,10 +143,10 @@ titles_list = googlecl.build_titles_list(options.title, args) entries = client.GetContacts(titles_list) for entry in entries: - print googlecl.base.compile_entry_string( + print(googlecl.base.compile_entry_string( RefactoringTool: Refactored ./src/googlecl/config/parser.py RefactoringTool: Refactored ./src/googlecl/config/__init__.py RefactoringTool: Refactored ./src/googlecl/client.py ContactsEntryToStringWrapper(entry), options.fields.split(','), - delimiter=options.delimiter) + delimiter=options.delimiter)) def _run_add(client, options, args): @@ -177,10 +177,10 @@ titles_list = googlecl.build_titles_list(options.title, args) entries = client.GetGroups(titles_list) for entry in entries: - print googlecl.base.compile_entry_string( + print(googlecl.base.compile_entry_string( ContactsEntryToStringWrapper(entry), ['name'], - delimiter=options.delimiter) + delimiter=options.delimiter)) # XXX: Don't require title for list tasks. TASKS = {'list': googlecl.base.Task('List contacts', callback=_run_list, --- ./src/googlecl/config/parser.py (original) +++ ./src/googlecl/config/parser.py (refactored) @@ -13,7 +13,7 @@ # limitations under the License. """Enhanced configuration file parser.""" -from __future__ import with_statement + import logging import os.path @@ -57,7 +57,7 @@ otherwise. """ made_changes = False - for section_name, section_options in basic_options.iteritems(): + for section_name, section_options in basic_options.items(): if not self.parser.has_section(section_name): self.parser.add_section(section_name) missing_options = (set(section_options.keys()) - @@ -142,8 +142,8 @@ config_path: Path to the configuration file. Default None to use the default path defined in this module. """ - if type(value) not in [unicode, str]: - value = unicode(value) + if type(value) not in [str, str]: + value = str(value) existing_value = self.safe_get(section, option) if existing_value is None: --- ./src/googlecl/config/__init__.py (original) +++ ./src/googlecl/config/__init__.py (refactored) @@ -11,9 +11,9 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import ConfigParser +import configparser import googlecl -import parser +from . import parser def _create_basic_options(): @@ -79,7 +79,7 @@ if not path: LOG.error('Could not create config directory!') return False - config = parser.ConfigParser(ConfigParser.ConfigParser) + config = parser.ConfigParser(configparser.ConfigParser) config.associate(path) made_changes = config.ensure_basic_options(_create_basic_options()) if made_changes: --- ./src/googlecl/client.py (original) +++ ./src/googlecl/client.py (refactored) @@ -74,7 +74,7 @@ True if access token was succesfully retrieved and set, otherwise False. """ - import urllib + import urllib.request, urllib.parse, urllib.error import time # XXX: Not sure if get_oauth_token() will accept a list of mixed strings and # atom.http_core.Uri objects... @@ -91,7 +91,7 @@ LOG.debug('Scopes being requested: ' + str(scopes)) url = gdata.gauth.REQUEST_TOKEN_URL + '?xoauth_displayname=' +\ - urllib.quote(display_name) + urllib.parse.quote(display_name) try: # Installed applications do not have a pre-registration and so follow # directions for unregistered applications @@ -99,7 +99,7 @@ consumer_key='anonymous', consumer_secret='anonymous', url=url) - except self.request_error, err: + except self.request_error as err: LOG.error(err) if str(err).find('Timestamp') != -1: LOG.info('Is your system clock up to date? See the FAQ on our wiki: ' @@ -111,21 +111,21 @@ if browser is not None: try: browser.open(str(auth_url)) - except Exception, err: + excepRefactoringTool: Refactored ./src/googlecl/calendar/service.py RefactoringTool: Refactored ./src/googlecl/calendar/date_test.py RefactoringTool: Refactored ./src/googlecl/calendar/date.py RefactoringTool: Refactored ./src/googlecl/calendar/__init__.py t Exception as err: # Blanket catch of Exception is a bad idea, but don't want to pass in # error to look for. - LOG.error('Failed to launch web browser: ' + unicode(err)) - print 'Please log in and/or grant access at %s' % auth_url + LOG.error('Failed to launch web browser: ' + str(err)) + print('Please log in and/or grant access at %s' % auth_url) # Try to keep that damn "Created new window in existing browser session." # message away from raw_input call. time.sleep(2) - print '' - request_token.verifier = raw_input('Please enter the verification code on' + print('') + request_token.verifier = input('Please enter the verification code on' ' the success page: ').strip() # This upgrades the token, and if successful, sets the access token try: access_token = self.get_access_token(request_token) - except gdata.client.RequestError, err: + except gdata.client.RequestError as err: LOG.error(err) LOG.error('Token upgrade failed! Could not get OAuth access token.') return False --- ./src/googlecl/calendar/service.py (original) +++ ./src/googlecl/calendar/service.py (refactored) @@ -28,7 +28,7 @@ import googlecl.base import googlecl.service import logging -import urllib +import urllib.request, urllib.parse, urllib.error from googlecl import safe_encode, safe_decode from googlecl.calendar import SECTION_HEADER from googlecl.calendar.date import DateRangeParser @@ -59,7 +59,7 @@ # Non-primary calendar feeds look like this: # http:blah/.../feeds/JUNK%40group.calendar.google.com/private/full # So grab the part after /feeds/ and unquote it. - self.user = urllib.unquote(cal_entry.content.src.split('/')[-3]) + self.user = urllib.parse.unquote(cal_entry.content.src.split('/')[-3]) self.name = safe_decode(cal_entry.title.text) else: self.user = user @@ -99,7 +99,7 @@ e.original_event.id == event.original_event.id] if not delete_events: raise EventsNotFound - map(request_feed.AddDelete, [None], delete_events, [None]) + list(map(request_feed.AddDelete, [None], delete_events, [None])) self.ExecuteBatch(request_feed, USER_BATCH_URL_FORMAT % cal_user) def add_reminders(self, calendar_user, events, minutes): @@ -178,7 +178,7 @@ msg = 'Delete "%s"?\n%s' %\ (safe_decode(event.title.text), prompt_str) try: - delete_selection = int(raw_input(safe_encode(msg))) + delete_selection = int(input(safe_encode(msg))) except ValueError: continue deletion_choice = option_list[delete_selection][1] --- ./src/googlecl/calendar/date_test.py (original) +++ ./src/googlecl/calendar/date_test.py (refactored) @@ -18,7 +18,7 @@ __author__ = 'thmiller@google.com (Tom Miller)' -import date +from . import date import unittest from datetime import datetime from datetime import timedelta @@ -106,7 +106,7 @@ self.parser = date.DateParser(static_today, static_now) def runTestSet(self, test_dict): - for text, expected_date in test_dict.items(): + for text, expected_date in list(test_dict.items()): parsed_date = self.parser.parse(text) self.assertConvertedEqual(text, expected_date, parsed_date.local) @@ -143,7 +143,7 @@ for text in FAIL_TESTS: try: self.parser.parse(text) - except date.ParsingError, err: + except date.ParsingError as err: pass else: self.fail('Expected ParsingError for %s' % text) --- ./src/googlecl/calendar/date.py (original) +++ ./src/googlecl/calendar/date.py (refactored) @@ -425,7 +425,7 @@ for time_format in possible_formats: try: date = datetime.datetime.strptime(time_string, time_format) - except ValueError, err: + except ValueError as err: continue else: return date, time_format --- ./src/googlecl/calendar/__init__.py (original) +++ ./src/googlecl/calendar/__iRefactoringTool: Refactored ./src/googlecl/blogger/service.py nit__.py (refactored) @@ -33,7 +33,7 @@ seen_ids = [] combined_events = [] for event in events: - print "looking at event %s" % event.title.text + print("looking at event %s" % event.title.text) if event.original_event.id not in seen_ids: seen_ids.append(event.original_event.id) combined_events.append(event) @@ -108,7 +108,7 @@ try: start = datetime.datetime.strptime(event.when[0].start_time, '%Y-%m-%d') end = datetime.datetime.strptime(event.when[0].end_time, '%Y-%m-%d') - except ValueError, err: + except ValueError as err: if str(err).find('unconverted data remains') == -1: raise err else: @@ -142,19 +142,19 @@ is_canceled = lambda e: e.event_status.value == 'CANCELED' or not e.when for event in events: - print 'looking at event %s' % event.title.text + print('looking at event %s' % event.title.text) if recurrences_expanded: if event.original_event: - print 'event is original: %s' % event.title.text + print('event is original: %s' % event.title.text) try: status = canceled_recurring_events[event.original_event.id] except KeyError: status = None if is_canceled(event) and status != AT_LEAST_ONE_EVENT: - print 'adding event to canceled: %s' % event.title.text + print('adding event to canceled: %s' % event.title.text) canceled_recurring_events[event.original_event.id] = event if not is_canceled(event): - print 'at least one more of: %s' % event.title.text + print('at least one more of: %s' % event.title.text) canceled_recurring_events[event.original_event.id]= AT_LEAST_ONE_EVENT ongoing_events.append(event) # If recurrences have not been expanded, we can't tell if they were @@ -162,7 +162,7 @@ if not is_canceled(event): ongoing_events.append(event) - for event in canceled_recurring_events.values(): + for event in list(canceled_recurring_events.values()): if event != AT_LEAST_ONE_EVENT: ongoing_events.remove(event) @@ -255,7 +255,7 @@ end_text = time.strftime(print_format, end_date) value = start_text + ' - ' + end_text if freq: - if freq.has_key('BYDAY'): + if 'BYDAY' in freq: value += ' (' + freq['BYDAY'].lower() + ')' else: value += ' (' + freq['FREQ'].lower() + ')' @@ -276,8 +276,8 @@ parser = DateRangeParser() date_range = parser.parse(options.date) for cal in cal_user_list: - print '' - print safe_encode('[' + unicode(cal) + ']') + print('') + print(safe_encode('[' + str(cal) + ']')) single_events = client.get_events(cal.user, start_date=date_range.start, end_date=date_range.end, @@ -286,10 +286,10 @@ split=False) for entry in single_events: - print googlecl.base.compile_entry_string( + print(googlecl.base.compile_entry_string( CalendarEntryToStringWrapper(entry, client.config), options.fields.split(','), - delimiter=options.delimiter) + delimiter=options.delimiter)) #=============================================================================== @@ -359,7 +359,7 @@ query=options.query, expand_recurrence=True) if options.prompt: - LOG.info(safe_encode('For calendar ' + unicode(cal))) + LOG.info(safe_encode('For calendar ' + str(cal))) if single_events: client.DeleteEntryList(single_events, 'event', options.prompt) if recurring_events: --- ./src/googlecl/blogger/service.py (original) +++ ./src/googlecl/blogger/service.py (refactored) @@ -16,7 +16,7 @@ """Service details and instances for the Blogger service.""" -from __future__ import with_statement + __author__ = 'tom.h.miller@gmRefactoringTool: Refactored ./src/googlecl/blogger/__init__.py RefactoringTool: Refactored ./src/googlecl/base.py ail.com (Tom Miller)' import atom @@ -192,8 +192,8 @@ content, blog_id=blog_id, is_draft=is_draft) - except self.request_error, err: - LOG.error(safe_encode('Failed to post: ' + unicode(err))) + except self.request_error as err: + LOG.error(safe_encode('Failed to post: ' + str(err))) else: entry_list.append(entry) if entry.control and entry.control.draft.text == 'yes': --- ./src/googlecl/blogger/__init__.py (original) +++ ./src/googlecl/blogger/__init__.py (refactored) @@ -87,10 +87,10 @@ entries = client.GetPosts(options.blog, titles_list, user_id=options.owner or 'default') for entry in entries: - print googlecl.base.compile_entry_string( + print(googlecl.base.compile_entry_string( BloggerEntryToStringWrapper(entry), options.fields.split(','), - delimiter=options.delimiter) + delimiter=options.delimiter)) def _run_tag(client, options, args): --- ./src/googlecl/base.py (original) +++ ./src/googlecl/base.py (refactored) @@ -17,7 +17,7 @@ import googlecl import logging import re -import urllib +import urllib.request, urllib.parse, urllib.error import time # Renamed here to reduce verbosity in other sections @@ -106,7 +106,7 @@ (entry_type, '%s')) for item in entries: if prompt: - delete_str = raw_input(prompt_message % safe_encode(item.title.text)) + delete_str = input(prompt_message % safe_encode(item.title.text)) if not delete_str: delete = False else: @@ -125,7 +125,7 @@ self.delete(item) else: self.Delete(item.GetEditLink().href) - except self.request_error, err: + except self.request_error as err: LOG.warning('Could not delete ' + entry_type + ': ' + str(err)) DeleteEntryList = delete_entry_list @@ -150,7 +150,7 @@ if server_response.status == 200: try: - from urlparse import parse_qs + from urllib.parse import parse_qs parse_func = parse_qs except ImportError: # parse_qs was moved to urlparse from cgi in python2.6 @@ -167,16 +167,16 @@ return BaseServiceCL.get_email(location, redirects_remaining=redirects_remaining-1) else: - raise self.request_error, {'status': server_response.status, + raise self.request_error({'status': server_response.status, 'reason': '302 received without Location header', - 'body': result_body} + 'body': result_body}) else: - raise self.request_error, {'status': server_response.status, + raise self.request_error({'status': server_response.status, 'reason': 'Redirect received, but redirects_remaining <= 0', - 'body': result_body} - else: - raise self.request_error, {'status': server_response.status, - 'reason': server_response.reason, 'body': result_body} + 'body': result_body}) + else: + raise self.request_error({'status': server_response.status, + 'reason': server_response.reason, 'body': result_body}) return email def get_entries(self, uri, titles=None, converter=None, desired_class=None): @@ -203,7 +203,7 @@ # NoneType or list, not also maybe a string. if self.max_results is not None: uri = set_max_results(uri, self.max_results) - if isinstance(uri, unicode): + if isinstance(uri, str): uri = uri.encode('utf-8') feed = None try: @@ -218,7 +218,7 @@ feed = self.GetFeed(uri, converter=converter) if not feed: feed = self.GetFeed(uri) - except self.request_error, err: + except self.request_error as eRefactoringTool: Refactored ./src/googlecl/authentication.py rr: LOG.error('Failed to get entries: ' + str(err)) return [] all_entries = feed.entry @@ -240,7 +240,7 @@ if self.use_regex: # Carefully build title regex. - if isinstance(titles, basestring): + if isinstance(titles, str): title_regex = titles else: title_regex = safe_decode('|'.join(titles)) @@ -249,7 +249,7 @@ entries = [entry for entry in all_entries if entry.title.text and re.match(title_regex, safe_decode(entry.title.text))] - except re.error, err: + except re.error as err: LOG.error('Regular expression error: ' + str(err) + '!') entries = [] else: @@ -286,7 +286,7 @@ if not uri_or_entry_list: return None - if isinstance(uri_or_entry_list, basestring): + if isinstance(uri_or_entry_list, str): entries = self.get_entries(uri_or_entry_list, title, converter, desired_class) elif isinstance(uri_or_entry_list, list): @@ -299,12 +299,12 @@ if len(entries) == 1: return entries[0] elif len(entries) > 1: - print 'More than one match for title ' + (title or '') + print('More than one match for title ' + (title or '')) for num, entry in enumerate(entries): - print '%i) %s' % (num, safe_decode(entry.title.text)) + print('%i) %s' % (num, safe_decode(entry.title.text))) selection = -1 while selection < 0 or selection > len(entries)-1: - selection = int(raw_input('Please select one of the items by number: ')) + selection = int(input('Please select one of the items by number: ')) return entries[selection] GetSingleEntry = get_single_entry @@ -326,7 +326,7 @@ try: # Try to limit the number of results we get. self.Get(test_uri) - except self.request_error, err: + except self.request_error as err: LOG.debug('Token invalid! ' + str(err)) return False else: @@ -363,7 +363,7 @@ while try_forever or attempts_remaining: try: return self.original_operation(*args, **kwargs) - except self.request_error, err: + except self.request_error as err: try: # RequestError defined in gdata.client status_code = err.status @@ -380,7 +380,7 @@ time.sleep(self.retry_delay) else: raise err - except Exception, unexpected: + except Exception as unexpected: LOG.debug('unexpected exception: %s' % unexpected) LOG.debug('Arguments: %s' % str(args)) LOG.debug('Keyword arguments: %s' % kwargs) @@ -429,9 +429,9 @@ args_desc: Description of what the arguments should be. (Default '', for no arguments necessary for this task) """ - if isinstance(required, basestring): + if isinstance(required, str): required = [required] - if isinstance(optional, basestring): + if isinstance(optional, str): optional = [optional] self.description = description self.run = callback or self._not_impl @@ -670,9 +670,9 @@ # Get the value, replacing NoneTypes and empty strings # with the missing field value. val = getattr(wrapped_entry, attr.replace('-','_')) or missing_field_value - except ValueError, err: + except ValueError as err: LOG.debug(err.args[0] + ' (Did not add value for field ' + attr + ')') - except AttributeError, err: + except AttributeError as err: LOG.debug(err.args[0] + ' (value for field ' + attr + ')') try: # Last ditch effort to blindly grab the attribute --- ./src/googlecl/authentication.py (original) +++ ./src/googlecl/authentication.py (refactored) @@ -13,7 +13,7 @@ # limitations under the License. """Handling authentication to Google for all services.""" -from __future__ import with_statement + import logging import os @@ -56,7 +56,7 @@ """ try: token_valid = self.client.IsTokenValid() - except AttributeError, err: + except AttributeError RefactoringTool: Refactored ./src/googlecl/__init__.py RefactoringTool: Refactored ./src/google.py as err: # Attribute errors crop up when using different gdata libraries # but the same token. token_valid = False @@ -92,11 +92,11 @@ LOG.debug(new_path + ' already exists. Deleting it.') try: os.remove(new_path) - except EnvironmentError, err: + except EnvironmentError as err: LOG.debug('Cannot remove old failed token file: ' + str(err)) try: os.rename(self.tokens_path, new_path) - except EnvironmentError, err: + except EnvironmentError as err: LOG.debug('Cannot rename token file to ' + new_path + ': ' + str(err)) def read_access_token(self): @@ -133,12 +133,12 @@ with open(self.tokens_path, 'r+') as tokens_file: try: tokens_dict = pickle.load(tokens_file) - except ImportError, err: + except ImportError as err: LOG.error(err) LOG.info('You probably have been using different versions of gdata.') self._move_failed_token_file() return False - except IndexError, err: + except IndexError as err: LOG.error(err) self._move_failed_token_file() return False @@ -150,7 +150,7 @@ else: try: pickle.dump(tokens_dict, tokens_file) - except EnvironmentError, err: + except EnvironmentError as err: # IOError (extends enverror) shouldn't happen, but I've seen # IOError Errno 0 pop up on Windows XP with Python 2.5. LOG.error(err) @@ -237,11 +237,11 @@ with open(self.tokens_path, 'rb') as tokens_file: try: tokens_dict = pickle.load(tokens_file) - except (KeyError, IndexError), err: + except (KeyError, IndexError) as err: LOG.error(err) LOG.error('Failed to load token file (may be corrupted?)') file_invalid = True - except ImportError, err: + except ImportError as err: LOG.error(err) LOG.info('You probably have been using different versions of gdata.') file_invalid = True --- ./src/googlecl/__init__.py (original) +++ ./src/googlecl/__init__.py (refactored) @@ -14,7 +14,7 @@ """Contains configuration and read/write utility functions for GoogleCL.""" -from __future__ import with_statement + __author__ = 'tom.h.miller@gmail.com (Tom Miller)' import logging @@ -183,14 +183,14 @@ if os.name == 'posix': default_dir = xdg_home_dir - mode = 0700 + mode = 0o700 else: default_dir = DEFAULT_GOOGLECL_DIR - mode = 0777 + mode = 0o777 if not os.path.isdir(default_dir) and create_missing_dir: try: os.makedirs(default_dir, mode) - except OSError, err: + except OSError as err: LOG.error(err) return '' return os.path.join(default_dir, filename) @@ -224,7 +224,7 @@ A string encoded with target_encoding, or raises an error. """ - if isinstance(string, unicode): + if isinstance(string, str): return string.encode(target_encoding, errors) elif isinstance(string, str): try: @@ -262,11 +262,11 @@ except UnicodeDecodeError: raise SafeDecodeError(current_encoding + ' could not decode ' + repr(string)) - elif isinstance(string, unicode): + elif isinstance(string, str): return string else: # Got something elese, probably an int or bool or the like. - return unicode(string) + return str(string) def write_devkey(devkey): --- ./src/google.py (original) +++ ./src/google.py (refactored) @@ -41,7 +41,7 @@ task: What the client wants done by the service (e.g. post, get, delete). """ -from __future__ import with_statement + __author__ = 'tom.h.miller@gmail.com (Tom Miller)' import glob @@ -114,15 +114,15 @@ else: try: browser = webbrowser.get(browser_str) - except webbrowser.Error, err: - LOG.warn(safe_encode(u'Could not get browser "%s": %s' % + except webbrowser.Error as err: + LOG.warn(safe_encode('Could not get browser "%s": %s' % (browser_str, err))) browser = None else: try: browser = webbrowser.get() - except webbrowser.Error, err: - LOG.warn(safe_encode(u'Could not get default browser: %s' % err)) + except webbrowser.Error as err: + LOG.warn(safe_encode('Could not get default browser: %s' % err)) browser = None valid_token = auth_manager.retrieve_access_token(display_name, browser) @@ -277,7 +277,7 @@ if value: return value else: - return raw_input('Please specify ' + attr + ': ') + return input('Please specify ' + attr + ': ') if options.user is None: options.user = _retrieve_value('user', service_header) @@ -292,7 +292,7 @@ if args: value = args.pop(0) else: - value = raw_input('Please specify ' + attr + ': ') + value = input('Please specify ' + attr + ': ') setattr(options, attr, value) # Expand those options that might be a filename in disguise. @@ -308,8 +308,8 @@ def get_task_help(service, tasks): help = 'Available tasks for service ' + service + \ - ': ' + str(tasks.keys())[1:-1] + '\n' - for task_name in tasks.keys(): + ': ' + str(list(tasks.keys()))[1:-1] + '\n' + for task_name in list(tasks.keys()): help += ' ' + task_name + ': ' + tasks[task_name].description + '\n' help += ' ' + tasks[task_name].usage + '\n\n' @@ -354,7 +354,7 @@ LOG.debug('Your pythonpath: ' + str(os.environ.get('PYTHONPATH'))) try: package = import_at_runtime('googlecl.' + service) - except ImportError, err: + except ImportError as err: LOG.error(err.args[0]) LOG.error('Did you specify the service correctly? Must be one of ' + str(AVAILABLE_SERVICES)[1:-1]) @@ -410,8 +410,8 @@ args[i:i+1] = expand_as_command_line(sys.stdin.read()) return - if single_arg_symbol in options.__dict__.values(): - for key, value in options.__dict__.iteritems(): + if single_arg_symbol in list(options.__dict__.values()): + for key, value in options.__dict__.items(): if value == single_arg_symbol: setattr(options, key, sys.stdin.read()) break @@ -427,21 +427,21 @@ """ if not service: - print 'Welcome to the Google CL tool!' - print ' Commands are broken into several parts: ' - print ' service, task, options, and arguments.' - print ' For example, in the command' - print ' "> picasa post --title "My Cat Photos" photos/cats/*"' - print ' the service is "picasa", the task is "post", the single' - print ' option is a title of "My Cat Photos", and the argument is the ' - print ' path to the photos.' - print '' - print ' The available services are ' - print str(AVAILABLE_SERVICES)[1:-1] - print ' Enter "> help " for more information on a service.' - print ' Or, just "quit" to quit.' - else: - print get_task_help(service, tasks) + print('Welcome to the Google CL tool!') + print(' Commands are broken into several parts: ') + print(' service, task, options, and arguments.') + print(' For example, in the command') + print(' "> picasa post --title "My Cat Photos" photos/cats/*"') + print(' the service is "picasa", the task is "post", the single') + print(' option is a title of "My Cat Photos", and the argument is the ') + print(' path to the photos.') + print('') + print(' The available services are ') + print(str(AVAILABLE_SERVICES)[1:-1]) + print(' Enter "> help " for more information on a service.') + print(' Or, just "quit" to quit.') + else: + print(get_task_help(service, tasks)) def run_interactive(parser): @@ -464,7 +464,7 @@ while True: try: - command_string = raw_input('> ') + command_string = input('> ') if command_string.startswith('python '): LOG.info('HINT: No need to include "python" in interactive mode') command_string = command_string.reRefactoringTool: Refactored ./src/debug_util.py RefactoringTool: Files that were modified: RefactoringTool: ./setup.py RefactoringTool: ./upload-diffs.py RefactoringTool: ./src/win_setup.py RefactoringTool: ./src/googlecl/youtube/service.py RefactoringTool: ./src/googlecl/youtube/__init__.py RefactoringTool: ./src/googlecl/service.py RefactoringTool: ./src/googlecl/picasa/service.py RefactoringTool: ./src/googlecl/picasa/__init__.py RefactoringTool: ./src/googlecl/finance/service.py RefactoringTool: ./src/googlecl/finance/__init__.py RefactoringTool: ./src/googlecl/docs/service.py RefactoringTool: ./src/googlecl/docs/client.py RefactoringTool: ./src/googlecl/docs/base.py RefactoringTool: ./src/googlecl/docs/__init__.py RefactoringTool: ./src/googlecl/contacts/service.py RefactoringTool: ./src/googlecl/contacts/client.py RefactoringTool: ./src/googlecl/contacts/base.py RefactoringTool: ./src/googlecl/contacts/__init__.py RefactoringTool: ./src/googlecl/config/parser.py RefactoringTool: ./src/googlecl/config/__init__.py RefactoringTool: ./src/googlecl/client.py RefactoringTool: ./src/googlecl/calendar/service.py RefactoringTool: ./src/googlecl/calendar/date_test.py RefactoringTool: ./src/googlecl/calendar/date.py RefactoringTool: ./src/googlecl/calendar/__init__.py RefactoringTool: ./src/googlecl/blogger/service.py RefactoringTool: ./src/googlecl/blogger/__init__.py RefactoringTool: ./src/googlecl/base.py RefactoringTool: ./src/googlecl/authentication.py RefactoringTool: ./src/googlecl/__init__.py RefactoringTool: ./src/google.py RefactoringTool: ./src/debug_util.py RefactoringTool: Warnings/messages while refactoring: RefactoringTool: ### In file ./src/googlecl/calendar/service.py ### RefactoringTool: Line 102: You should use a for loop here place('python ', '', 1) @@ -480,13 +480,13 @@ else: try: args_list = expand_as_command_line(command_string) - except Error, err: + except Error as err: LOG.error(err) continue (options, args) = parser.parse_args(args_list) setup_logger(options) run_once(options, args) - except (KeyboardInterrupt, ValueError), err: + except (KeyboardInterrupt, ValueError) as err: # It would be nice if we could simply unregister or reset the # signal handler defined in the initial if __name__ block. # Windows will raise a KeyboardInterrupt, GNU/Linux seems to also @@ -494,11 +494,11 @@ if isinstance(err, ValueError) and \ str(err).find('I/O operation on closed file') == -1: raise err - print '' - print 'Quit via keyboard interrupt' + print('') + print('Quit via keyboard interrupt') break except EOFError: - print '' + print('') break except SystemExit: # optparse.OptParser prints the usage statement and calls @@ -556,7 +556,7 @@ task.name = task_name except KeyError: LOG.error('Did not recognize task, please use one of ' + \ - str(tasks.keys())) + str(list(tasks.keys()))) return if 'devkey' in task.required: @@ -608,8 +608,8 @@ if not attr_name.startswith('_'): attr = getattr(options, attr_name) if attr is not None and not inspect.ismethod(attr): - LOG.debug(safe_encode('Option ' + attr_name + ': ' + unicode(attr))) - LOG.debug(safe_encode('args: ' + unicode(args))) + LOG.debug(safe_encode('Option ' + attr_name + ': ' + str(attr))) + LOG.debug(safe_encode('args: ' + str(args))) auth_manager = googlecl.authentication.AuthenticationManager(service, client) authenticated = authenticate(auth_manager, options, config, section_header) @@ -625,7 +625,7 @@ run_error = None try: task.run(client, options, args) - except AttributeError, run_error: + except AttributeError as run_error: err_str = safe_decode(run_error) if err_str.startswith("'OAuth"): LOG.info('OAuth error. Try re-running with --force-auth.') @@ -834,12 +834,12 @@ try: run_once(options, args) except KeyboardInterrupt: - print '' + print('') def exit_from_int(*args): """Handler for SIGINT signal.""" - print '' + print('') exit(0) --- ./src/debug_util.py (original) +++ ./src/debug_util.py (refactored) @@ -21,7 +21,7 @@ import inspect -dull_types = [str, unicode, dict, list, type(None)] +dull_types = [str, str, dict, list, type(None)] def walk_attributes(myobject, object_name, tabitem='=', step=True, tablevel=0): """Walk through attributes of an instance. @@ -39,22 +39,22 @@ NATHING! """ - print tabitem*tablevel + 'Object: ' + object_name - print tabitem*tablevel + 'Type: ' + str(type(myobject)) + print(tabitem*tablevel + 'Object: ' + object_name) + print(tabitem*tablevel + 'Type: ' + str(type(myobject))) attr_list = [attr for attr in dir(myobject) if not attr.startswith('_') and not inspect.ismethod(getattr(myobject, attr))] - print tabitem*tablevel + 'Attributes: ' - print tabitem*tablevel + str(attr_list) + print(tabitem*tablevel + 'Attributes: ') + print(tabitem*tablevel + str(attr_list)) dull_attr = [attr for attr in attr_list if type(getattr(myobject, attr)) in dull_types] if dull_attr: - print tabitem*tablevel + '(basic attributes: ' + str(dull_attr) + ')' + print(tabitem*tablevel + '(basic attributes: ' + str(dull_attr) + ')') loopable_attr = [attr for attr in attr_list if not type(getattr(myobject, attr)) in dull_types] for attr_name in loopable_attr: new_object = getattr(myobject, attr_name) if step: - raw_input('') + input('') walk_attributes(new_object, attr_name, tablevel=tablevel+1) ++ find ./ -name '*.py' + sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python3|' ./setup.py ./upload-diffs.py ./src/win_setup.py ./src/googlecl/youtube/service.py ./src/googlecl/youtube/__init__.py ./src/googlecl/service.py ./src/googlecl/picasa/service.py ./src/googlecl/picasa/__init__.py ./src/googlecl/finance/service.py ./src/googlecl/finance/__init__.py ./src/googlecl/docs/service.py ./src/googlecl/docs/client.py ./src/googlecl/docs/base.py ./src/googlecl/docs/__init__.py ./src/googlecl/contacts/service.py ./src/googlecl/contacts/client.py ./src/googlecl/contacts/base.py ./src/googlecl/contacts/__init__.py ./src/googlecl/config/parser.py ./src/googlecl/config/__init__.py ./src/googlecl/client.py ./src/googlecl/calendar/service.py ./src/googlecl/calendar/date_test.py ./src/googlecl/calendar/date.py ./src/googlecl/calendar/__init__.py ./src/googlecl/blogger/service.py ./src/googlecl/blogger/__init__.py ./src/googlecl/base.py ./src/googlecl/authentication.py ./src/googlecl/__init__.py ./src/google.py ./src/debug_util.py ++ find ./ -name '*.py' + sed -i 's|#!/usr/bin/python|#!/usr/bin/python3|' ./upload-diffs.py ./setup.py ./src/debug_util.py ./src/google.py ./src/win_setup.py ./src/googlecl/__init__.py ./src/googlecl/authentication.py ./src/googlecl/base.py ./src/googlecl/client.py ./src/googlecl/service.py ./src/googlecl/youtube/__init__.py ./src/googlecl/youtube/service.py ./src/googlecl/picasa/__init__.py ./src/googlecl/picasa/service.py ./src/googlecl/finance/__init__.py ./src/googlecl/finance/service.py ./src/googlecl/docs/__init__.py ./src/googlecl/docs/base.py ./src/googlecl/docs/client.py ./src/googlecl/docs/service.py ./src/googlecl/contacts/__init__.py ./src/googlecl/contacts/base.py ./src/googlecl/contacts/client.py ./src/googlecl/contacts/service.py ./src/googlecl/config/__init__.py ./src/googlecl/config/parser.py ./src/googlecl/calendar/__init__.py ./src/googlecl/calendar/date.py ./src/googlecl/calendar/date_test.py ./src/googlecl/calendar/service.py ./src/googlecl/blogger/__init__.py ./src/googlecl/blogger/service.py + exit 0 Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.258 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd googlecl-0.9.13 + 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 running build running build_py creating build creating build/lib creating build/lib/googlecl copying src/googlecl/service.py -> build/lib/googlecl copying src/googlecl/client.py -> build/lib/googlecl copying src/googlecl/base.py -> build/lib/googlecl copying src/googlecl/authentication.py -> build/lib/googlecl copying src/googlecl/__init__.py -> build/lib/googlecl creating build/lib/googlecl/blogger copying src/googlecl/blogger/service.py -> build/lib/googlecl/blogger copying src/googlecl/blogger/__init__.py -> build/lib/googlecl/blogger creating build/lib/googlecl/calendar copying src/googlecl/calendar/service.py -> build/lib/googlecl/calendar copying src/googlecl/calendar/date_test.py -> build/lib/googlecl/calendar copying src/googlecl/calendar/date.py -> build/lib/googlecl/calendar copying src/googlecl/calendar/__init__.py -> build/lib/googlecl/calendar creating build/lib/googlecl/config copying src/googlecl/config/parser.py -> build/lib/googlecl/config copying src/googlecl/config/__init__.py -> build/lib/googlecl/config creating build/lib/googlecl/contacts copying src/googlecl/contacts/service.py -> build/lib/googlecl/contacts copying src/googlecl/contacts/client.py -> build/lib/googlecl/contacts copying src/googlecl/contacts/base.py -> build/lib/googlecl/contacts copying src/googlecl/contacts/__init__.py -> build/lib/googlecl/contacts creating build/lib/googlecl/docs copying src/googlecl/docs/service.py -> build/lib/googlecl/docs copying src/googlecl/docs/client.py -> build/lib/googlecl/docs copying src/googlecl/docs/base.py -> build/lib/googlecl/docs copying src/googlecl/docs/__init__.py -> build/lib/googlecl/docs creating build/lib/googlecl/picasa copying src/googlecl/picasa/service.py -> build/lib/googlecl/picasa copying src/googlecl/picasa/__init__.py -> build/lib/googlecl/picasa creating build/lib/googlecl/youtube copying src/googlecl/youtube/service.py -> build/lib/googlecl/youtube copying src/googlecl/youtube/__init__.py -> build/lib/googlecl/youtube creating build/lib/googlecl/finance copying src/googlecl/finance/service.py -> build/lib/googlecl/finance copying src/googlecl/finance/__init__.py -> build/lib/googlecl/finance running build_scripts creating build/scripts-3.8 copying and adjusting src/google -> build/scripts-3.8 changing mode of build/scripts-3.8/google from 644 to 755 + exit 0 Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.672 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + /bin/chmod -Rf u+rwX -- /usr/src/tmp/googlecl-buildroot + : + /bin/rm -rf -- /usr/src/tmp/googlecl-buildroot + PATH=/usr/libexec/rpm-build:/usr/src/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/games + cd googlecl-0.9.13 + /usr/bin/python3 setup.py install --skip-build --root /usr/src/tmp/googlecl-buildroot running install running install_lib creating /usr/src/tmp/googlecl-buildroot creating /usr/src/tmp/googlecl-buildroot/usr creating /usr/src/tmp/googlecl-buildroot/usr/lib creating /usr/src/tmp/googlecl-buildroot/usr/lib/python3 creating /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages creating /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl creating /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance copying build/lib/googlecl/finance/__init__.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance copying build/lib/googlecl/finance/service.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance creating /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube copying build/lib/googlecl/youtube/__init__.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube copying build/lib/googlecl/youtube/service.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube creating /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa copying build/lib/googlecl/picasa/__init__.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa copying build/lib/googlecl/picasa/service.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa creating /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs copying build/lib/googlecl/docs/__init__.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs copying build/lib/googlecl/docs/base.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs copying build/lib/googlecl/docs/client.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs copying build/lib/googlecl/docs/service.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs creating /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts copying build/lib/googlecl/contacts/__init__.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts copying build/lib/googlecl/contacts/base.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts copying build/lib/googlecl/contacts/client.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts copying build/lib/googlecl/contacts/service.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts creating /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config copying build/lib/googlecl/config/__init__.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config copying build/lib/googlecl/config/parser.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config creating /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar copying build/lib/googlecl/calendar/__init__.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar copying build/lib/googlecl/calendar/date.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar copying build/lib/googlecl/calendar/date_test.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar copying build/lib/googlecl/calendar/service.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar creating /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/blogger copying build/lib/googlecl/blogger/__init__.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/blogger copying build/lib/googlecl/blogger/service.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/blogger copying build/lib/googlecl/__init__.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl copying build/lib/googlecl/authentication.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl copying build/lib/googlecl/base.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl copying build/lib/googlecl/client.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl copying build/lib/googlecl/service.py -> /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance/__init__.py to __init__.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance/service.py to service.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube/__init__.py to __init__.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube/service.py to service.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/__init__.py to __init__.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/service.py to service.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/__init__.py to __init__.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/base.py to base.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/client.py to client.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/service.py to service.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/__init__.py to __init__.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/base.py to base.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/client.py to client.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/service.py to service.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/__init__.py to __init__.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/parser.py to parser.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/__init__.py to __init__.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/date.py to date.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/date_test.py to date_test.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/service.py to service.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/blogger/__init__.py to __init__.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/blogger/service.py to service.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/__init__.py to __init__.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/authentication.py to authentication.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/base.py to base.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/client.py to client.cpython-38.pyc byte-compiling /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/service.py to service.cpython-38.pyc running install_egg_info running egg_info creating googlecl.egg-info writing googlecl.egg-info/PKG-INFO writing dependency_links to googlecl.egg-info/dependency_links.txt writing requirements to googlecl.egg-info/requires.txt writing top-level names to googlecl.egg-info/top_level.txt writing manifest file 'googlecl.egg-info/SOURCES.txt' reading manifest file 'googlecl.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' /usr/lib/python3/site-packages/googlecl/finance/service.py:223: SyntaxWarning: "is" with a literal. Did you mean "=="? warning: no files found matching '*.py' under directory 'googlecl' writing manifest file 'googlecl.egg-info/SOURCES.txt' Copying googlecl.egg-info to /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl-0.9.13-py3.8.egg-info running install_scripts creating /usr/src/tmp/googlecl-buildroot/usr/bin copying build/scripts-3.8/google -> /usr/src/tmp/googlecl-buildroot/usr/bin changing mode of /usr/src/tmp/googlecl-buildroot/usr/bin/google to 755 + mkdir -p /usr/src/tmp/googlecl-buildroot//usr/share/man/man1/ + install -p man/google.1 /usr/src/tmp/googlecl-buildroot//usr/share/man/man1/ + /usr/lib/rpm/brp-alt Cleaning files in /usr/src/tmp/googlecl-buildroot (auto) Verifying and fixing files in /usr/src/tmp/googlecl-buildroot (binconfig,pkgconfig,libtool,desktop,gnuconfig) Checking contents of files in /usr/src/tmp/googlecl-buildroot/ (default) Compressing files in /usr/src/tmp/googlecl-buildroot (auto) mode of '/usr/src/tmp/googlecl-buildroot/usr/share/man/man1/google.1' changed from 0755 (rwxr-xr-x) to 0644 (rw-r--r--) Adjusting library links in /usr/src/tmp/googlecl-buildroot ./usr/lib: (from :0) Verifying ELF objects in /usr/src/tmp/googlecl-buildroot (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal) Bytecompiling python modules in /usr/src/tmp/googlecl-buildroot using /usr/bin/python2.7 Bytecompiling python modules with optimization in /usr/src/tmp/googlecl-buildroot using /usr/bin/python2.7 -O Bytecompiling python3 modules in /usr/src/tmp/googlecl-buildroot using /usr/bin/python3 /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance/service.py:223: SyntaxWarning: "is" with a literal. Did you mean "=="? elif date is '': unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/__pycache__/__init__.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/__pycache__/authentication.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/__pycache__/base.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/__pycache__/client.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/__pycache__/service.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/blogger/__pycache__/__init__.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/blogger/__pycache__/service.cpython-38.pyc compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/blogger/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/blogger/service.py unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/__init__.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date_test.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/service.cpython-38.pyc compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/date.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/date_test.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/service.py unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/__pycache__/__init__.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/__pycache__/parser.cpython-38.pyc compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/parser.py unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/__init__.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/base.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/client.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/service.cpython-38.pyc compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/base.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/client.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/service.py unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/__pycache__/__init__.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/__pycache__/base.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/__pycache__/client.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/__pycache__/service.cpython-38.pyc compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/base.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/client.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/service.py unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance/__pycache__/__init__.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance/__pycache__/service.cpython-38.pyc compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance/service.py unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/__pycache__/__init__.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/__pycache__/service.cpython-38.pyc compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/service.py unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube/__pycache__/__init__.cpython-38.pyc unlink /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube/__pycache__/service.cpython-38.pyc compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/authentication.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/base.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/client.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/service.py Bytecompiling python3 modules with optimization in /usr/src/tmp/googlecl-buildroot using /usr/bin/python3 -O /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance/service.py:223: SyntaxWarning: "is" with a literal. Did you mean "=="? elif date is '': compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/blogger/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/blogger/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/date.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/date_test.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/parser.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/base.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/client.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/base.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/client.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/authentication.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/base.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/client.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/service.py Bytecompiling python3 modules with optimization-2 in /usr/src/tmp/googlecl-buildroot using /usr/bin/python3 -OO /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance/service.py:223: SyntaxWarning: "is" with a literal. Did you mean "=="? elif date is '': compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/blogger/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/blogger/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/date.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/date_test.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/parser.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/base.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/client.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/contacts/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/base.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/client.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube/service.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/__init__.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/authentication.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/base.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/client.py compile /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/service.py Hardlinking identical .pyc and .opt-?.pyc files './usr/lib/python3/site-packages/googlecl/__pycache__/service.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/__pycache__/service.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/__pycache__/client.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/__pycache__/client.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/__pycache__/base.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/__pycache__/base.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/__pycache__/authentication.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/__pycache__/authentication.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/__pycache__/__init__.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/__pycache__/__init__.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/blogger/__pycache__/service.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/blogger/__pycache__/service.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/blogger/__pycache__/__init__.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/blogger/__pycache__/__init__.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/calendar/__pycache__/service.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/calendar/__pycache__/service.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date_test.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date_test.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/calendar/__pycache__/__init__.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/calendar/__pycache__/__init__.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/config/__pycache__/parser.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/config/__pycache__/parser.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/config/__pycache__/__init__.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/config/__pycache__/__init__.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/contacts/__pycache__/service.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/contacts/__pycache__/service.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/contacts/__pycache__/client.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/contacts/__pycache__/client.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/contacts/__pycache__/base.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/contacts/__pycache__/base.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/contacts/__pycache__/__init__.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/contacts/__pycache__/__init__.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/docs/__pycache__/service.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/docs/__pycache__/service.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/docs/__pycache__/client.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/docs/__pycache__/client.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/docs/__pycache__/base.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/docs/__pycache__/base.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/docs/__pycache__/__init__.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/docs/__pycache__/__init__.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/picasa/__pycache__/service.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/picasa/__pycache__/service.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/picasa/__pycache__/__init__.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/picasa/__pycache__/__init__.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/youtube/__pycache__/service.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/youtube/__pycache__/service.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/youtube/__pycache__/__init__.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/youtube/__pycache__/__init__.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/finance/__pycache__/service.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/finance/__pycache__/service.cpython-38.pyc' './usr/lib/python3/site-packages/googlecl/finance/__pycache__/__init__.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/googlecl/finance/__pycache__/__init__.cpython-38.pyc' Hardlinking identical .pyc and .pyo files Processing files: googlecl-0.9.13-alt2 Executing(%doc): /bin/sh -e /usr/src/tmp/rpm-tmp.41383 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd googlecl-0.9.13 + DOCDIR=/usr/src/tmp/googlecl-buildroot/usr/share/doc/googlecl-0.9.13 + export DOCDIR + rm -rf /usr/src/tmp/googlecl-buildroot/usr/share/doc/googlecl-0.9.13 + /bin/mkdir -p /usr/src/tmp/googlecl-buildroot/usr/share/doc/googlecl-0.9.13 + cp -prL README.config README.txt /usr/src/tmp/googlecl-buildroot/usr/share/doc/googlecl-0.9.13 + chmod -R go-w /usr/src/tmp/googlecl-buildroot/usr/share/doc/googlecl-0.9.13 + chmod -R a+rX /usr/src/tmp/googlecl-buildroot/usr/share/doc/googlecl-0.9.13 + exit 0 Finding Provides (using /usr/lib/rpm/find-provides) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.liM36i 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.trQydh 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/googlecl-buildroot/usr/bin/google: skipping sys /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [274, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]]]]]]]]]]]]]]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]]]]]]]]]]]]]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]]]]]]]]]]]]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]]]]]]]]]]]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]]]]]]]]]]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]]]]]]]]]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]]]]]]]]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]]]]]]]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [318, [319, [320, [321, [322, [323, [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]]]]]]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [319, [320, [321, [322, [323, [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]]]]]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [320, [321, [322, [323, [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]]]]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [321, [322, [323, [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]]]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [322, [323, [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [323, [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 UNABLE to determine the imported name at parse-time: module /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=332 a form of __import__ was read which gave no deps: [324, [325, [1, '__import__', 332]], [327, [7, '(', 332], [335, [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'module', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'globals', 332]], [327, [7, '(', 332], [8, ')', 332]]]]]]]]]]]]]]]]], [12, ',', 332], [336, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [1, 'fromlist', 332]]]]]]]]]]]]]]]], [22, '=', 332], [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [9, '[', 332], [326, [305, [306, [310, [311, [312, [313, [316, [317, [318, [319, [320, [321, [322, [323, [324, [325, [3, "'0'", 332]]]]]]]]]]]]]]]]]], [10, ']', 332]]]]]]]]]]]]]]]]]], [8, ')', 332]]] /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=457 IGNORE (for REQ=slight and deep=12) module=readline /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=606 IGNORE (for REQ=slight and deep=12) module=inspect /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=661 IGNORE (for REQ=slight and deep=12) module=gdata /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/bin/google: line=847 IGNORE (for REQ=slight and deep=8) module=signal Requires: python3(googlecl) < 0, /usr/bin/python3, python3(glob) < 0, python3(googlecl.authentication) < 0, python3(googlecl.config) < 0, python3(logging) < 0, python3(optparse) < 0, python3(os) < 0, python3(traceback) < 0, python3(webbrowser) < 0 Processing files: python3-module-googlecl-0.9.13-alt2 Finding Provides (using /usr/lib/rpm/find-provides) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.VS0Fig 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.RWADFf find-requires: running scripts (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,python3,rpmlib,shebang,shell,static,symlinks,systemd-services) /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/__init__.py: line=37 IGNORE (for REQ=slight and deep=8) module=sys /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/__init__.py: line=274 IGNORE (for REQ=slight and deep=8) module=stat python3.req: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/base.py: skipping time /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/base.py: line=153 IGNORE (for REQ=slight and deep=19) module=urllib.parse /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/base.py: line=157 IGNORE (for REQ=slight and deep=19) module=cgi python3.req: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/__init__.py: skipping time python3.req: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/date.py: skipping time /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/date_test.py: line=21 possible relative import from ., UNIMPLEMENTED /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/service.py: line=238 IGNORE (for REQ=slight and deep=11) module=atom /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/service.py: line=269 IGNORE (for REQ=slight and deep=11) module=atom /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/client.py: line=77 IGNORE (for REQ=slight and deep=11) module=urllib.request /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/client.py: line=77 IGNORE (for REQ=slight and deep=11) module=urllib.parse /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/client.py: line=77 IGNORE (for REQ=slight and deep=11) module=urllib.error /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/client.py: line=78 IGNORE (for REQ=slight and deep=11) module=time /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/__init__.py: line=16 possible relative import from ., UNIMPLEMENTED /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/__init__.py: line=21 IGNORE (for REQ=slight and deep=8) module=googlecl.docs /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/__init__.py: line=22 IGNORE (for REQ=slight and deep=8) module=googlecl.contacts /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/__init__.py: line=23 IGNORE (for REQ=slight and deep=8) module=googlecl.calendar /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/__init__.py: line=24 IGNORE (for REQ=slight and deep=8) module=googlecl.youtube /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/__init__.py: line=25 IGNORE (for REQ=slight and deep=8) module=getpass /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/config/__init__.py: line=26 IGNORE (for REQ=slight and deep=8) module=socket /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/__init__.py: line=22 IGNORE (for REQ=slight and deep=8) module=gdata.docs.data python3.req: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/base.py: skipping sys /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/base.py: line=87 IGNORE (for REQ=slight and deep=11) module=subprocess /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/base.py: line=88 IGNORE (for REQ=slight and deep=11) module=tempfile /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/base.py: line=353 IGNORE (for REQ=slight and deep=15) module=mimetypes /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/base.py: line=401 IGNORE (for REQ=slight and deep=8) module=hashlib /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/client.py: line=68 IGNORE (for REQ=slight and deep=11) module=gdata.docs.data /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/client.py: line=251 IGNORE (for REQ=slight and deep=11) module=gdata.docs.data /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/service.py: line=107 IGNORE (for REQ=slight and deep=15) module=atom /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/service.py: line=125 IGNORE (for REQ=slight and deep=11) module=gdata.docs.service /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/service.py: line=252 IGNORE (for REQ=slight and deep=11) module=gdata.docs.service /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/service.py: line=302 IGNORE (for REQ=slight and deep=15) module=atom /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/docs/service.py: line=329 IGNORE (for REQ=slight and deep=8) module=atom python3.req: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/finance/__init__.py: skipping sys /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/__init__.py: line=46 IGNORE (for REQ=slight and deep=12) module=re /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/__init__.py: line=67 IGNORE (for REQ=slight and deep=16) module=math python3.req: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/service.py: skipping time /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/service.py: line=341 IGNORE (for REQ=slight and deep=11) module=gdata.media /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/picasa/service.py: line=342 IGNORE (for REQ=slight and deep=11) module=atom /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube/service.py: line=109 IGNORE (for REQ=slight and deep=11) module=gdata.media /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube/service.py: line=156 IGNORE (for REQ=slight and deep=11) module=gdata.media /usr/lib/rpm/python3.req.py: /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/youtube/service.py: line=198 IGNORE (for REQ=slight and deep=8) module=gdata.media shebang.req.files: executable script /usr/src/tmp/googlecl-buildroot/usr/lib/python3/site-packages/googlecl/calendar/date_test.py is not executable Provides: python3(googlecl), python3(googlecl.authentication), python3(googlecl.base), python3(googlecl.blogger), python3(googlecl.blogger.service), python3(googlecl.calendar), python3(googlecl.calendar.date), python3(googlecl.calendar.date_test), python3(googlecl.calendar.service), python3(googlecl.client), python3(googlecl.config), python3(googlecl.config.parser), python3(googlecl.contacts), python3(googlecl.contacts.base), python3(googlecl.contacts.client), python3(googlecl.contacts.service), python3(googlecl.docs), python3(googlecl.docs.base), python3(googlecl.docs.client), python3(googlecl.docs.service), python3(googlecl.finance), python3(googlecl.finance.service), python3(googlecl.picasa), python3(googlecl.picasa.service), python3(googlecl.service), python3(googlecl.youtube), python3(googlecl.youtube.service) Requires: /usr/lib/python3/site-packages, python3(atom) < 0, python3(configparser) < 0, python3(datetime) < 0, python3(gdata) < 0, python3(gdata.blogger) < 0, python3(gdata.blogger.service) < 0, python3(gdata.calendar.service) < 0, python3(gdata.client) < 0, python3(gdata.contacts.client) < 0, python3(gdata.contacts.service) < 0, python3(gdata.docs.client) < 0, python3(gdata.docs.service) < 0, python3(gdata.finance) < 0, python3(gdata.finance.service) < 0, python3(gdata.photos) < 0, python3(gdata.photos.service) < 0, python3(gdata.service) < 0, python3(gdata.youtube) < 0, python3(gdata.youtube.service) < 0, python3(inspect) < 0, python3(logging) < 0, python3(os) < 0, python3(os.path) < 0, python3(pickle) < 0, python3(re) < 0, python3(shlex) < 0, python3(shutil) < 0, python3(stat) < 0, python3(unittest) < 0, python3(urllib.error) < 0, python3(urllib.parse) < 0, python3(urllib.request) < 0 Adding to googlecl a strict dependency on python3-module-googlecl Removing 3 extra deps from googlecl due to dependency on python3-module-googlecl Removing 2 extra deps from googlecl due to repentancy on python3-module-googlecl Wrote: /usr/src/RPM/RPMS/noarch/googlecl-0.9.13-alt2.noarch.rpm (w2.lzdio) Wrote: /usr/src/RPM/RPMS/noarch/python3-module-googlecl-0.9.13-alt2.noarch.rpm (w2.lzdio) 48.01user 2.35system 0:51.99elapsed 96%CPU (0avgtext+0avgdata 32196maxresident)k 0inputs+0outputs (0major+229813minor)pagefaults 0swaps /.out/googlecl-0.9.13-alt2.noarch.rpm: The use of such a license name is ambiguous: Apache /.out/googlecl-0.9.13-alt2.noarch.rpm: license not found in '/usr/share/license' directory: License /.out/googlecl-0.9.13-alt2.noarch.rpm: license not found in '/usr/share/license' directory: 2.0 /.out/python3-module-googlecl-0.9.13-alt2.noarch.rpm: The use of such a license name is ambiguous: Apache /.out/python3-module-googlecl-0.9.13-alt2.noarch.rpm: license not found in '/usr/share/license' directory: License /.out/python3-module-googlecl-0.9.13-alt2.noarch.rpm: license not found in '/usr/share/license' directory: 2.0 57.73user 6.96system 1:05.99elapsed 98%CPU (0avgtext+0avgdata 112372maxresident)k 0inputs+0outputs (0major+696310minor)pagefaults 0swaps --- python3-module-googlecl-0.9.13-alt2.noarch.rpm.repo 2019-12-30 13:08:56.000000000 +0000 +++ python3-module-googlecl-0.9.13-alt2.noarch.rpm.hasher 2021-01-21 15:36:55.969452473 +0000 @@ -1,25 +1,25 @@ /usr/lib/python3/site-packages/googlecl 40755 -/usr/lib/python3/site-packages/googlecl-0.9.13-py3.7.egg-info 40755 -/usr/lib/python3/site-packages/googlecl-0.9.13-py3.7.egg-info/PKG-INFO 100644 -/usr/lib/python3/site-packages/googlecl-0.9.13-py3.7.egg-info/SOURCES.txt 100644 -/usr/lib/python3/site-packages/googlecl-0.9.13-py3.7.egg-info/dependency_links.txt 100644 -/usr/lib/python3/site-packages/googlecl-0.9.13-py3.7.egg-info/requires.txt 100644 -/usr/lib/python3/site-packages/googlecl-0.9.13-py3.7.egg-info/top_level.txt 100644 +/usr/lib/python3/site-packages/googlecl-0.9.13-py3.8.egg-info 40755 +/usr/lib/python3/site-packages/googlecl-0.9.13-py3.8.egg-info/PKG-INFO 100644 +/usr/lib/python3/site-packages/googlecl-0.9.13-py3.8.egg-info/SOURCES.txt 100644 +/usr/lib/python3/site-packages/googlecl-0.9.13-py3.8.egg-info/dependency_links.txt 100644 +/usr/lib/python3/site-packages/googlecl-0.9.13-py3.8.egg-info/requires.txt 100644 +/usr/lib/python3/site-packages/googlecl-0.9.13-py3.8.egg-info/top_level.txt 100644 /usr/lib/python3/site-packages/googlecl/__init__.py 100644 /usr/lib/python3/site-packages/googlecl/__pycache__ 40755 -/usr/lib/python3/site-packages/googlecl/__pycache__/__init__.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/__pycache__/__init__.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/__pycache__/__init__.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/__pycache__/authentication.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/__pycache__/authentication.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/__pycache__/authentication.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/__pycache__/base.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/__pycache__/base.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/__pycache__/base.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/__pycache__/client.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/__pycache__/client.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/__pycache__/client.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/__pycache__/service.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/__pycache__/service.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/__pycache__/service.cpython-37.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/__init__.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/__init__.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/__init__.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/authentication.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/authentication.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/authentication.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/base.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/base.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/base.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/client.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/client.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/client.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/service.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/service.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/__pycache__/service.cpython-38.pyc 100644 /usr/lib/python3/site-packages/googlecl/authentication.py 100644 @@ -29,8 +29,8 @@ /usr/lib/python3/site-packages/googlecl/blogger/__pycache__ 40755 -/usr/lib/python3/site-packages/googlecl/blogger/__pycache__/__init__.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/blogger/__pycache__/__init__.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/blogger/__pycache__/__init__.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/blogger/__pycache__/service.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/blogger/__pycache__/service.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/blogger/__pycache__/service.cpython-37.pyc 100644 +/usr/lib/python3/site-packages/googlecl/blogger/__pycache__/__init__.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/blogger/__pycache__/__init__.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/blogger/__pycache__/__init__.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/blogger/__pycache__/service.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/blogger/__pycache__/service.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/blogger/__pycache__/service.cpython-38.pyc 100644 /usr/lib/python3/site-packages/googlecl/blogger/service.py 100644 @@ -39,14 +39,14 @@ /usr/lib/python3/site-packages/googlecl/calendar/__pycache__ 40755 -/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/__init__.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/__init__.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/__init__.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date_test.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date_test.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date_test.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/service.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/service.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/service.cpython-37.pyc 100644 +/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/__init__.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/__init__.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/__init__.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date_test.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date_test.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/date_test.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/service.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/service.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/calendar/__pycache__/service.cpython-38.pyc 100644 /usr/lib/python3/site-packages/googlecl/calendar/date.py 100644 @@ -58,8 +58,8 @@ /usr/lib/python3/site-packages/googlecl/config/__pycache__ 40755 -/usr/lib/python3/site-packages/googlecl/config/__pycache__/__init__.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/config/__pycache__/__init__.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/config/__pycache__/__init__.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/config/__pycache__/parser.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/config/__pycache__/parser.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/config/__pycache__/parser.cpython-37.pyc 100644 +/usr/lib/python3/site-packages/googlecl/config/__pycache__/__init__.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/config/__pycache__/__init__.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/config/__pycache__/__init__.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/config/__pycache__/parser.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/config/__pycache__/parser.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/config/__pycache__/parser.cpython-38.pyc 100644 /usr/lib/python3/site-packages/googlecl/config/parser.py 100644 @@ -68,14 +68,14 @@ /usr/lib/python3/site-packages/googlecl/contacts/__pycache__ 40755 -/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/__init__.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/__init__.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/__init__.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/base.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/base.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/base.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/client.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/client.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/client.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/service.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/service.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/service.cpython-37.pyc 100644 +/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/__init__.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/__init__.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/__init__.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/base.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/base.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/base.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/client.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/client.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/client.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/service.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/service.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/contacts/__pycache__/service.cpython-38.pyc 100644 /usr/lib/python3/site-packages/googlecl/contacts/base.py 100644 @@ -86,14 +86,14 @@ /usr/lib/python3/site-packages/googlecl/docs/__pycache__ 40755 -/usr/lib/python3/site-packages/googlecl/docs/__pycache__/__init__.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/docs/__pycache__/__init__.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/docs/__pycache__/__init__.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/docs/__pycache__/base.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/docs/__pycache__/base.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/docs/__pycache__/base.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/docs/__pycache__/client.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/docs/__pycache__/client.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/docs/__pycache__/client.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/docs/__pycache__/service.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/docs/__pycache__/service.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/docs/__pycache__/service.cpython-37.pyc 100644 +/usr/lib/python3/site-packages/googlecl/docs/__pycache__/__init__.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/docs/__pycache__/__init__.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/docs/__pycache__/__init__.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/docs/__pycache__/base.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/docs/__pycache__/base.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/docs/__pycache__/base.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/docs/__pycache__/client.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/docs/__pycache__/client.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/docs/__pycache__/client.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/docs/__pycache__/service.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/docs/__pycache__/service.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/docs/__pycache__/service.cpython-38.pyc 100644 /usr/lib/python3/site-packages/googlecl/docs/base.py 100644 @@ -104,8 +104,8 @@ /usr/lib/python3/site-packages/googlecl/finance/__pycache__ 40755 -/usr/lib/python3/site-packages/googlecl/finance/__pycache__/__init__.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/finance/__pycache__/__init__.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/finance/__pycache__/__init__.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/finance/__pycache__/service.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/finance/__pycache__/service.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/finance/__pycache__/service.cpython-37.pyc 100644 +/usr/lib/python3/site-packages/googlecl/finance/__pycache__/__init__.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/finance/__pycache__/__init__.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/finance/__pycache__/__init__.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/finance/__pycache__/service.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/finance/__pycache__/service.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/finance/__pycache__/service.cpython-38.pyc 100644 /usr/lib/python3/site-packages/googlecl/finance/service.py 100644 @@ -114,8 +114,8 @@ /usr/lib/python3/site-packages/googlecl/picasa/__pycache__ 40755 -/usr/lib/python3/site-packages/googlecl/picasa/__pycache__/__init__.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/picasa/__pycache__/__init__.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/picasa/__pycache__/__init__.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/picasa/__pycache__/service.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/picasa/__pycache__/service.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/picasa/__pycache__/service.cpython-37.pyc 100644 +/usr/lib/python3/site-packages/googlecl/picasa/__pycache__/__init__.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/picasa/__pycache__/__init__.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/picasa/__pycache__/__init__.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/picasa/__pycache__/service.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/picasa/__pycache__/service.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/picasa/__pycache__/service.cpython-38.pyc 100644 /usr/lib/python3/site-packages/googlecl/picasa/service.py 100644 @@ -125,8 +125,8 @@ /usr/lib/python3/site-packages/googlecl/youtube/__pycache__ 40755 -/usr/lib/python3/site-packages/googlecl/youtube/__pycache__/__init__.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/youtube/__pycache__/__init__.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/youtube/__pycache__/__init__.cpython-37.pyc 100644 -/usr/lib/python3/site-packages/googlecl/youtube/__pycache__/service.cpython-37.opt-1.pyc 100644 -/usr/lib/python3/site-packages/googlecl/youtube/__pycache__/service.cpython-37.opt-2.pyc 100644 -/usr/lib/python3/site-packages/googlecl/youtube/__pycache__/service.cpython-37.pyc 100644 +/usr/lib/python3/site-packages/googlecl/youtube/__pycache__/__init__.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/youtube/__pycache__/__init__.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/youtube/__pycache__/__init__.cpython-38.pyc 100644 +/usr/lib/python3/site-packages/googlecl/youtube/__pycache__/service.cpython-38.opt-1.pyc 100644 +/usr/lib/python3/site-packages/googlecl/youtube/__pycache__/service.cpython-38.opt-2.pyc 100644 +/usr/lib/python3/site-packages/googlecl/youtube/__pycache__/service.cpython-38.pyc 100644 /usr/lib/python3/site-packages/googlecl/youtube/service.py 100644