Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit88a2ca6

Browse files
committed
PEP 440 versions
Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>
1 parenta766ae7 commit88a2ca6

File tree

1 file changed

+49
-8
lines changed

1 file changed

+49
-8
lines changed

‎setup.py‎

Lines changed: 49 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44

55
importos
66
importplatform
7-
importsys
7+
importre
88
importsubprocess
9+
importsys
910

1011
fromdistutils.command.buildimportbuild
1112
fromsetuptoolsimportsetup
@@ -34,6 +35,52 @@
3435

3536

3637
# version handling
38+
39+
40+
defgit_describe_to_python_version(version):
41+
"""Convert output from git describe to PEP 440 conforming versions."""
42+
43+
version_info=version.split('-')
44+
iflen(version_info)<2:
45+
return'unknown'
46+
47+
# we always have $version-$release
48+
release_type=version_info[1]
49+
50+
version_data= {
51+
'version':version_info[0],
52+
'release_type':release_type,
53+
}
54+
iflen(version_info)==4:
55+
version_data['commits']=version_info[2]
56+
else:
57+
version_data['commits']=0
58+
59+
ifrelease_type=='release':
60+
iflen(version_info)==2:
61+
# format: $version-release
62+
# This is the case at time of the release.
63+
fmt='{version}'
64+
eliflen(version_info)==4:
65+
# format: $version-release-$commits-$hash
66+
# This is the case after a release.
67+
fmt='{version}-{commits}'
68+
elifrelease_type=='dev':
69+
# format: $version-dev-$commits-$hash or $version-dev
70+
fmt='{version}.dev{commits}'
71+
else:
72+
match=re.match(r'^(alpha|beta|rc)(\d*)$',release_type)
73+
ifmatchisNone:
74+
return'unknown'
75+
76+
iflen(version_info)==2:
77+
fmt='{version}{release_type}'
78+
eliflen(version_info)==4:
79+
fmt='{version}{release_type}-{commits}'
80+
81+
returnfmt.format(**version_data)
82+
83+
3784
version_file='bpython/_version.py'
3885
version='unknown'
3986

@@ -46,13 +93,7 @@
4693
stdout=stdout.decode('ascii')
4794

4895
ifproc.returncode==0:
49-
version_split=stdout.split('-')
50-
iflen(version_split)==4:
51-
# format: version-release-commits-hash
52-
version='-'.join((version_split[0],version_split[2]))
53-
eliflen(version_split)==2:
54-
# format: version-release
55-
version=version_split[0]
96+
version=git_describe_to_python_version(stdout)
5697
exceptOSError:
5798
pass
5899

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp