diff options
author | André Erdmann <dywi@mailerd.de> | 2013-08-02 12:17:52 +0200 |
---|---|---|
committer | André Erdmann <dywi@mailerd.de> | 2013-08-02 12:17:52 +0200 |
commit | 43ab1d2328ee2968dc0d5076f33629f859e12718 (patch) | |
tree | a32a03e2601c5adce1d9ccd0a3ef2b4e599d2dd9 /roverlay/versiontuple.py | |
parent | files/hooks/git-commit-overlay: don't exit (diff) | |
download | R_overlay-43ab1d2328ee2968dc0d5076f33629f859e12718.tar.gz R_overlay-43ab1d2328ee2968dc0d5076f33629f859e12718.tar.bz2 R_overlay-43ab1d2328ee2968dc0d5076f33629f859e12718.zip |
support suffixes $PV when importing ebuilds
Selfdep validation may fail/ignore when dealing with import ebuilds with a
version suffix ("_pre..." etc.).
Diffstat (limited to 'roverlay/versiontuple.py')
-rw-r--r-- | roverlay/versiontuple.py | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/roverlay/versiontuple.py b/roverlay/versiontuple.py index 6586088..579471f 100644 --- a/roverlay/versiontuple.py +++ b/roverlay/versiontuple.py @@ -67,9 +67,9 @@ def pkgver_decorator ( func ): class VersionTuple ( tuple ): - def __init__ ( self, *args, **kwargs ): - super ( VersionTuple, self ).__init__ ( *args, **kwargs ) - # --- end of __init__ (...) --- + def __new__ ( cls, gen_tuple, *args, **kwargs ): + return super ( VersionTuple, cls ).__new__ ( cls, gen_tuple ) + # --- end of __new__ (...) --- def get_comparator ( self, mode ): """Returns a function "this ~ other" that returns @@ -228,4 +228,28 @@ class IntVersionTuple ( VersionTuple ): return NotImplemented # --- end of __gt__ (...) --- + def __str__ ( self ): + return '.'.join ( str(k) for k in self ) + # --- end of __str__ ( self ) + # --- end of IntVersionTuple --- + +class SuffixedIntVersionTuple ( VersionTuple ): + # inherit VersionTuple: does not implement comparision functions + + def __init__ ( self, gen_tuple, suffix ): + super ( SuffixedIntVersionTuple, self ).__init__ ( gen_tuple ) + self.suffix = suffix + # --- end of __init__ (...) --- + + def get_suffix_str ( self ): + ret = str ( self.suffix ) + if not ret or ret[0] == '_': + return ret + else: + return '_' + ret + # --- end of get_suffix_str (...) --- + + def __str__ ( self ): + return '.'.join ( str(k) for k in self ) + self.get_suffix_str() + # --- end of __str__ (...) ---- |