os.environ["ROOT"] = sys.argv[2]
args = sys.argv[2:]
- if args and not isinstance(args[0], unicode):
+ if args and sys.hexversion < 0x3000000 and not isinstance(args[0], unicode):
for i in range(len(args)):
args[i] = portage._unicode_decode(args[i])
import portage
from portage import os
from portage import _encodings
+from portage import _unicode_decode
from portage import _unicode_encode
import fcntl
import codecs
def _set_returncode(self, wait_retval):
SubProcess._set_returncode(self, wait_retval)
if self.returncode == os.EX_OK:
- metadata_lines = ''.join(unicode(chunk,
+ metadata_lines = ''.join(_unicode_decode(chunk,
encoding=_encodings['repo.content'], errors='replace')
for chunk in self._raw_metadata).splitlines()
if len(portage.auxdbkeys) != len(metadata_lines):
counters.blocks += 1
if x.satisfied:
counters.blocks_satisfied += 1
- resolved = portage.key_expand(
+ resolved = portage.dep_expand(
str(x.atom).lstrip("!"), mydb=vardb, settings=pkgsettings)
if "--columns" in self._frozen_config.myopts and "--quiet" in self._frozen_config.myopts:
- addl += " " + colorize(blocker_style, resolved)
+ addl += " " + colorize(blocker_style, str(resolved))
else:
addl = "[%s %s] %s%s" % \
(colorize(blocker_style, "blocks"),
- addl, indent, colorize(blocker_style, resolved))
+ addl, indent, colorize(blocker_style, str(resolved)))
block_parents = self._dynamic_config._blocker_parents.parent_nodes(x)
block_parents = set([pnode[2] for pnode in block_parents])
block_parents = ", ".join(block_parents)
if myaction is None and myoptions.deselect is True:
myaction = 'deselect'
- if myargs and not isinstance(myargs[0], unicode):
+ if myargs and sys.hexversion < 0x3000000 and \
+ not isinstance(myargs[0], unicode):
for i in range(len(myargs)):
myargs[i] = portage._unicode_decode(myargs[i])
def _unicode_encode(s, encoding=_encodings['content'],
errors='backslashreplace'):
- if isinstance(s, unicode):
+ if sys.hexversion >= 0x3000000:
+ if isinstance(s, str):
+ s = s.encode(encoding, errors)
+ elif isinstance(s, unicode):
s = s.encode(encoding, errors)
return s
def _unicode_decode(s, encoding=_encodings['content'], errors='replace'):
- if not isinstance(s, unicode):
- if sys.hexversion < 0x3000000:
- if isinstance(s, basestring):
- s = unicode(s, encoding=encoding, errors=errors)
+ if isinstance(s, bytes):
+ if sys.hexversion >= 0x3000000:
+ s = str(s, encoding=encoding, errors=errors)
else:
- if isinstance(s, bytes):
- s = unicode(s, encoding=encoding, errors=errors)
+ s = unicode(s, encoding=encoding, errors=errors)
return s
class _unicode_func_wrapper(object):
getCPFromCPV = cpv_getkey
def key_expand(mykey, mydb=None, use_cache=1, settings=None):
+ """This is deprecated because it just returns the first match instead of
+ raising AmbiguousPackageName like cpv_expand does."""
+ warnings.warn("portage.key_expand() is deprecated", DeprecationWarning)
mysplit=mykey.split("/")
if settings is None:
settings = globals()["settings"]
if hasattr(mydb, "cp_list"):
for x in mydb.categories:
if mydb.cp_list(x+"/"+mykey,use_cache=use_cache):
- return x+"/"+mykey
+ return dep.Atom(x + "/" + mykey)
if mykey in virts_p:
return(virts_p[mykey][0])
- return "null/"+mykey
+ return dep.Atom("null/" + mykey)
elif mydb:
if hasattr(mydb, "cp_list"):
if not mydb.cp_list(mykey, use_cache=use_cache) and \
virts and mykey in virts:
return virts[mykey][0]
+ if not isinstance(mykey, dep.Atom):
+ mykey = dep.Atom(mykey)
return mykey
def cpv_expand(mycpv, mydb=None, use_cache=1, settings=None):
import codecs
import logging
import stat
+import warnings
def _src_uri_validate(cpv, eapi, src_uri):
"""
return "/".join([self.portroot, mysplit[0], psplit[0], mysplit[1]])+".ebuild"
def resolve_specific(self, myspec):
+ warnings.warn(
+ "portage.dbapi.porttree.portagetree.resolve_specific() is deprecated",
+ DeprecationWarning)
cps = catpkgsplit(myspec)
if not cps:
return None
import re, shutil, stat, errno, copy, subprocess
import logging
import sys
+import warnings
try:
import cPickle as pickle
return self.dbapi.cp_all()
def exists_specific_cat(self, cpv, use_cache=1):
+ warnings.warn(
+ "portage.dbapi.vartree.vartree.exists_specific_cat() is deprecated",
+ DeprecationWarning)
cpv = key_expand(cpv, mydb=self.dbapi, use_cache=use_cache,
settings=self.settings)
a = catpkgsplit(cpv)
return self.getpath(fullpackage, filename=package+".ebuild")
def getnode(self, mykey, use_cache=1):
+ warnings.warn(
+ "portage.dbapi.vartree.vartree.getnode() is deprecated",
+ DeprecationWarning)
mykey = key_expand(mykey, mydb=self.dbapi, use_cache=use_cache,
settings=self.settings)
if not mykey:
def hasnode(self, mykey, use_cache):
"""Does the particular node (cat/pkg key) exist?"""
+ warnings.warn(
+ "portage.dbapi.vartree.vartree.hadnode() is deprecated",
+ DeprecationWarning)
mykey = key_expand(mykey, mydb=self.dbapi, use_cache=use_cache,
settings=self.settings)
mysplit = catsplit(mykey)
#
import re, sys
-import weakref
+import warnings
from itertools import chain
import portage.exception
from portage.exception import InvalidData, InvalidAtom
pass
# Fall back to legacy code for backward compatibility.
+ warnings.warn(_("%s is deprecated, use %s instead") % \
+ ('portage.dep.get_operator()', 'portage.dep.Atom.operator'),
+ DeprecationWarning)
operator = None
if mydep:
mydep = remove_slot(mydep)
pass
# Fall back to legacy code for backward compatibility.
+ warnings.warn(_("%s is deprecated, use %s instead") % \
+ ('portage.dep.dep_getcpv()', 'portage.dep.Atom.cpv'),
+ DeprecationWarning)
mydep_orig = mydep
if mydep:
mydep = remove_slot(mydep)
pass
# Fall back to legacy code for backward compatibility.
+ warnings.warn(_("%s is deprecated, use %s instead") % \
+ ('portage.dep.dep_getkey()', 'portage.dep.Atom.cp'),
+ DeprecationWarning)
mydep = dep_getcpv(mydep)
if mydep and isspecific(mydep):
mysplit = catpkgsplit(mydep)
@rtype: List
@return: A unique list of package atoms that match the given package atom
"""
- matches = []
- for x in mylist:
- if not isinstance(x, Atom):
- x = Atom(x)
- if match_from_list(x, [mypkg]):
- if x not in matches:
- matches.append(x)
- return matches
+ return [ x for x in set(mylist) if match_from_list(x, [mypkg]) ]
def best_match_to_list(mypkg, mylist):
"""