Git implementation of

Module Contents

exception pymor.version.NotThisMethod[source]

Bases: Exception

Exception raised if a method is not valid for the current scenario.

class pymor.version.VersioneerConfig[source]

Container for Versioneer configuration parameters.


Create, populate and return the VersioneerConfig() object.


Get the keywords needed to look up the version information.


Get version information or return default if unable to do so.


Extract version information from the given file.

pymor.version.git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command)[source]

Get version from ‘git describe’ in the root of the source tree.

This only gets called if the git-archive ‘subst’ keywords were not expanded, and hasn’t already been rewritten with a short version string, meaning we’re inside a checked out source tree.

pymor.version.git_versions_from_keywords(keywords, tag_prefix, verbose)[source]

Get version information from git keywords.


Return a + if we don’t already have one, else return a .

pymor.version.register_vcs_handler(vcs, method)[source]

Create decorator to mark a method as the handler of a VCS.

pymor.version.render(pieces, style)[source]

Render the given version pieces into the requested style.



Like ‘git describe –tags –dirty –always’.

Exceptions: 1: no tags. HEX[-dirty] (note: no ‘g’ prefix)



Like ‘git describe –tags –dirty –always -long’. The distance/hash is unconditional.

Exceptions: 1: no tags. HEX[-dirty] (note: no ‘g’ prefix)


Build up version string, with post-release “local version identifier”.

Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you get a tagged build and then dirty it, you’ll get TAG+0.gHEX.dirty

Exceptions: 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty]


TAG[.postDISTANCE[.dev0]] .

The “.dev0” means dirty.

Exceptions: 1: no tags. 0.postDISTANCE[.dev0]


TAG[.postDISTANCE[.dev0]+gHEX] .

The “.dev0” means dirty. Note that .dev0 sorts backwards (a dirty tree will appear “older” than the corresponding clean one), but you shouldn’t be releasing software with -dirty anyways.

Exceptions: 1: no tags. 0.postDISTANCE[.dev0]


TAG[.post2.devRUN_NUMBER] – No -dirty.

Exceptions: 1: no tags. 0.post2.devRUN_NUMBER

pymor.version.run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, env=None)[source]

Call the given command(s).

pymor.version.versions_from_parentdir(parentdir_prefix, root, verbose)[source]

Try to determine the version from the parent directory name.

Source tarballs conventionally unpack into a directory that includes both the project name and a version string. We will also support searching up two directory levels for an appropriately named parent directory