summaryrefslogtreecommitdiff
path: root/setuptools/_vendor/packaging/version.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/_vendor/packaging/version.py')
-rw-r--r--setuptools/_vendor/packaging/version.py74
1 files changed, 37 insertions, 37 deletions
diff --git a/setuptools/_vendor/packaging/version.py b/setuptools/_vendor/packaging/version.py
index e76e9607..8d779a48 100644
--- a/setuptools/_vendor/packaging/version.py
+++ b/setuptools/_vendor/packaging/version.py
@@ -21,7 +21,7 @@ from ._structures import Infinity
__all__ = [
- "parse", "Version", "LegacyVersion", "InvalidVersion",
+ "parse", "Version", "LegacyVersion", "InvalidVersion", "VERSION_PATTERN"
]
@@ -156,44 +156,44 @@ def _legacy_cmpkey(version):
return epoch, parts
+# Deliberately not anchored to the start and end of the string, to make it
+# easier for 3rd party code to reuse
+VERSION_PATTERN = r"""
+ v?
+ (?:
+ (?:(?P<epoch>[0-9]+)!)? # epoch
+ (?P<release>[0-9]+(?:\.[0-9]+)*) # release segment
+ (?P<pre> # pre-release
+ [-_\.]?
+ (?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
+ [-_\.]?
+ (?P<pre_n>[0-9]+)?
+ )?
+ (?P<post> # post release
+ (?:-(?P<post_n1>[0-9]+))
+ |
+ (?:
+ [-_\.]?
+ (?P<post_l>post|rev|r)
+ [-_\.]?
+ (?P<post_n2>[0-9]+)?
+ )
+ )?
+ (?P<dev> # dev release
+ [-_\.]?
+ (?P<dev_l>dev)
+ [-_\.]?
+ (?P<dev_n>[0-9]+)?
+ )?
+ )
+ (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version
+"""
+
class Version(_BaseVersion):
_regex = re.compile(
- r"""
- ^
- \s*
- v?
- (?:
- (?:(?P<epoch>[0-9]+)!)? # epoch
- (?P<release>[0-9]+(?:\.[0-9]+)*) # release segment
- (?P<pre> # pre-release
- [-_\.]?
- (?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
- [-_\.]?
- (?P<pre_n>[0-9]+)?
- )?
- (?P<post> # post release
- (?:-(?P<post_n1>[0-9]+))
- |
- (?:
- [-_\.]?
- (?P<post_l>post|rev|r)
- [-_\.]?
- (?P<post_n2>[0-9]+)?
- )
- )?
- (?P<dev> # dev release
- [-_\.]?
- (?P<dev_l>dev)
- [-_\.]?
- (?P<dev_n>[0-9]+)?
- )?
- )
- (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version
- \s*
- $
- """,
+ r"^\s*" + VERSION_PATTERN + r"\s*$",
re.VERBOSE | re.IGNORECASE,
)
@@ -297,8 +297,8 @@ def _parse_letter_version(letter, number):
letter = "a"
elif letter == "beta":
letter = "b"
- elif letter in ["rc", "pre", "preview"]:
- letter = "c"
+ elif letter in ["c", "pre", "preview"]:
+ letter = "rc"
return letter, int(number)
if not letter and number: