docker_tag_updater.helpers#

Submodules#

Module contents#

A set of helpers.

parse_version(version, rule_set={'default': 'v?(?:ersion-)?(?P<major>\\\\d+)\\\\.(?P<minor>\\\\d+)\\\\.(?P<patch>\\\\d+).*', 'lscr': 'v?(?:ersion-)?(?P<major>\\\\d+)\\\\.(?P<minor>\\\\d+)\\\\.(?P<patch>\\\\d+)(?:\\\\.(?P<prerelease>\\\\d+))?(?:-ls(?P<build>\\\\d+))?', 'yymmdd': '.*(?P<major>\\\\d{2})(?P<minor>\\\\d{2})(?P<patch>\\\\d{2})', 'yyyymmdd': '.*(?P<major>\\\\d{4})(?P<minor>\\\\d{2})(?P<patch>\\\\d{2})'}, rule_name='default')#

Parse the version according to a regex rule.

Parameters:
  • version (str) – A semver string.

  • rules – A set of RegexRules.

  • rule_name (str) – The name of the rule, or its alias. Default 'default'.

Return type:

dict[str, Any]

Returns:

A dictionary that can be parsed by python-semver.

Raises:
  • KeyError – If rule_name is not the name or alias of a rule in the rules RegexRules object.

  • ValueError – If there the version cannot be parsed by either the specified rule or the default rule.

Examples

>>> parse_version('v1.2.3')
{'major': '1', 'minor': '2', 'patch': '3'}
>>> parse_version("v1.2.3.456-ls789", regex_rules=lscrRules, rule="lscr")
{'major': '1', 'minor': '2', 'patch': '3', 'prerelease': '456', 'build': '789'}

See also

regex_rules.RegexRules

For how the rules are generated.

rules

For the default set of rules that will be used.

rules: RegexRules = {'default': 'v?(?:ersion-)?(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+).*', 'lscr': 'v?(?:ersion-)?(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)(?:\\.(?P<prerelease>\\d+))?(?:-ls(?P<build>\\d+))?', 'yymmdd': '.*(?P<major>\\d{2})(?P<minor>\\d{2})(?P<patch>\\d{2})', 'yyyymmdd': '.*(?P<major>\\d{4})(?P<minor>\\d{2})(?P<patch>\\d{2})'}#

The most general set of rules.

Supports:

  • Default semantic versions

  • Linuxserver semantic versions

  • Datetime-like version strings

See also

regex_rules.DefaultRules

For the aliases for the default set of rules.

lscr.lscrRules

For the aliases for the Linuxserver set of rules.

datetime.yymmddRules

For the aliases for the datetime-like set of rules.

datetime.yyyymmddRules

For the aliases for the datetime-like set of rules.