ThirdParty/EditorConfig/editorconfig/versiontools.py

changeset 6099
a7fecbc392d7
diff -r a1d10c6ce103 -r a7fecbc392d7 ThirdParty/EditorConfig/editorconfig/versiontools.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ThirdParty/EditorConfig/editorconfig/versiontools.py	Thu Feb 01 19:26:11 2018 +0100
@@ -0,0 +1,35 @@
+"""EditorConfig version tools
+
+Provides ``join_version`` and ``split_version`` classes for converting
+__version__ strings to VERSION tuples and vice versa.
+
+"""
+
+import re
+
+
+__all__ = ['join_version', 'split_version']
+
+
+_version_re = re.compile(r'^(\d+)\.(\d+)\.(\d+)(\..*)?$', re.VERBOSE)
+
+
+def join_version(version_tuple):
+    """Return a string representation of version from given VERSION tuple"""
+    version = "%s.%s.%s" % version_tuple[:3]
+    if version_tuple[3] != "final":
+        version += "-%s" % version_tuple[3]
+    return version
+
+
+def split_version(version):
+    """Return VERSION tuple for given string representation of version"""
+    match = _version_re.search(version)
+    if not match:
+        return None
+    else:
+        split_version = list(match.groups())
+        if split_version[3] is None:
+            split_version[3] = "final"
+        split_version = list(map(int, split_version[:3])) + split_version[3:]
+        return tuple(split_version)

eric ide

mercurial