@@ -97,78 +97,6 @@ def get_git_changeset():
9797__version__ = get_version (VERSION )
9898
9999
100- def _unsupported_function (func , current_version , accepted_versions ):
101- raise IncompatibleVersionException ("%s: %s is not one of %s" %
102- (func .__name__ ,
103- "." .join ([str (v ) for v in current_version ]),
104- list (accepted_versions )))
105-
106-
107- def _parse_version_string (version_string ):
108- original_version_string = version_string
109- comparisons = {
110- "=" : operator .eq ,
111- "!=" : operator .ne ,
112- "<" : operator .lt ,
113- ">" : operator .gt ,
114- "<=" : operator .le ,
115- ">=" : operator .ge
116- }
117-
118- # Determine the comparison function
119- comp_string = "="
120- if version_string [0 ] in ["<" , ">" , "=" , "!" ]:
121- offset = 1
122- if version_string [1 ] == "=" :
123- offset += 1
124-
125- comp_string = version_string [:offset ]
126- version_string = version_string [offset :]
127-
128- # Check if the version appears compatible
129- try :
130- int (version_string [0 ])
131- except ValueError :
132- raise InvalidVersionStringException (original_version_string )
133-
134- # String trailing info
135- version_string = re .split ("[a-zA-Z]" , version_string )[0 ]
136- if version_string [- 1 ] == '.' :
137- version_string = version_string [:- 1 ]
138- version = version_string .split ("." )
139-
140- # Pad length to 3
141- version += [0 ] * (3 - len (version ))
142-
143- # Convert to ints
144- version = [int (num ) for num in version ]
145-
146- try :
147- return comparisons [comp_string ], tuple (version )
148- except KeyError :
149- raise InvalidVersionStringException (original_version_string )
150-
151-
152- def accepted_versions (* versions ):
153- def decorator (func ):
154- if not versions :
155- return func
156-
157- parsed_versions = [_parse_version_string (version_string )
158- for version_string in versions ]
159-
160- @wraps (func )
161- def wrapper (obj , * args , ** kwargs ):
162- for parsed_version in parsed_versions :
163- comparison , version = parsed_version
164- if comparison (obj .version , version ):
165- return func (obj , * args , ** kwargs )
166-
167- return _unsupported_function (func , obj .version , versions )
168- return wrapper
169- return decorator
170-
171-
172100def deprecated (func ):
173101 """
174102 This is a decorator which can be used to mark functions
0 commit comments