@@ -55,7 +55,10 @@ def tags_to_versions(tags):
55
55
class ScmVersion (object ):
56
56
def __init__ (self , tag_version ,
57
57
distance = None , node = None , dirty = False ,
58
+ preformatted = False ,
58
59
** kw ):
60
+ if kw :
61
+ trace ("unknown args" , kw )
59
62
self .tag = tag_version
60
63
if dirty and distance is None :
61
64
distance = 0
@@ -64,6 +67,7 @@ def __init__(self, tag_version,
64
67
self .time = datetime .datetime .now ()
65
68
self .extra = kw
66
69
self .dirty = dirty
70
+ self .preformatted = preformatted
67
71
68
72
@property
69
73
def exact (self ):
@@ -84,13 +88,19 @@ def format_choice(self, clean_format, dirty_format):
84
88
return self .format_with (dirty_format if self .dirty else clean_format )
85
89
86
90
87
- def meta (tag , distance = None , dirty = False , node = None , ** kw ):
91
+ def _parse_tag (tag , preformatted ):
92
+ if preformatted :
93
+ return tag
88
94
if SetuptoolsVersion is None or not isinstance (tag , SetuptoolsVersion ):
89
95
tag = tag_to_version (tag )
90
- trace ('version' , tag )
96
+ return tag
97
+
91
98
99
+ def meta (tag , distance = None , dirty = False , node = None , preformatted = False , ** kw ):
100
+ tag = _parse_tag (tag , preformatted )
101
+ trace ('version' , tag )
92
102
assert tag is not None , 'cant parse version %s' % tag
93
- return ScmVersion (tag , distance , node , dirty , ** kw )
103
+ return ScmVersion (tag , distance , node , dirty , preformatted , ** kw )
94
104
95
105
96
106
def guess_next_version (tag_version , distance ):
@@ -147,6 +157,8 @@ def postrelease_version(version):
147
157
def format_version (version , ** config ):
148
158
trace ('scm version' , version )
149
159
trace ('config' , config )
160
+ if version .preformatted :
161
+ return version .tag
150
162
version_scheme = callable_or_entrypoint (
151
163
'setuptools_scm.version_scheme' , config ['version_scheme' ])
152
164
local_scheme = callable_or_entrypoint (
0 commit comments