From e9999ec64dd1775ba60ffa97601e00e7e77e06cc Mon Sep 17 00:00:00 2001
From: Christoph Groth <christoph.groth@cea.fr>
Date: Fri, 9 Oct 2015 13:46:16 +0200
Subject: [PATCH] make kwant version conform to PEP 440

---
 kwant/_common.py | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/kwant/_common.py b/kwant/_common.py
index 94a626d0..9a8378eb 100644
--- a/kwant/_common.py
+++ b/kwant/_common.py
@@ -33,7 +33,8 @@ def get_version_from_git():
     # that were merged-in.
     for opts in [['--first-parent'], []]:
         try:
-            p = subprocess.Popen(['git', 'describe'] + opts, cwd=distr_root,
+            p = subprocess.Popen(['git', 'describe', '--long'] + opts,
+                                 cwd=distr_root,
                                  stdout=subprocess.PIPE, stderr=subprocess.PIPE)
         except OSError:
             return
@@ -41,19 +42,29 @@ def get_version_from_git():
             break
     else:
         return
-    version = p.communicate()[0].rstrip('\n')
+    description = p.communicate()[0].strip('v').rstrip('\n')
 
-    if version[0] == 'v':
-        version = version[1:]
+    release, dev, git = description.rsplit('-', 2)
+    version = [release]
+    labels = []
+    if dev != "0":
+        version.append(".dev{}".format(dev))
+        labels.append(git)
 
     try:
         p = subprocess.Popen(['git', 'diff', '--quiet'], cwd=distr_root)
     except OSError:
-        version += '-confused'  # This should never happen.
+        labels.append('confused') # This should never happen.
     else:
         if p.wait() == 1:
-            version += '-dirty'
-    return version
+            labels.append('dirty')
+
+    if labels:
+        version.append('+')
+        version.append(".".join(labels))
+
+    return "".join(version)
+
 
 
 from _kwant_version import version
-- 
GitLab