@@ -6,6 +6,9 @@ def get_root():
6
6
except NameError :
7
7
return os .path .dirname (os .path .abspath (sys .argv [0 ]))
8
8
9
+ def vcs_function (vcs , suffix ):
10
+ return getattr (sys .modules [__name__ ], '%s_%s' % (vcs , suffix ))
11
+
9
12
def get_versions (default = DEFAULT , verbose = False ):
10
13
# returns dict with two keys: 'version' and 'full'
11
14
assert versionfile_source is not None , "please set versioneer.versionfile_source"
@@ -28,19 +31,22 @@ def get_versions(default=DEFAULT, verbose=False):
28
31
# tarball/zipball created by 'git archive' or github's download-from-tag
29
32
# feature.
30
33
31
- def vcs_function (vcs , suffix ):
32
- return getattr (sys .modules [__name__ ], '%s_%s' % (vcs , suffix ))
34
+ ver = None
33
35
34
36
try :
35
37
get_keywords_f = vcs_function (VCS , 'get_keywords' )
38
+ except AttributeError :
39
+ get_keywords_f = None
40
+
41
+ if get_keywords_f is not None :
36
42
vcs_keywords = get_keywords_f (versionfile_abs )
37
43
38
- versions_from_keywords_f = vcs_function ( VCS , 'versions_from_keywords' )
39
- ver = versions_from_keywords_f ( vcs_keywords , tag_prefix )
40
- except AttributeError :
41
- # TODO(dustin): We used to take Non when the VCS was unknown. Now we'll only
42
- # take None if the VCS-specific function isn't defined. Is this okay?
43
- ver = None
44
+ try :
45
+ versions_from_keywords_f = vcs_function ( VCS , 'versions_from_keywords' )
46
+ except AttributeError :
47
+ pass
48
+ else :
49
+ ver = versions_from_keywords_f ( vcs_keywords , tag_prefix )
44
50
45
51
if ver :
46
52
if verbose : print ("got version from expanded keyword %s" % ver )
@@ -53,11 +59,11 @@ def vcs_function(vcs, suffix):
53
59
54
60
try :
55
61
versions_from_vcs_f = vcs_function (VCS , 'versions_from_vcs' )
56
- ver = versions_from_vcs_f (tag_prefix , root , verbose )
57
62
except AttributeError :
58
- # TODO(dustin): We used to take Non when the VCS was unknown. Now we'll only
59
- # take None if the VCS-specific function isn't defined. Is this okay?
60
63
ver = None
64
+ else :
65
+ ver = versions_from_vcs_f (tag_prefix , root , verbose )
66
+
61
67
62
68
if ver :
63
69
if verbose : print ("got version from VCS %s" % ver )
0 commit comments