Revision: 3935
Author: valhallasw
Date: 2007-08-01 21:19:26 +0000 (Wed, 01 Aug 2007)
Log Message:
-----------
New: version.py. returns pywikipedia version based on (in order) .svn/entries, version
(file for use in nightlies) and wikipedia.__version__.
Added Paths:
-----------
trunk/pywikipedia/version.py
Added: trunk/pywikipedia/version.py
===================================================================
--- trunk/pywikipedia/version.py (rev 0)
+++ trunk/pywikipedia/version.py 2007-08-01 21:19:26 UTC (rev 3935)
@@ -0,0 +1,56 @@
+""" Module to determine the pywikipedia version (tag, revision and date)
"""
+#
+# (C) Merlijn 'valhallasw' van Deen
+#
+# Distributed under the terms of the MIT license.
+#
+__version__ = '$Id$'
+
+import wikipediatools
+import time
+import sys
+
+class ParseError(Exception):
+ """ Parsing went wrong """
+
+def getversion():
+ try:
+ (tag, rev, date) = getversion_svn()
+ except Exception, e:
+ try:
+ (tag, rev, date) = getversion_nightly()
+ except IOError, e:
+ import wikipedia
+ d = wikipedia.__version__.split(' ')
+ tag = ''
+ date = time.strptime('T'.join(d[3:5]), '%Y-%m-%dT%H:%M:%SZ')
+ rev = d[2] + ' (wikipedia.py)'
+
+ datestring = time.strftime('%b %d %Y, %H:%M:%S', date)
+ return '%s (r%s, %s)' % (tag, rev, datestring)
+
+def getversion_svn():
+ entries = open(wikipediatools.absoluteFilename('.svn/entries'))
+ for i in range(4):
+ entries.readline()
+ tag =
entries.readline().replace('svn+ssh://svn.wikimedia.org/svnroot/pywikip…ia/',
'').strip()
+ for i in range(4):
+ entries.readline()
+ date = time.strptime(entries.readline()[:19],'%Y-%m-%dT%H:%M:%S')
+ rev = entries.readline()[:-1]
+ if not date or not tag or not rev:
+ raise ParseError
+ return (tag, rev, date)
+
+def getversion_nightly():
+ data = open(wikipediatools.absoluteFilename('version'))
+ tag = data.readline().strip()
+ date = time.strptime(data.readline()[:19],'%Y-%m-%dT%H:%M:%S')
+ rev = data.readline().strip()
+ if not date or not tag or not rev:
+ raise ParseError
+ return (tag, rev, date)
+
+if __name__ == '__main__':
+ print 'Pywikipedia %s' % getversion()
+ print 'Python %s' % sys.version
\ No newline at end of file
Property changes on: trunk/pywikipedia/version.py
___________________________________________________________________
Name: svn:keywords
+ Id *.c = svn:eol-style=native *.cpp = svn:eol-style=native *.h = svn:eol-style=native
*.dsp = svn:eol-style=CRLF *.dsw = svn:eol-style=CRLF *.sh = svn:eol-style=native
Name: svn:executable *.txt
+ svn:eol-style=native *.png = svn:mime-type=image/png *.jpg = svn:mime-type=image/jpeg
Makefile = svn:eol-style=native
Name: svn:eol-style
+ native