aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Erdmann <dywi@mailerd.de>2013-08-02 12:17:52 +0200
committerAndré Erdmann <dywi@mailerd.de>2013-08-02 12:17:52 +0200
commit43ab1d2328ee2968dc0d5076f33629f859e12718 (patch)
treea32a03e2601c5adce1d9ccd0a3ef2b4e599d2dd9 /roverlay/versiontuple.py
parentfiles/hooks/git-commit-overlay: don't exit (diff)
downloadR_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.py30
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__ (...) ----