summaryrefslogtreecommitdiff
path: root/pym
diff options
context:
space:
mode:
authorfuzzyray <fuzzyray@gentoo.org>2010-01-06 15:54:37 +0000
committerfuzzyray <fuzzyray@gentoo.org>2010-01-06 15:54:37 +0000
commit2212da8d45f122c17fce56ed0c1bc57d4387f95c (patch)
tree125b3a08ba1e9e84902ee5dfd3b24bdb78d304c2 /pym
parenta77e5086c73265171363b1389c61c6ee8c4ac520 (diff)
downloadgentoolkit-2212da8d45f122c17fce56ed0c1bc57d4387f95c.tar.gz
Merge genscripts revision 144, contains fixes for Bug 299260
svn path=/trunk/gentoolkit/; revision=729
Diffstat (limited to 'pym')
-rw-r--r--pym/gentoolkit/atom.py9
-rw-r--r--pym/gentoolkit/cpv.py4
-rw-r--r--pym/gentoolkit/dependencies.py8
-rw-r--r--pym/gentoolkit/equery/depends.py2
-rw-r--r--pym/gentoolkit/test/test_atom.py9
5 files changed, 15 insertions, 17 deletions
diff --git a/pym/gentoolkit/atom.py b/pym/gentoolkit/atom.py
index ac49dab..3523d60 100644
--- a/pym/gentoolkit/atom.py
+++ b/pym/gentoolkit/atom.py
@@ -68,14 +68,7 @@ class Atom(portage.dep.Atom, CPV):
# Make operator compatible with intersects
if self.operator is None:
- self.operator = '='
-
- # Make slot a tuple if defined
- # pylint screwup:
- # E1101: 75:Atom.__init__: Instance of 'tuple' has no 'split' member
- # pylint: disable-msg=E1101
- if self.slot is not None:
- self.slot = tuple(sorted(self.slot.split(',')))
+ self.operator = ''
self.cpv = CPV(self.cpv)
diff --git a/pym/gentoolkit/cpv.py b/pym/gentoolkit/cpv.py
index e5b4a48..9b3c2d7 100644
--- a/pym/gentoolkit/cpv.py
+++ b/pym/gentoolkit/cpv.py
@@ -36,11 +36,10 @@ class CPV(object):
'sys-apps/portage-2.2-r1'
>>> # An 'rc' (release candidate) version is less than non 'rc' version:
... CPV('sys-apps/portage-2') > CPV('sys-apps/portage-2_rc10')
+ True
"""
def __init__(self, cpv):
- if not cpv:
- raise errors.GentoolkitInvalidCPV(cpv)
self.scpv = cpv
values = split_cpv(cpv)
@@ -131,6 +130,7 @@ def split_cpv(cpv):
Inlined from helpers because of circular imports.
+ @todo: this function is slow and accepts some crazy things for cpv
@type cpv: str
@param cpv: pkg, cat/pkg, pkg-ver, cat/pkg-ver, atom or regex
@rtype: tuple
diff --git a/pym/gentoolkit/dependencies.py b/pym/gentoolkit/dependencies.py
index ccc241e..9ff7f90 100644
--- a/pym/gentoolkit/dependencies.py
+++ b/pym/gentoolkit/dependencies.py
@@ -303,8 +303,12 @@ class Dependencies(CPV):
use_conditional = tok[:-1]
continue
if isinstance(tok, list):
- asdf = self._parser(tok, use_conditional, depth=depth+1)
- result.extend(asdf)
+ sub_r = self._parser(tok, use_conditional, depth=depth+1)
+ result.extend(sub_r)
+ use_conditional = None
+ continue
+ if tok[0] == '!':
+ # We're not interested in blockers
continue
atom = Atom(tok)
if use_conditional is not None:
diff --git a/pym/gentoolkit/equery/depends.py b/pym/gentoolkit/equery/depends.py
index 18e08af..759ecba 100644
--- a/pym/gentoolkit/equery/depends.py
+++ b/pym/gentoolkit/equery/depends.py
@@ -81,7 +81,7 @@ class DependPrinter(object):
else:
formatted_dep = mdep.operator + str(mdep.cpv)
if mdep.slot:
- formatted_dep += pp.emph(':') + pp.slot(','.join(mdep.slot))
+ formatted_dep += pp.emph(':') + pp.slot(mdep.slot)
if mdep.use:
useflags = pp.useflag(','.join(mdep.use.tokens))
formatted_dep += (pp.emph('[') + useflags + pp.emph(']'))
diff --git a/pym/gentoolkit/test/test_atom.py b/pym/gentoolkit/test/test_atom.py
index ea85e2a..4a1568b 100644
--- a/pym/gentoolkit/test/test_atom.py
+++ b/pym/gentoolkit/test/test_atom.py
@@ -71,8 +71,8 @@ class TestGentoolkitAtom(unittest.TestCase):
# slots.
self.assertNotEqual2(Atom('cat/pkg:1'), Atom('cat/pkg'))
self.assertEqual2(Atom('cat/pkg:2'), Atom('cat/pkg:2'))
- self.assertEqual2(Atom('cat/pkg:2,1'), Atom('cat/pkg:2,1'))
- self.assertEqual2(Atom('cat/pkg:2,1'), Atom('cat/pkg:1,2'))
+ # http://dev.gentoo.org/~tanderson/pms/eapi-2-approved/pms.html#x1-190002.1.2
+ self.assertEqual2(Atom('cat/pkg:AZaz09+_.-'), Atom('cat/pkg:AZaz09+_.-'))
for lesser, greater in (('0.1', '1'), ('1', '1-r1'), ('1.1', '1.2')):
self.assertTrue(Atom('=d/b-%s' % lesser) <
Atom('=d/b-%s' % greater),
@@ -126,8 +126,9 @@ class TestGentoolkitAtom(unittest.TestCase):
('=cat/pkg-1-r1*', '<cat/pkg-1-r1', False),
('=cat/pkg-1*', '>cat/pkg-2', False),
('>=cat/pkg-8.4', '=cat/pkg-8.3.4*', False),
- ('cat/pkg::gentoo', 'cat/pkg', True),
- ('cat/pkg::gentoo', 'cat/pkg::foo', False),
+ # Repos not yet supported by Portage
+ #('cat/pkg::gentoo', 'cat/pkg', True),
+ #('cat/pkg::gentoo', 'cat/pkg::foo', False),
('=sys-devel/gcc-4.1.1-r3', '=sys-devel/gcc-3.3*', False),
('=sys-libs/db-4*', '~sys-libs/db-4.3.29', True),
]: