MCPcopy Index your code
hub / github.com/bpython/bpython / git_describe_to_python_version

Function git_describe_to_python_version

setup.py:229–270  ·  view source on GitHub ↗

Convert output from git describe to PEP 440 conforming versions.

(version)

Source from the content-addressed store, hash-verified

227
228
229def git_describe_to_python_version(version):
230 """Convert output from git describe to PEP 440 conforming versions."""
231
232 version_info = version.split("-")
233 if len(version_info) < 2:
234 return "unknown"
235
236 # we always have $version-$release
237 release_type = version_info[1]
238
239 version_data = {
240 "version": version_info[0],
241 "release_type": release_type,
242 }
243 if len(version_info) == 4:
244 version_data["commits"] = version_info[2]
245 else:
246 version_data["commits"] = 0
247
248 if release_type == "release":
249 if len(version_info) == 2:
250 # format: $version-release
251 # This is the case at time of the release.
252 fmt = "{version}"
253 elif len(version_info) == 4:
254 # format: $version-release-$commits-$hash
255 # This is the case after a release.
256 fmt = "{version}-{commits}"
257 elif release_type == "dev":
258 # format: $version-dev-$commits-$hash or $version-dev
259 fmt = "{version}.dev{commits}"
260 else:
261 match = re.match(r"^(alpha|beta|rc)(\d*)$", release_type)
262 if match is None:
263 return "unknown"
264
265 if len(version_info) == 2:
266 fmt = "{version}{release_type}"
267 elif len(version_info) == 4:
268 fmt = "{version}{release_type}-{commits}"
269
270 return fmt.format(**version_data)
271
272
273version_file = "bpython/_version.py"

Callers 1

setup.pyFile · 0.85

Calls 2

matchMethod · 0.80
formatMethod · 0.45

Tested by

no test coverage detected