Define the version number properly inside the module, read within setup.py.
authorMichael Elsdoerfer <michael@elsdoerfer.com>
Tue, 1 Jun 2010 16:23:47 +0000 (18:23 +0200)
committerMichael Elsdoerfer <michael@elsdoerfer.com>
Tue, 1 Jun 2010 16:25:34 +0000 (18:25 +0200)
django_tables/__init__.py
setup.py

index f32db8407cde2538405971cdf4ac1834a665c7b3..ad600eb7f16d7a44a55b2a174c190cda89a27a58 100644 (file)
@@ -1,3 +1,6 @@
+__version__ = (0, 1, 'dev')\r
+\r
+\r
 from memory import *\r
 from models import *\r
 from columns import *\r
index 72ce82a9c252d17841ce388d6845702c04f428fa..3f725026cf5bef3e45ea4523bd160082e2a2d7eb 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,27 @@
 import os\r
 from distutils.core import setup\r
 \r
+\r
+# Figure out the version; this could be done by importing the\r
+# module, though that requires Django to be already installed,\r
+# which may not be the case when processing a pip requirements\r
+# file, for example.\r
+import re\r
+here = os.path.dirname(os.path.abspath(__file__))\r
+version_re = re.compile(\r
+    r'__version__ = (\(.*?\))')\r
+fp = open(os.path.join(here, 'django_tables', '__init__.py'))\r
+version = None\r
+for line in fp:\r
+    match = version_re.search(line)\r
+    if match:\r
+        version = eval(match.group(1))\r
+        break\r
+else:\r
+    raise Exception("Cannot find version in __init__.py")\r
+fp.close()\r
+\r
+\r
 def find_packages(root):\r
     # so we don't depend on setuptools; from the Storm ORM setup.py\r
     packages = []\r
@@ -9,9 +30,10 @@ def find_packages(root):
             packages.append(directory.replace(os.sep, '.'))\r
     return packages\r
 \r
+\r
 setup(\r
     name = 'django-tables',\r
-    version = '0.1',\r
+    version=".".join(map(str, version)),\r
     description = 'Render QuerySets as tabular data in Django.',\r
     author = 'Michael Elsdoerfer',\r
     author_email = 'michael@elsdoerfer.info',\r