]> git.notmuchmail.org Git - notmuch/commitdiff
python: Have setup.py read the version number without importing
authorSebastian Spaeth <Sebastian@SSpaeth.de>
Wed, 24 Aug 2011 07:13:34 +0000 (09:13 +0200)
committerSebastian Spaeth <Sebastian@SSpaeth.de>
Wed, 24 Aug 2011 07:13:34 +0000 (09:13 +0200)
Importing the notmuch module in setup.py is a no-no, and we want
to auto-generate the version number in the release process.

Outsource __VERSION__ to the new version.py which contains nothing else
and which can therefor easily be autogenerated. Have setup.py read in
the file via execfile and test if importing the version number actually
worked.

This should make all happy.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
bindings/python/notmuch/__init__.py
bindings/python/notmuch/version.py [new file with mode: 0644]
bindings/python/setup.py

index cb64f3c3a495631b4d40877d1b760534890c3782..a7b558fa746a01b9716689ffa375c44d5640af87 100644 (file)
@@ -57,6 +57,6 @@ from notmuch.message import Messages, Message
 from notmuch.thread import Threads, Thread
 from notmuch.tag import Tags
 from notmuch.globals import nmlib, STATUS, NotmuchError
 from notmuch.thread import Threads, Thread
 from notmuch.tag import Tags
 from notmuch.globals import nmlib, STATUS, NotmuchError
+from notmuch.version import __VERSION__
 __LICENSE__ = "GPL v3+"
 __LICENSE__ = "GPL v3+"
-__VERSION__ = '0.6'
 __AUTHOR__ = 'Sebastian Spaeth <Sebastian@SSpaeth.de>'
 __AUTHOR__ = 'Sebastian Spaeth <Sebastian@SSpaeth.de>'
diff --git a/bindings/python/notmuch/version.py b/bindings/python/notmuch/version.py
new file mode 100644 (file)
index 0000000..7ad5a27
--- /dev/null
@@ -0,0 +1,2 @@
+# This file is potentially auto-generated. Do not modify
+__VERSION__ = '0.6'
index 16de76aad80cdba1c6df977cb7b6a1709b7c69e0..286fd1962187b6351036d54d547e69dd9c0b1016 100644 (file)
@@ -4,18 +4,11 @@ import os
 import re
 from distutils.core import setup
 
 import re
 from distutils.core import setup
 
-def get_version():
-    file = open('notmuch/__init__.py')
-    try:
-        for line in file:
-            if re.match('__VERSION__\s*=\s*',line) != None:
-                version = line.split('=', 1)[1]
-                return eval(version, {}, {})
-    finally:
-        file.close()
-    raise IOError('Unexpected end-of-file')
-
-__VERSION__=get_version()
+# get the notmuch version number without importing the notmuch module
+version_file = os.path.join(os.path.dirname(os.path.abspath(__file__)),
+                            'notmuch', 'version.py')
+execfile(version_file)
+assert __VERSION__, 'Failed to read the notmuch binding version number'
 
 setup(name='notmuch',
       version=__VERSION__,
 
 setup(name='notmuch',
       version=__VERSION__,