Remove the native_kwargs wrapper and all uses of it. As pointed out by Zac Medico, this was only needed for Python < 2.6.5, and we no longer support those versions for quite some time. --- bin/portageq | 2 +- pym/_emerge/MiscFunctionsProcess.py | 3 +-- pym/_emerge/actions.py | 2 +- pym/_emerge/depgraph.py | 12 ++++-------- pym/_emerge/resolver/output.py | 3 +-- pym/portage/__init__.py | 9 --------- pym/portage/dbapi/porttree.py | 4 ++-- pym/portage/dbapi/vartree.py | 3 +-- pym/portage/news.py | 3 +-- pym/portage/package/ebuild/doebuild.py | 6 +++--- pym/portage/repository/config.py | 2 +- pym/portage/sync/modules/cvs/cvs.py | 4 ++-- pym/portage/sync/modules/git/git.py | 4 ++-- pym/portage/sync/modules/rsync/rsync.py | 4 ++-- pym/portage/sync/modules/svn/svn.py | 6 +++--- pym/portage/sync/modules/webrsync/webrsync.py | 2 +- pym/portage/util/__init__.py | 2 +- pym/portage/util/configparser.py | 5 ++--- repoman/pym/repoman/modules/scan/ebuild/checks.py | 2 +- 19 files changed, 30 insertions(+), 48 deletions(-)
diff --git a/bin/portageq b/bin/portageq index 832d004..d645635 100755 --- a/bin/portageq +++ b/bin/portageq @@ -1281,7 +1281,7 @@ def add_pquery_arguments(parser): kwargs["help"] = opt_info["help"] except KeyError: pass - arg_group.add_argument(*pargs, **portage._native_kwargs(kwargs)) + arg_group.add_argument(*pargs, **kwargs) def usage(argv): diff --git a/pym/_emerge/MiscFunctionsProcess.py b/pym/_emerge/MiscFunctionsProcess.py index b7f5892..99cf598 100644 --- a/pym/_emerge/MiscFunctionsProcess.py +++ b/pym/_emerge/MiscFunctionsProcess.py @@ -40,8 +40,7 @@ class MiscFunctionsProcess(AbstractEbuildProcess): # think this is a real phase. phase_backup = self.settings.pop("EBUILD_PHASE", None) try: - return spawn(" ".join(args), self.settings, - **portage._native_kwargs(kwargs)) + return spawn(" ".join(args), self.settings, **kwargs) finally: if phase_backup is not None: self.settings["EBUILD_PHASE"] = phase_backup diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py index 59626ad..2ca7902 100644 --- a/pym/_emerge/actions.py +++ b/pym/_emerge/actions.py @@ -2378,7 +2378,7 @@ def load_emerge_config(emerge_config=None, **kargs): if v and v.strip(): kwargs[k] = v emerge_config.trees = portage.create_trees(trees=emerge_config.trees, - **portage._native_kwargs(kwargs)) + **kwargs) for root_trees in emerge_config.trees.values(): settings = root_trees["vartree"].settings diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index cfaafa3..f78f08d 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -4175,8 +4175,7 @@ class depgraph(object): pargs, kwargs = item kwargs = kwargs.copy() kwargs['collect_use_changes'] = True - if not self._show_unsatisfied_dep(*pargs, - **portage._native_kwargs(kwargs)): + if not self._show_unsatisfied_dep(*pargs, **kwargs): remaining_items.append(item) if len(remaining_items) != len(self._dynamic_config._unsatisfied_deps_for_display): self._dynamic_config._unsatisfied_deps_for_display = remaining_items @@ -4327,8 +4326,7 @@ class depgraph(object): not been scheduled for replacement. """ kwargs["trees"] = self._dynamic_config._graph_trees - return self._select_atoms_highest_available(*pargs, - **portage._native_kwargs(kwargs)) + return self._select_atoms_highest_available(*pargs, **kwargs) def _select_atoms_highest_available(self, root, depstring, myuse=None, parent=None, strict=True, trees=None, priority=None): @@ -8511,8 +8509,7 @@ class depgraph(object): writemsg("\n", noiselevel=-1) for pargs, kwargs in self._dynamic_config._unsatisfied_deps_for_display: - self._show_unsatisfied_dep(*pargs, - **portage._native_kwargs(kwargs)) + self._show_unsatisfied_dep(*pargs, **kwargs) if self._dynamic_config._buildpkgonly_deps_unsatisfied: self._show_merge_list() @@ -8879,8 +8876,7 @@ class depgraph(object): try: for pargs, kwargs in self._dynamic_config._unsatisfied_deps_for_display: self._show_unsatisfied_dep( - *pargs, check_autounmask_breakage=True, - **portage._native_kwargs(kwargs)) + *pargs, check_autounmask_breakage=True, **kwargs) except self._autounmask_breakage: return True return False diff --git a/pym/_emerge/resolver/output.py b/pym/_emerge/resolver/output.py index 7c70a3e..0ac00e0 100644 --- a/pym/_emerge/resolver/output.py +++ b/pym/_emerge/resolver/output.py @@ -316,8 +316,7 @@ class Display(object): kwargs["myrepo"] = pkg.repo myfilesdict = None try: - myfilesdict = db.getfetchsizes(pkg.cpv, - **portage._native_kwargs(kwargs)) + myfilesdict = db.getfetchsizes(pkg.cpv, **kwargs) except InvalidDependString as e: # FIXME: validate SRC_URI earlier depstr, = db.aux_get(pkg.cpv, diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 1c85042..0612e22 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -211,15 +211,6 @@ else: _native_string = _unicode_encode -if sys.hexversion >= 0x20605f0: - def _native_kwargs(kwargs): - return kwargs -else: - # Avoid "TypeError: keywords must be strings" issue triggered - # by unicode_literals: http://bugs.python.org/issue4978 - def _native_kwargs(kwargs): - return dict((_native_string(k), v) for k, v in kwargs.iteritems()) - class _unicode_func_wrapper(object): """ Wraps a function, converts arguments from unicode to bytes, diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py index 1f4374e..a3254d0 100644 --- a/pym/portage/dbapi/porttree.py +++ b/pym/portage/dbapi/porttree.py @@ -213,10 +213,10 @@ class portdbapi(dbapi): # portage group. depcachedir_unshared = True else: - cache_kwargs.update(portage._native_kwargs({ + cache_kwargs.update({ 'gid' : portage_gid, 'perms' : 0o664 - })) + }) # If secpass < 1, we don't want to write to the cache # since then we won't be able to apply group permissions diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index 6209a86..bfbe356 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -5181,8 +5181,7 @@ class dblink(object): else: kwargs['mode'] = 'w' kwargs['encoding'] = _encodings['repo.content'] - write_atomic(os.path.join(self.dbdir, fname), data, - **portage._native_kwargs(kwargs)) + write_atomic(os.path.join(self.dbdir, fname), data, **kwargs) def getelements(self,ename): if not os.path.exists(self.dbdir+"/"+ename): diff --git a/pym/portage/news.py b/pym/portage/news.py index ea1b947..177f9db 100644 --- a/pym/portage/news.py +++ b/pym/portage/news.py @@ -246,8 +246,7 @@ class NewsItem(object): for values in self.restrictions.values(): any_match = False for restriction in values: - if restriction.checkRestriction( - **portage._native_kwargs(kwargs)): + if restriction.checkRestriction(**kwargs): any_match = True if not any_match: all_match = False diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py index d926e03..26e6123 100644 --- a/pym/portage/package/ebuild/doebuild.py +++ b/pym/portage/package/ebuild/doebuild.py @@ -166,7 +166,7 @@ def _doebuild_spawn(phase, settings, actionmap=None, **kwargs): settings['EBUILD_PHASE'] = phase try: - return spawn(cmd, settings, **portage._native_kwargs(kwargs)) + return spawn(cmd, settings, **kwargs) finally: settings.pop('EBUILD_PHASE', None) @@ -1633,14 +1633,14 @@ def spawn(mystring, mysettings, debug=False, free=False, droppriv=False, try: if keywords.get("returnpid"): return spawn_func(mystring, env=mysettings.environ(), - **portage._native_kwargs(keywords)) + **keywords) proc = EbuildSpawnProcess( background=False, args=mystring, scheduler=SchedulerInterface(portage._internal_caller and global_event_loop() or EventLoop(main=False)), spawn_func=spawn_func, - settings=mysettings, **portage._native_kwargs(keywords)) + settings=mysettings, **keywords) proc.start() proc.wait() diff --git a/pym/portage/repository/config.py b/pym/portage/repository/config.py index a23f4bd..0512057 100644 --- a/pym/portage/repository/config.py +++ b/pym/portage/repository/config.py @@ -329,7 +329,7 @@ class RepoConfig(object): if self.disable_manifest: kwds['from_scratch'] = True kwds['find_invalid_path_char'] = self.find_invalid_path_char - return manifest.Manifest(*args, **portage._native_kwargs(kwds)) + return manifest.Manifest(*args, **kwds) def update(self, new_repo): """Update repository with options in another RepoConfig""" diff --git a/pym/portage/sync/modules/cvs/cvs.py b/pym/portage/sync/modules/cvs/cvs.py index 7b7908b..e202560 100644 --- a/pym/portage/sync/modules/cvs/cvs.py +++ b/pym/portage/sync/modules/cvs/cvs.py @@ -38,7 +38,7 @@ class CVSSync(NewBase): (portage._shell_quote(os.path.dirname(self.repo.location)), portage._shell_quote(cvs_root), portage._shell_quote(os.path.basename(self.repo.location)), portage._shell_quote(self.repo.module_specific_options["sync-cvs-repo"])), - **portage._native_kwargs(self.spawn_kwargs)) != os.EX_OK: + **self.spawn_kwargs) != os.EX_OK: msg = "!!! cvs checkout error; exiting." self.logger(self.xterm_titles, msg) writemsg_level(msg + "\n", noiselevel=-1, level=logging.ERROR) @@ -59,7 +59,7 @@ class CVSSync(NewBase): exitcode = portage.process.spawn_bash( "cd %s; exec cvs -z0 -q update -dP" % \ (portage._shell_quote(self.repo.location),), - **portage._native_kwargs(self.spawn_kwargs)) + **self.spawn_kwargs) if exitcode != os.EX_OK: msg = "!!! cvs update error; exiting." self.logger(self.xterm_titles, msg) diff --git a/pym/portage/sync/modules/git/git.py b/pym/portage/sync/modules/git/git.py index e6724f6..02eeb16 100644 --- a/pym/portage/sync/modules/git/git.py +++ b/pym/portage/sync/modules/git/git.py @@ -62,7 +62,7 @@ class GitSync(NewBase): exitcode = portage.process.spawn_bash("cd %s ; exec %s" % ( portage._shell_quote(self.repo.location), git_cmd), - **portage._native_kwargs(self.spawn_kwargs)) + **self.spawn_kwargs) if exitcode != os.EX_OK: msg = "!!! git clone error in %s" % self.repo.location self.logger(self.xterm_titles, msg) @@ -92,7 +92,7 @@ class GitSync(NewBase): exitcode = portage.process.spawn_bash("cd %s ; exec %s" % ( portage._shell_quote(self.repo.location), git_cmd), - **portage._native_kwargs(self.spawn_kwargs)) + **self.spawn_kwargs) if exitcode != os.EX_OK: msg = "!!! git pull error in %s" % self.repo.location self.logger(self.xterm_titles, msg) diff --git a/pym/portage/sync/modules/rsync/rsync.py b/pym/portage/sync/modules/rsync/rsync.py index e0f76b3..cf95835 100644 --- a/pym/portage/sync/modules/rsync/rsync.py +++ b/pym/portage/sync/modules/rsync/rsync.py @@ -438,7 +438,7 @@ class RsyncSync(NewBase): pids.extend(portage.process.spawn( command, returnpid=True, - **portage._native_kwargs(self.spawn_kwargs))) + **self.spawn_kwargs)) exitcode = os.waitpid(pids[0], 0)[1] if self.usersync_uid is not None: portage.util.apply_permissions(tmpservertimestampfile, @@ -522,7 +522,7 @@ class RsyncSync(NewBase): exitcode = None try: exitcode = portage.process.spawn(command, - **portage._native_kwargs(self.spawn_kwargs)) + **self.spawn_kwargs) finally: if exitcode is None: # interrupted diff --git a/pym/portage/sync/modules/svn/svn.py b/pym/portage/sync/modules/svn/svn.py index da38e6f..723beed 100644 --- a/pym/portage/sync/modules/svn/svn.py +++ b/pym/portage/sync/modules/svn/svn.py @@ -37,7 +37,7 @@ class SVNSync(NewBase): "cd %s; exec svn co %s ." % (portage._shell_quote(self.repo.location), portage._shell_quote(svn_root)), - **portage._native_kwargs(self.spawn_kwargs)) + **self.spawn_kwargs) if exitcode != os.EX_OK: msg = "!!! svn checkout error; exiting." self.logger(self.xterm_titles, msg) @@ -62,7 +62,7 @@ class SVNSync(NewBase): exitcode = portage.process.spawn_bash( "cd %s; exec svn update" % \ (portage._shell_quote(self.repo.location),), - **portage._native_kwargs(self.spawn_kwargs)) + **self.spawn_kwargs) if exitcode != os.EX_OK: msg = "!!! svn update error; exiting." self.logger(self.xterm_titles, msg) @@ -81,7 +81,7 @@ class SVNSync(NewBase): exitcode = portage.process.spawn_bash( "cd %s; exec svn upgrade" % (portage._shell_quote(self.repo.location),), - **portage._native_kwargs(self.spawn_kwargs)) + **self.spawn_kwargs) if exitcode != os.EX_OK: msg = "!!! svn upgrade error; exiting." self.logger(self.xterm_titles, msg) diff --git a/pym/portage/sync/modules/webrsync/webrsync.py b/pym/portage/sync/modules/webrsync/webrsync.py index 92208b5..3d79f45 100644 --- a/pym/portage/sync/modules/webrsync/webrsync.py +++ b/pym/portage/sync/modules/webrsync/webrsync.py @@ -41,7 +41,7 @@ class WebRsync(SyncBase): exitcode = portage.process.spawn_bash("%s" % \ (self.bin_command), - **portage._native_kwargs(self.spawn_kwargs)) + **self.spawn_kwargs) if exitcode != os.EX_OK: msg = "!!! emerge-webrsync error in %s" % self.repo.location self.logger(self.xterm_titles, msg) diff --git a/pym/portage/util/__init__.py b/pym/portage/util/__init__.py index 417fb98..c6d6a84 100644 --- a/pym/portage/util/__init__.py +++ b/pym/portage/util/__init__.py @@ -1285,7 +1285,7 @@ class atomic_ofstream(ObjectProxy): object.__setattr__(self, '_file', open_func(_unicode_encode(tmp_name, encoding=_encodings['fs'], errors='strict'), - mode=mode, **portage._native_kwargs(kargs))) + mode=mode, **kargs)) return except IOError as e: if canonical_path == filename: diff --git a/pym/portage/util/configparser.py b/pym/portage/util/configparser.py index fb1a351..c4c92a6 100644 --- a/pym/portage/util/configparser.py +++ b/pym/portage/util/configparser.py @@ -23,7 +23,6 @@ except ImportError: NoOptionError, ParsingError, RawConfigParser, SafeConfigParser) from portage import _encodings -from portage import _native_kwargs from portage import _unicode_encode @@ -66,12 +65,12 @@ def read_configs(parser, paths): # because it assumes that f.name is a native string rather # than binary when constructing error messages. kwargs = {source_kwarg: p} - read_file(f, **_native_kwargs(kwargs)) + read_file(f, **kwargs) finally: if f is not None: f.close() elif isinstance(p, io.StringIO): kwargs = {source_kwarg: "<io.StringIO>"} - read_file(p, **_native_kwargs(kwargs)) + read_file(p, **kwargs) else: raise TypeError("Unsupported type %r of element %r of 'paths' argument" % (type(p), p)) diff --git a/repoman/pym/repoman/modules/scan/ebuild/checks.py b/repoman/pym/repoman/modules/scan/ebuild/checks.py index fb3e019..15e2251 100644 --- a/repoman/pym/repoman/modules/scan/ebuild/checks.py +++ b/repoman/pym/repoman/modules/scan/ebuild/checks.py @@ -917,7 +917,7 @@ def checks_init(experimental_inherit=False): isinstance(v, type) and issubclass(v, LineCheck) and v not in _base_check_classes)), ( - InheritEclass(k, **portage._native_kwargs(kwargs)) + InheritEclass(k, **kwargs) for k, kwargs in _eclass_info.items()))) -- 2.8.3