<86>May 22 03:48:47 userdel[1160093]: delete user 'rooter' <86>May 22 03:48:47 groupadd[1160116]: group added to /etc/group: name=rooter, GID=624 <86>May 22 03:48:47 groupadd[1160116]: group added to /etc/gshadow: name=rooter <86>May 22 03:48:47 groupadd[1160116]: new group: name=rooter, GID=624 <86>May 22 03:48:47 useradd[1160134]: new user: name=rooter, UID=624, GID=624, home=/root, shell=/bin/bash <86>May 22 03:48:47 userdel[1160162]: delete user 'builder' <86>May 22 03:48:47 userdel[1160162]: removed group 'builder' owned by 'builder' <86>May 22 03:48:47 userdel[1160162]: removed shadow group 'builder' owned by 'builder' <86>May 22 03:48:47 groupadd[1160186]: group added to /etc/group: name=builder, GID=625 <86>May 22 03:48:47 groupadd[1160186]: group added to /etc/gshadow: name=builder <86>May 22 03:48:47 groupadd[1160186]: new group: name=builder, GID=625 <86>May 22 03:48:47 useradd[1160197]: new user: name=builder, UID=625, GID=625, home=/usr/src, shell=/bin/bash <13>May 22 03:48:51 rpmi: libgdbm-1.8.3-alt10 1454943313 installed <13>May 22 03:48:51 rpmi: libexpat-2.2.10-alt1 sisyphus+259966.100.1.1 1602824514 installed <13>May 22 03:48:51 rpmi: libp11-kit-0.23.15-alt2 sisyphus+252784.100.2.2 1591274915 installed <13>May 22 03:48:51 rpmi: libtasn1-4.16.0-alt1 sisyphus+245480.100.1.1 1580825069 installed <13>May 22 03:48:51 rpmi: rpm-macros-alternatives-0.5.1-alt1 sisyphus+226946.100.1.1 1554830426 installed <13>May 22 03:48:51 rpmi: alternatives-0.5.1-alt1 sisyphus+226946.100.1.1 1554830426 installed <13>May 22 03:48:51 rpmi: ca-certificates-2021.03.24-alt1 sisyphus+268304.300.1.1 1616591829 installed <13>May 22 03:48:51 rpmi: ca-trust-0.1.2-alt1 sisyphus+233348.100.1.1 1561653823 installed <13>May 22 03:48:51 rpmi: p11-kit-trust-0.23.15-alt2 sisyphus+252784.100.2.2 1591274915 installed <13>May 22 03:48:52 rpmi: libcrypto1.1-1.1.1k-alt1 sisyphus+268375.100.1.1 1616684123 installed <13>May 22 03:48:52 rpmi: libssl1.1-1.1.1k-alt1 sisyphus+268375.100.1.1 1616684123 installed <13>May 22 03:48:52 rpmi: python3-3.9.5-alt1 sisyphus+271461.100.1.1 1620748574 installed <13>May 22 03:48:53 rpmi: python3-base-3.9.5-alt1 sisyphus+271461.100.1.1 1620748574 installed <13>May 22 03:48:53 rpmi: libpython3-3.9.5-alt1 sisyphus+271461.100.1.1 1620748574 installed <13>May 22 03:48:53 rpmi: tests-for-installed-python3-pkgs-0.1.17-alt1 sisyphus+271082.100.1.1 1619820927 installed <13>May 22 03:48:53 rpmi: rpm-build-python3-0.1.17-alt1 sisyphus+271082.100.1.1 1619820927 installed <13>May 22 03:48:58 rpmi: python3-module-six-1.15.0-alt2 sisyphus+270533.5100.6.1 1619685463 installed <13>May 22 03:48:58 rpmi: python3-module-pkg_resources-1:56.1.0-alt1 sisyphus+271297.100.1.1 1620375285 installed <13>May 22 03:48:58 rpmi: python3-module-ntlm-1.1.0-alt1.2 sisyphus+228512.100.1.1 1556654575 installed <13>May 22 03:48:58 rpmi: python3-module-genshi-0.7.4-alt2 sisyphus+261703.100.2.1 1605232240 installed <13>May 22 03:48:58 rpmi: python3-module-snowballstemmer-1.2.0-alt2.1 sisyphus+271943.400.1.1 1621160075 installed <13>May 22 03:48:58 rpmi: python3-module-pyparsing-2.4.2-alt2 sisyphus+261315.100.1.1 1604861802 installed <13>May 22 03:48:58 rpmi: python3-module-packaging-20.9-alt1 sisyphus+270533.300.6.1 1619683401 installed <13>May 22 03:48:58 rpmi: python3-module-markupsafe-2.0.1-alt1 sisyphus+271650.600.4.1 1621589664 installed <13>May 22 03:48:58 rpmi: python3-module-jinja2-2.11.3-alt1 sisyphus+267903.300.1.1 1615896587 installed <13>May 22 03:48:58 rpmi: python3-module-imagesize-1.1.0-alt1 sisyphus+271943.200.1.1 1621159990 installed <13>May 22 03:48:58 rpmi: python3-module-pytz-1:2021.1-alt1 sisyphus+267903.400.1.1 1615896636 installed <13>May 22 03:48:59 rpmi: python3-module-babel-1:2.9.0-alt1 sisyphus+268784.200.2.1 1617263310 installed <13>May 22 03:48:59 rpmi: python3-module-ndg-0.4.2-alt1.qa1 sisyphus+227504.1300.1.2 1555853074 installed <13>May 22 03:48:59 rpmi: python3-module-pycparser-2.20-alt1 sisyphus+260990.100.1.1 1604547209 installed <13>May 22 03:48:59 rpmi: python3-module-cffi-1.14.5-alt2 sisyphus+270533.2000.6.1 1619684526 installed <13>May 22 03:48:59 rpmi: python3-module-cryptography-3.4.7-alt1 sisyphus+270667.100.1.1 1619307682 installed <13>May 22 03:48:59 rpmi: python3-module-openssl-20.0.1-alt1 sisyphus+267607.100.2.1 1615475362 installed <13>May 22 03:48:59 rpmi: python3-module-ndg-httpsclient-0.4.2-alt1.qa1 sisyphus+227504.1300.1.2 1555853074 installed <13>May 22 03:48:59 rpmi: python3-module-urllib3-2:1.25.10-alt1 sisyphus+255342.100.1.1 1595592746 installed <13>May 22 03:49:00 rpmi: python3-module-idna-3.1-alt1 sisyphus+267356.100.1.1 1614879269 installed <13>May 22 03:49:00 rpmi: python3-module-chardet-1:3.0.4-alt2 sisyphus+263408.100.1.1 1607875228 installed <13>May 22 03:49:00 rpmi: python3-module-requests-2.25.1-alt2 sisyphus+267359.100.1.1 1614881487 installed <13>May 22 03:49:00 rpmi: python3-module-webencodings-0.5.1-alt2 sisyphus+245915.200.1.1 1581496105 installed <13>May 22 03:49:00 rpmi: python-sphinx-objects.inv-1:2.3.11.20210508-alt1 sisyphus+271366.100.1.1 1620604190 installed <13>May 22 03:49:00 rpmi: libyaml2-0.2.5-alt1 sisyphus+253672.100.1.1 1592583136 installed <13>May 22 03:49:00 rpmi: libpython-2.7.18-alt5 sisyphus+270920.100.1.1 1619657735 installed <13>May 22 03:49:00 rpmi: python2-base-2.7.18-alt5 sisyphus+270920.100.1.1 1619657735 installed <13>May 22 03:49:00 rpmi: python-modules-encodings-2.7.18-alt5 sisyphus+270920.100.1.1 1619657735 installed <13>May 22 03:49:00 rpmi: python-modules-compiler-2.7.18-alt5 sisyphus+270920.100.1.1 1619657735 installed <13>May 22 03:49:00 rpmi: python-modules-email-2.7.18-alt5 sisyphus+270920.100.1.1 1619657735 installed <13>May 22 03:49:00 rpmi: python-modules-unittest-2.7.18-alt5 sisyphus+270920.100.1.1 1619657735 installed <13>May 22 03:49:00 rpmi: python-modules-2.7.18-alt5 sisyphus+270920.100.1.1 1619657735 installed <13>May 22 03:49:00 rpmi: python-modules-ctypes-2.7.18-alt5 sisyphus+270920.100.1.1 1619657735 installed <13>May 22 03:49:00 rpmi: python-modules-multiprocessing-2.7.18-alt5 sisyphus+270920.100.1.1 1619657735 installed <13>May 22 03:49:00 rpmi: python-modules-logging-2.7.18-alt5 sisyphus+270920.100.1.1 1619657735 installed <13>May 22 03:49:00 rpmi: libgpg-error-1.41-alt4 sisyphus+264254.200.1.1 1609440105 installed <13>May 22 03:49:00 rpmi: libgcrypt20-1.9.2-alt1 sisyphus+266496.100.1.1 1613559130 installed <13>May 22 03:49:00 rpmi: libxslt-1.1.34-alt2 sisyphus+248264.100.1.1 1584829787 installed <13>May 22 03:49:00 rpmi: python3-module-cssselect-0.9.1-alt3 sisyphus+270533.2600.6.1 1619684675 installed <13>May 22 03:49:00 rpmi: python3-module-html5lib-1:1.0.1-alt1 sisyphus+238807.100.2.1 1570465973 installed <13>May 22 03:49:01 rpmi: python3-module-lxml-4.6.3-alt1 sisyphus+268152.100.1.1 1616388019 installed <13>May 22 03:49:01 rpmi: python3-module-docutils-0.17.1-alt1 sisyphus+271898.100.1.1 1621041818 installed <13>May 22 03:49:01 rpmi: python3-module-alabaster-0.7.6-alt3 sisyphus+271943.300.1.1 1621160028 installed <13>May 22 03:49:01 rpmi: python3-module-sphinxcontrib-applehelp-1.0.2-alt1 sisyphus+252614.200.1.1 1590949678 installed <13>May 22 03:49:01 rpmi: python3-module-sphinxcontrib-devhelp-1.0.2-alt1 sisyphus+252614.300.1.1 1590949711 installed <13>May 22 03:49:01 rpmi: python3-module-sphinxcontrib-htmlhelp-1.0.2-alt1 sisyphus+228401.100.1.1 1556572721 installed <13>May 22 03:49:01 rpmi: python3-module-sphinxcontrib-jsmath-1.0.1-alt1 sisyphus+238085.500.1.1 1569313099 installed <13>May 22 03:49:01 rpmi: python3-module-sphinxcontrib-qthelp-1.0.3-alt1 sisyphus+252614.400.1.1 1590949745 installed <13>May 22 03:49:01 rpmi: python3-module-sphinxcontrib-serializinghtml-1.1.4-alt1 sisyphus+252614.100.1.1 1590949645 installed <13>May 22 03:49:01 rpmi: python3-module-sphinx-1:4.0.1-alt4 sisyphus+272016.100.1.1 1621246705 installed <13>May 22 03:49:02 rpmi: python3-module-Pygments-2.8.1-alt2 sisyphus+270791.100.1.1 1619525864 installed <13>May 22 03:49:02 rpmi: python-tools-2to3-2.7.18-alt5 sisyphus+270920.100.1.1 1619657735 installed <13>May 22 03:49:02 rpmi: python3-module-yaml-5.4.1-alt1 sisyphus+266616.200.3.3 1614165416 installed Building target platforms: x86_64 Building for target x86_64 Wrote: /usr/src/in/nosrpm/python3-module-cliapp-1.20160724-alt3.nosrc.rpm (w1.gzdio) <13>May 22 03:49:06 rpmi: libtinfo-devel-6.2.20210123-alt1 sisyphus+265425.100.1.1 1611851422 installed <13>May 22 03:49:07 rpmi: libncurses-devel-6.2.20210123-alt1 sisyphus+265425.100.1.1 1611851422 installed <13>May 22 03:49:07 rpmi: python3-dev-3.9.5-alt1 sisyphus+271461.100.1.1 1620748574 installed <13>May 22 03:49:07 rpmi: python3-module-setuptools-1:56.1.0-alt1 sisyphus+271297.100.1.1 1620375285 installed Installing python3-module-cliapp-1.20160724-alt3.src.rpm Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.21165 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + rm -rf python3-module-cliapp-1.20160724 + echo 'Source #0 (python3-module-cliapp-1.20160724.tar):' Source #0 (python3-module-cliapp-1.20160724.tar): + /bin/tar -xf /usr/src/RPM/SOURCES/python3-module-cliapp-1.20160724.tar + cd python3-module-cliapp-1.20160724 + /bin/chmod -c -Rf u+rwX,go-w . + sed -i 's|sphinx-build|sphinx-build-3|' doc/Makefile + 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: No changes to ./test-plugins/wrongversion_plugin.py RefactoringTool: No changes to ./test-plugins/hello_plugin.py RefactoringTool: No changes to ./setup.py RefactoringTool: No changes to ./example5.py RefactoringTool: No changes to ./example4.py RefactoringTool: Refactored ./example3.py RefactoringTool: No changes to ./example2.py RefactoringTool: No changes to ./example.py RefactoringTool: Refactored ./doc/conf.py RefactoringTool: No changes to ./cliapp/version.py RefactoringTool: No changes to ./cliapp/util.py RefactoringTool: Refactored ./cliapp/settings_tests.py --- ./example3.py (original) +++ ./example3.py (refactored) @@ -22,7 +22,7 @@ ''' -import urlparse +import urllib.parse import cliapp @@ -37,7 +37,7 @@ def compute_setting_values(self, settings): if not self.settings['protocol']: - schema = urlparse.urlparse(self.settings['url'])[0] + schema = urllib.parse.urlparse(self.settings['url'])[0] self.settings['protocol'] = schema def process_args(self, args): --- ./doc/conf.py (original) +++ ./doc/conf.py (refactored) @@ -39,8 +39,8 @@ master_doc = 'index' # General information about the project. -project = u'cliapp' -copyright = u'2011, Lars Wirzenius' +project = 'cliapp' +copyright = '2011, Lars Wirzenius' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -174,8 +174,8 @@ # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'cliapp.tex', u'cliapp Documentation', - u'Lars Wirzenius', 'manual'), + ('index', 'cliapp.tex', 'cliapp Documentation', + 'Lars Wirzenius', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of --- ./cliapp/settings_tests.py (original) +++ ./cliapp/settings_tests.py (refactored) @@ -15,7 +15,7 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -import StringIO +import io import unittest import cliapp @@ -39,12 +39,12 @@ def test_sets_usage_from_func(self): s = cliapp.Settings('appname', '1.0', usage=lambda: 'xyzzy') p = s.build_parser() - self.assert_('xyzzy' in p.usage) + self.assertTrue('xyzzy' in p.usage) def test_adds_default_options_and_settings(self): - self.assert_('output' in self.settings) - self.assert_('log' in self.settings) - self.assert_('log-level' in self.settings) + self.assertTrue('output' in self.settings) + self.assertTrue('log' in self.settings) + self.assertTrue('log-level' in self.settings) def test_iterates_over_canonical_settings_names(self): known = ['output', 'log', 'log-level'] @@ -53,7 +53,7 @@ def test_keys_returns_canonical_names(self): known = ['output', 'log', 'log-level'] - self.assertEqual(sorted(x for x in self.settings.keys() if x in known), + self.assertEqual(sorted(x for x in list(self.settings.keys()) if x in known), sorted(known)) def test_parses_options(self): @@ -84,11 +84,11 @@ def test_adds_string_setting(self): self.settings.string(['foo'], 'foo help') - self.assert_('foo' in self.settings) + self.assertTrue('foo' in self.settings) def test_adds_string_list_setting(self): self.settings.string_list(['foo'], 'foo help') - self.assert_('foo' in self.settings) + self.assertTrue('foo' in self.settings) def test_string_list_is_empty_list_by_default(self): self.settings.string_list(['foo'], '') @@ -117,7 +117,7 @@ def test_adds_choice_setting(self): self.settings.choice(['foo'], ['foo', 'bar'], 'foo help') - self.assert_('foo' in self.settings) + self.assertTrue('foo' in self.settings) def test_choice_defaults_to_first_one(self): self.settings.choice(['foo'], ['foo', 'bar'], 'foo help') @@ -139,7 +139,7 @@ def test_adds_boolean_setting(self): self.settings.boolean(['foo'], 'foo help') - self.assert_('foo' in self.settings) + self.assertTrue('foo' in self.settings) def test_boolean_setting_is_false_by_default(self): self.settings.boolean(['foo'], 'foo help') @@ -148,9 +148,9 @@ def test_sets_boolean_setting_to_true_for_many_true_values(self): self.settings.boolean(['foo'], 'foo help') self.settings['foo'] = True - self.assert_(self.settings['foo']) + self.assertTrue(self.settings['foo']) self.settings['foo'] = 1 - self.assert_(self.settings['foo']) + self.assertTrue(self.settings['foo']) def test_sets_boolean_setting_to_false_for_many_false_values(self): self.settings.boolean(['foo'], 'foo help') @@ -167,7 +167,7 @@ def test_sets_boolean_to_true_from_ini_file(self): def fake_open(filename): - return StringIO.StringIO('[config]\nfoo = yes\n') + return io.StringIO('[config]\nfoo = yes\n') self.settings.boolean(['foo'], 'foo help') self.settings.config_files = ['foo.conf'] self.settings.load_configs(open_file=fake_open) @@ -175,7 +175,7 @@ def test_sets_boolean_to_false_from_ini_file(self): def fake_open(filename): - return StringIO.StringIO('[config]\nfoo = False\n') + return io.StringIO('[config]\nfoo = False\n') self.settings.boolean(['foo'], 'foo help') self.settings.config_files = ['foo.conf'] self.settings.load_configs(open_file=fake_open) @@ -183,7 +183,7 @@ def test_sets_boolean_to_true_from_yaml_file(self): def fake_open(filename): - return StringIO.StringIO('config:\n foo: true\n') + return io.StringIO('config:\n foo: true\n') self.settings.boolean(['foo'], 'foo help') self.settings.config_files = ['foo.yaml'] self.settings.load_configs(open_file=fake_open) @@ -191,7 +191,7 @@ def test_sets_boolean_to_false_from_yaml_file(self): def fake_open(filename): - return StringIO.StringIO('config:\n foo: false\n') + return io.StringIO('config:\n foo: false\n') self.settings.boolean(['foo'], 'foo help') self.settings.config_files = ['foo.yaml'] self.settings.load_configs(open_file=fake_open) @@ -199,7 +199,7 @@ def test_adds_bytesize_setting(self): self.settings.bytesize(['foo'], 'foo help') - self.assert_('foo' in self.settings) + self.assertTrue('foo' in self.settings) def test_parses_bytesize_option(self): self.settings.bytesize(['foo'], 'foo help') @@ -236,7 +236,7 @@ def test_adds_integer_setting(self): self.settings.integer(['foo'], 'foo help') - self.assert_('foo' in self.settings) + self.assertTrue('foo' in self.settings) def test_parses_integer_option(self): self.settings.integer(['foo'], 'foo help', default=123) @@ -249,8 +249,8 @@ def test_has_list_of_default_config_files(self): defaults = self.settings.default_config_files - self.assert_(isinstance(defaults, list)) - self.assert_(len(defaults) > 0) + self.assertTrue(isinstance(defaults, list)) + self.assertTrue(len(defaults) > 0) def test_listconfs_returns_empty_list_for_nonexistent_directory(self): self.assertEqual(self.settings.listconfs('notexist'), []) @@ -279,7 +279,7 @@ def test_loads_ini_files(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ [config] foo = yeehaa ''') @@ -292,7 +292,7 @@ def test_loads_yaml_files(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ config: foo: yeehaa ''') @@ -305,7 +305,7 @@ def test_loads_string_list_from_ini_files(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ [config] foo = yeehaa bar = ping, pong @@ -324,7 +324,7 @@ def test_loads_string_list_from_yaml_files(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ config: foo: yeehaa bar: [ping, pong] @@ -343,7 +343,7 @@ def test_handles_defaults_with_ini_files(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ [config] ''') @@ -357,7 +357,7 @@ RefactoringTool: Refactored ./cliapp/settings.py def test_handles_defaults_with_yaml_files(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ config: {} ''') @@ -371,7 +371,7 @@ def test_handles_overridden_defaults_with_ini_files(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ [config] foo = yeehaa bar = ping, pong @@ -387,7 +387,7 @@ def test_handles_overridden_defaults_with_yaml_files(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ config: foo: yeehaa bar: [ping, pong] @@ -403,7 +403,7 @@ def test_handles_values_from_ini_files_overridden_on_command_line(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ [config] foo = yeehaa bar = ping, pong @@ -421,7 +421,7 @@ def test_handles_values_from_yaml_files_overridden_on_command_line(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ config: foo: yeehaa bar: [ping, pong] @@ -439,7 +439,7 @@ def test_load_configs_raises_error_for_unknown_variable_in_ini(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ [config] unknown = variable ''') @@ -452,7 +452,7 @@ def test_load_configs_raises_error_for_unknown_variable_in_yaml(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ config: unknown: yeehaa ''') @@ -466,7 +466,7 @@ def test_load_configs_remembers_extra_sections_in_ini(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ [extra] something = else ''') @@ -481,7 +481,7 @@ def test_load_configs_remembers_extra_sections_in_yaml(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ config: {} extra: something: else @@ -579,7 +579,7 @@ def test_exports_all_config_sections_via_as_cp(self): def mock_open(filename, mode=None): - return StringIO.StringIO('''\ + return io.StringIO('''\ [config] foo = yeehaa --- ./cliapp/settings.py (original) +++ ./cliapp/settings.py (refactored) @@ -15,7 +15,7 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -import ConfigParser +import configparser import optparse import os import re @@ -194,7 +194,7 @@ def is_true(): if value is True or value is False: return value - if type(value) in [str, unicode]: + if type(value) in [str, str]: return value.lower() in self._trues return value if is_true(): @@ -226,13 +226,13 @@ 'gi': 2 ** 30, 'ti': 2 ** 40, } - return long(number * units.get(unit, 1)) + return int(number * units.get(unit, 1)) def default_metavar(self): return 'SIZE' def get_value(self): - return long(self._string_value) + return int(self._string_value) def set_value(self, value): if type(value) == str: @@ -248,7 +248,7 @@ return self.names[0].upper() def get_value(self): - return long(self._string_value) + return int(self._string_value) def set_value(self, value): self._string_value = str(value) @@ -319,7 +319,7 @@ self._config_files = None self._required_config_files = [] - self._cp = ConfigParser.ConfigParser() + self._cp = configparser.ConfigParser() def _add_default_settings(self): self.string(['output'], @@ -482,7 +482,7 @@ # Create the command line parser. def getit(x): - RefactoringTool: No changes to ./cliapp/runcmd_tests.py RefactoringTool: Refactored ./cliapp/runcmd.py RefactoringTool: Refactored ./cliapp/pluginmgr_tests.py RefactoringTool: Refactored ./cliapp/pluginmgr.py RefactoringTool: No changes to ./cliapp/plugin_tests.py RefactoringTool: No changes to ./cliapp/plugin.py RefactoringTool: No changes to ./cliapp/hookmgr_tests.py RefactoringTool: No changes to ./cliapp/hookmgr.py RefactoringTool: No changes to ./cliapp/hook_tests.py RefactoringTool: No changes to ./cliapp/hook.py RefactoringTool: No changes to ./cliapp/genman.py RefactoringTool: No changes to ./cliapp/fmt_tests.py RefactoringTool: No changes to ./cliapp/fmt.py RefactoringTool: Refactored ./cliapp/app_tests.py if x is None or type(x) in [str, unicode]: + if x is None or type(x) in [str, str]: return x else: return x() @@ -594,7 +594,7 @@ def list_config_files(*args): # pragma: no cover for filename in self.config_files: - print filename + print(filename) sys.exit(0) add_option_to_group( @@ -824,7 +824,7 @@ raise def _read_ini(self, pathname, f): - cp = ConfigParser.ConfigParser() + cp = configparser.ConfigParser() cp.add_section('config') cp.readfp(f) for name in cp.options('config'): @@ -844,7 +844,7 @@ obj = yaml.safe_load(f) self._check_yaml(pathname, obj) config = obj.get('config', {}) - for name, value in config.items(): + for name, value in list(config.items()): if name not in self._settingses: raise UnknownConfigVariable(pathname, name) s = self._settingses[name] @@ -886,7 +886,7 @@ ''' - cp = ConfigParser.ConfigParser() + cp = configparser.ConfigParser() cp.add_section('config') for name in self._canonical_names: cp.set('config', name, self._settingses[name].format()) @@ -894,7 +894,7 @@ for section in self._all_config_data: if section != 'config': cp.add_section(section) - for option, value in self._all_config_data[section].items(): + for option, value in list(self._all_config_data[section].items()): cp.set(section, option, value) return cp --- ./cliapp/runcmd.py (original) +++ ./cliapp/runcmd.py (refactored) @@ -104,7 +104,7 @@ return _run_pipeline(pipeline, feed_stdin, pipe_stdin, pipe_stdout, pipe_stderr, stdout_callback, stderr_callback) - except OSError, e: # pragma: no cover + except OSError as e: # pragma: no cover if e.errno == errno.ENOENT and e.filename is None: e.filename = argv[0] raise e @@ -322,17 +322,17 @@ ssh_argv.append('-T') more_options = kwargs.pop('ssh_options', []) - ssh_argv.extend(map(shell_quote, more_options)) + ssh_argv.extend(list(map(shell_quote, more_options))) ssh_argv.append(target) ssh_argv.append('--') remote_cwd = kwargs.pop('remote_cwd', None) if remote_cwd: - ssh_argv.extend(map(shell_quote, [ + ssh_argv.extend(list(map(shell_quote, [ 'sh', '-c', 'cd "$1" && shift && exec "$@"', '-', - remote_cwd])) - - local_argv = ssh_argv + map(shell_quote, argv) + remote_cwd]))) + + local_argv = ssh_argv + list(map(shell_quote, argv)) return runcmd(local_argv, **kwargs) --- ./cliapp/pluginmgr_tests.py (original) +++ ./cliapp/pluginmgr_tests.py (refactored) @@ -97,7 +97,7 @@ self.assertFalse(self.pm.compatible_version('1.2.4')) def test_accepts_one(self): - self.assert_(self.pm.compatible_version('1')) + self.assertTrue(self.pm.compatible_version('1')) def test_accepts_one_two_three(self): - self.assert_(self.pm.compatible_version('1.2.3')) + self.assertTrue(self.pm.compatible_version('1.2.3')) --- ./cliapp/pluginmgr.py (original) +++ ./cliapp/pluginmgr.py (refactored) @@ -117,7 +117,7 @@ else: plugins[plugin.name] = plugin - return plugins.values() + return list(plugins.values()) def is_older(self, version1, version2): '''Is version1 older than version2?''' --- ./cliapp/app_tests.py (original) +++ ./cliapp/app_tests.py (refactored) @@ -15,7 +15,7 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -import StringIO +import io import sys import unittest @@ -32,7 +32,7 @@ self.e = cliapp.AppException('foo') def test_error_message_contains_foo(self): - self.assert_('foo' in str(self.e)) + self.assertTrue('foo' in str(self.e)) class ApplicationTests(unittest.TestCase): @@ -41,7 +41,7 @@ self.app = cliapp.Application() def test_creates_settings(self): - self.assert_(isinstance(self.app.settings, cliapp.Settings)) + self.assertTrue(isinstance(self.app.settings, cliapp.Settings)) def test_calls_add_settings_only_in_run(self): @@ -56,7 +56,7 @@ foo = Foo() self.assertFalse('foo' in foo.settings) foo.run(args=[]) - self.assert_('foo' in foo.settings) + self.assertTrue('foo' in foo.settings) def test_run_uses_string_list_options_only_once(self): @@ -81,7 +81,7 @@ self.app.setup_logging = setup self.app.process_args = lambda args: None self.app.run([]) - self.assert_(self.called) + self.assertTrue(self.called) def test_run_sets_progname_from_sysargv0(self): self.app.process_args = lambda args: None @@ -177,7 +177,7 @@ self.app.process_inputs = process_inputs self.app.process_args([]) - self.assert_(self.called) + self.assertTrue(self.called) def test_process_inputs_calls_process_input_for_each_arg(self): self.args = [] @@ -201,7 +201,7 @@ def test_open_input_opens_file(self): f = self.app.open_input('/dev/null') - self.assert_(isinstance(f, file)) + self.assertTrue(isinstance(f, file)) self.assertEqual(getattr(f, 'mode'), 'r') def test_open_input_opens_file_in_binary_mode_when_requested(self): @@ -216,7 +216,7 @@ def open_input(name): self.called = name - return StringIO.StringIO('') + return io.StringIO('') self.app.open_input = open_input self.app.process_input('foo') @@ -228,7 +228,7 @@ def close(): self.closed = True - f = StringIO.StringIO('') + f = io.StringIO('') f.close = close def open_input(name): @@ -246,7 +246,7 @@ class Foo(cliapp.Application): def open_input(self, name, mode=None): - return StringIO.StringIO(''.join('%s%d\n' % (name, i) + return io.StringIO(''.join('%s%d\n' % (name, i) for i in range(2))) def process_input_line(self, name, line): @@ -262,7 +262,7 @@ class Foo(cliapp.Application): def open_input(self, name, mode=None): - return StringIO.StringIO(''.join('%s%d\n' % (name, i) + return io.StringIO(''.join('%s%d\n' % (name, i) for i in range(2))) def process_input_line(self, name, line): @@ -280,30 +280,30 @@ def raise_error(args): raise cliapp.AppException('xxx') self.app.process_args = raise_error - f = StringIO.StringIO() + f = io.StringIO() self.assertRaises(SystemExit, self.app.run, [], stderr=f, log=devnull) - self.assert_('xxx' in f.getvalue()) + self.assertTrue('xxx' in f.getvalue()) def test_run_prints_out_stack_trace_for_not_appexception(self): def raise_error(args): raise Exception('xxx') self.app.process_args = raise_error - f = StringIO.StringIO() + f = io.StringIO() self.assertRaises(SystemExit, self.app.run, [], stderr=f, log=devnull) - self.assert_('Traceback' in f.getvalue()) + self.assertTrue('Traceback' in f.getvalue()) def test_run_raises_systemexit_for_systemexit(self): def raise_error(args): raise SystemExit(123) self.app.process_args = raise_error - f = StringIO.StringIO() + f = io.StringIO() self.assertRaises(SystemExit, self.app.run, [], stderr=f, log=devnull) def test_run_raises_systemexit_for_keyboardint(self): def raise_error(args): raise KeyboardInterrupt() self.app.process_args = raise_error RefactoringTool: Refactored ./cliapp/app.py RefactoringTool: No changes to ./cliapp/__init__.py RefactoringTool: Files that were modified: RefactoringTool: ./test-plugins/wrongversion_plugin.py RefactoringTool: ./test-plugins/hello_plugin.py RefactoringTool: ./setup.py RefactoringTool: ./example5.py RefactoringTool: ./example4.py RefactoringTool: ./example3.py RefactoringTool: ./example2.py RefactoringTool: ./example.py RefactoringTool: ./doc/conf.py RefactoringTool: ./cliapp/version.py RefactoringTool: ./cliapp/util.py RefactoringTool: ./cliapp/settings_tests.py RefactoringTool: ./cliapp/settings.py RefactoringTool: ./cliapp/runcmd_tests.py RefactoringTool: ./cliapp/runcmd.py RefactoringTool: ./cliapp/pluginmgr_tests.py RefactoringTool: ./cliapp/pluginmgr.py RefactoringTool: ./cliapp/plugin_tests.py RefactoringTool: ./cliapp/plugin.py RefactoringTool: ./cliapp/hookmgr_tests.py RefactoringTool: ./cliapp/hookmgr.py RefactoringTool: ./cliapp/hook_tests.py RefactoringTool: ./cliapp/hook.py RefactoringTool: ./cliapp/genman.py RefactoringTool: ./cliapp/fmt_tests.py RefactoringTool: ./cliapp/fmt.py RefactoringTool: ./cliapp/app_tests.py RefactoringTool: ./cliapp/app.py RefactoringTool: ./cliapp/__init__.py - f = StringIO.StringIO() + f = io.StringIO() self.assertRaises(SystemExit, self.app.run, [], stderr=f, log=devnull) @@ -317,7 +317,7 @@ def setUp(self): self.app = DummySubcommandApp() - self.trash = StringIO.StringIO() + self.trash = io.StringIO() def test_lists_subcommands(self): self.assertEqual(self.app._subcommand_methodnames(), ['cmd_foo']) @@ -336,7 +336,7 @@ def test_calls_subcommand_method(self): self.app.run(['foo'], stderr=self.trash, log=devnull) - self.assert_(self.app.foo_called) + self.assertTrue(self.app.foo_called) def test_calls_subcommand_method_via_alias(self): self.bar_called = False --- ./cliapp/app.py (original) +++ ./cliapp/app.py (refactored) @@ -20,7 +20,7 @@ import logging import logging.handlers import os -import StringIO +import io import sys import traceback import platform @@ -51,7 +51,7 @@ '''Like RotatingFileHandler, but set permissions of new files.''' - def __init__(self, filename, perms=0600, *args, **kwargs): + def __init__(self, filename, perms=0o600, *args, **kwargs): self._perms = perms logging.handlers.RotatingFileHandler.__init__(self, filename, *args, **kwargs) @@ -189,24 +189,24 @@ self.process_args(args) self.cleanup() self.disable_plugins() - except cliapp.UnknownConfigVariable, e: # pragma: no cover + except cliapp.UnknownConfigVariable as e: # pragma: no cover stderr.write('ERROR: %s\n' % str(e)) sys.exit(1) except cliapp.MalformedYamlConfig as e: # pragma: no cover stderr.write('ERROR: %s\n' % str(e)) sys.exit(1) - except AppException, e: + except AppException as e: log(traceback.format_exc()) stderr.write('ERROR: %s\n' % str(e)) sys.exit(1) - except SystemExit, e: + except SystemExit as e: if e.code is not None and type(e.code) != int: log(str(e)) stderr.write('ERROR: %s\n' % str(e)) sys.exit(e.code if type(e.code) == int else 1) - except KeyboardInterrupt, e: + except KeyboardInterrupt as e: sys.exit(255) - except IOError, e: # pragma: no cover + except IOError as e: # pragma: no cover if e.errno == errno.EPIPE and e.filename is None: # We're writing to stdout, and it broke. This almost always # happens when we're being piped to less, and the user quits @@ -216,14 +216,14 @@ log(traceback.format_exc()) stderr.write('ERROR: %s\n' % str(e)) sys.exit(1) - except OSError, e: # pragma: no cover + except OSError as e: # pragma: no cover log(traceback.format_exc()) if hasattr(e, 'filename') and e.filename: stderr.write('ERROR: %s: %s\n' % (e.filename, e.strerror)) else: stderr.write('ERROR: %s\n' % e.strerror) sys.exit(1) - except BaseException, e: # pragma: no cover + except BaseException as e: # pragma: no cover log(traceback.format_exc()) stderr.write(traceback.format_exc()) sys.exit(1) @@ -497,7 +497,7 @@ for name in os.environ: logging.debug('environment: %s=%s', name, os.environ[name]) cp = self.settings.as_cp() - f = StringIO.StringIO() + f = io.StringIO() cp.write(f) logging.debug('Config:\n%s', f.getvalue()) logging.debug('Python version: %s', sys.version) + sed -i 's|'\''w'\'', 0|'\''w'\''|' cliapp/app.py + exit 0 Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.35752 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd python3-module-cliapp-1.20160724 + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2' + export CFLAGS + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2' + export CXXFLAGS + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2' + export FFLAGS + /usr/bin/python3 setup.py build running build running build_py creating build creating build/lib creating build/lib/cliapp copying cliapp/app.py -> build/lib/cliapp copying cliapp/version.py -> build/lib/cliapp copying cliapp/util.py -> build/lib/cliapp copying cliapp/settings_tests.py -> build/lib/cliapp copying cliapp/settings.py -> build/lib/cliapp copying cliapp/runcmd_tests.py -> build/lib/cliapp copying cliapp/runcmd.py -> build/lib/cliapp copying cliapp/pluginmgr_tests.py -> build/lib/cliapp copying cliapp/pluginmgr.py -> build/lib/cliapp copying cliapp/plugin_tests.py -> build/lib/cliapp copying cliapp/plugin.py -> build/lib/cliapp copying cliapp/hookmgr_tests.py -> build/lib/cliapp copying cliapp/hookmgr.py -> build/lib/cliapp copying cliapp/hook_tests.py -> build/lib/cliapp copying cliapp/hook.py -> build/lib/cliapp copying cliapp/genman.py -> build/lib/cliapp copying cliapp/fmt_tests.py -> build/lib/cliapp copying cliapp/fmt.py -> build/lib/cliapp copying cliapp/app_tests.py -> build/lib/cliapp copying cliapp/__init__.py -> build/lib/cliapp + make -j8 make -C doc html make[1]: Entering directory '/usr/src/RPM/BUILD/python3-module-cliapp-1.20160724/doc' sphinx-build-3 -b html -d _build/doctrees . _build/html Traceback (most recent call last): File "/usr/lib64/python3/site-packages/pkg_resources/__init__.py", line 568, in _build_master ws.require(__requires__) File "/usr/lib64/python3/site-packages/pkg_resources/__init__.py", line 886, in require needed = self.resolve(parse_requirements(requirements)) File "/usr/lib64/python3/site-packages/pkg_resources/__init__.py", line 777, in resolve raise VersionConflict(dist, req).with_context(dependent_req) pkg_resources.ContextualVersionConflict: (MarkupSafe 2.0.1 (/usr/lib64/python3/site-packages), Requirement.parse('MarkupSafe<2.0'), {'Sphinx'}) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/bin/sphinx-build-3", line 33, in sys.exit(load_entry_point('Sphinx==4.0.1.dev20210517', 'console_scripts', 'sphinx-build')()) File "/usr/bin/sphinx-build-3", line 25, in importlib_load_entry_point return next(matches).load() File "/usr/lib64/python3.9/importlib/metadata.py", line 77, in load module = import_module(match.group('module')) File "/usr/lib64/python3.9/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1030, in _gcd_import File "", line 1007, in _find_and_load File "", line 986, in _find_and_load_unlocked File "", line 680, in _load_unlocked File "", line 855, in exec_module File "", line 228, in _call_with_frames_removed File "/usr/lib/python3/site-packages/sphinx/cmd/build.py", line 25, in from sphinx.application import Sphinx File "/usr/lib/python3/site-packages/sphinx/application.py", line 41, in from sphinx.registry import SphinxComponentRegistry File "/usr/lib/python3/site-packages/sphinx/registry.py", line 24, in from pkg_resources import iter_entry_points File "/usr/lib64/python3/site-packages/pkg_resources/__init__.py", line 3243, in def _initialize_master_working_set(): File "/usr/lib64/python3/site-packages/pkg_resources/__init__.py", line 3226, in _call_aside f(*args, **kwargs) File "/usr/lib64/python3/site-packages/pkg_resources/__init__.py", line 3255, in _initialize_master_working_set working_set = WorkingSet._build_master() File "/usr/lib64/python3/site-packages/pkg_resources/__init__.py", line 570, in _build_master return cls._build_from_requirements(__requires__) File "/usr/lib64/python3/site-packages/pkg_resources/__init__.py", line 583, in _build_from_requirements dists = ws.resolve(reqs, Environment()) File "/usr/lib64/python3/site-packages/pkg_resources/__init__.py", line 772, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'MarkupSafe<2.0' distribution was not found and is required by Sphinx make[1]: *** [Makefile:34: html] Error 1 make[1]: Leaving directory '/usr/src/RPM/BUILD/python3-module-cliapp-1.20160724/doc' make: *** [Makefile:19: all] Error 2 error: Bad exit status from /usr/src/tmp/rpm-tmp.35752 (%build) RPM build errors: Bad exit status from /usr/src/tmp/rpm-tmp.35752 (%build) Command exited with non-zero status 1 12.04user 0.43system 0:12.57elapsed 99%CPU (0avgtext+0avgdata 46040maxresident)k 0inputs+0outputs (0major+55625minor)pagefaults 0swaps hsh-rebuild: rebuild of `python3-module-cliapp-1.20160724-alt3.src.rpm' failed. Command exited with non-zero status 1 27.79user 8.33system 0:39.00elapsed 92%CPU (0avgtext+0avgdata 108660maxresident)k 0inputs+0outputs (0major+481478minor)pagefaults 0swaps