/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/version.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/version.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1288 by jonathan, Mon Jun 23 10:47:44 2003 UTC revision 2729 by bernhard, Tue Feb 20 10:52:38 2007 UTC
# Line 1  Line 1 
1  #!/usr/bin/env python  # Copyright (C) 2002, 2003, 2004 by Intevation GmbH
 #  
 # Copyright (C) 2002, 2003 by Intevation GmbH  
2  # Authors:  # Authors:
3  # Thomas Koester <[email protected]>  # Thomas Koester <[email protected]>
4  # Frank Koormann <[email protected]>  # Frank Koormann <[email protected]>
# Line 17  __version__ = "$Revision$" Line 15  __version__ = "$Revision$"
15  # $Id$  # $Id$
16    
17    
18  version = 'cvs'  # Note that this file defines the version number of Thuban for the about
19  append_date = 1  # dialog.
20    
21    # The thuban version string is build from two values, thuban_branch and
22    # thuban_release.  If release is "cvs" the code is from a non-released
23    # cvs version and the version string is built from the branch, the
24    # release and an approximation of the date (e.g. the most recent date of
25    # the ChangeLog file or the most recent modification time of a source
26    # file).  Otherwise the string is build from the branch and the release.
27    # E.g. given
28    #
29    #  thuban_branch = "1.1"
30    #  thuban_release = "svn"
31    #
32    # the version string will be "Thuban 1.1 svn-20040224" (obviously the
33    # actual date might differ :) ).  OTOH, given
34    #
35    #  thuban_branch = "1.0"
36    #  thuban_release = "1"
37    #
38    # the version string will be "Thuban 1.0.1"
39    #
40    
41    thuban_branch = "1.2"
42    thuban_release = "0"
43    
44    
45    
46  import os, os.path  import sys, os, os.path
47  import time  import time
48    from string import split
49    
50    from Thuban import  _
51    from Thuban.Lib.version import make_tuple
52    
53  if __name__ == "__main__":  if __name__ == "__main__":
54      import sys      import sys
# Line 54  def get_changelog_date(): Line 80  def get_changelog_date():
80          file.close()          file.close()
81      except:      except:
82          return ""          return ""
83      return '\n  ChangeLog %s' % line.split(" ")[0]      return 'ChangeLog %s' % line.split(" ")[0]
84    
85    
86    #
87    # Fill in versions with the different versions of the libraries
88    # that Thuban is using or requires (only if those libraries are
89    # available.
90    #
91    
92    versions = {}
93    
94  if append_date:  if thuban_release == "svn":
95      version = '%s-%s' % (version, get_date('%Y%m%d'))      version = '%s %s-%s' % (thuban_branch, thuban_release, get_date('%Y%m%d'))
96  #longversion = '%s%s' % (version, get_changelog_date())      longversion = '%s\n%s' % (version, get_changelog_date())
97  longversion = 'Release Version 0.8'  else:
98        version = thuban_branch + "." + thuban_release
99        longversion = 'Release Version ' + version
100    
101    versions['thuban'] = version
102    versions['thuban-long'] = longversion
103    
104    # wxPython
105    
106    from wx import __version__ as wxPython_version
107    versions['wxPython'] = wxPython_version
108    versions['wxPython-tuple'] = make_tuple(wxPython_version)
109    
110    # Python
111    versions['python'] = "%d.%d.%d" % sys.version_info[:3]
112    versions['python-tuple'] = sys.version_info[:3]
113    
114    # PySQLite
115    try:
116        from pysqlite2 import dbapi2 as sqlite
117    except ImportError:
118        import sqlite
119    versions['pysqlite'] = sqlite.version
120    versions['pysqlite-tuple'] = make_tuple(sqlite.version)
121    
122    # SQLite
123    try:
124        from pysqlite2._sqlite import sqlite_version
125        versions['sqlite'] = sqlite_version
126        versions['sqlite-tuple'] = make_tuple(sqlite_version)
127    except ImportError:
128        from _sqlite import sqlite_version
129        versions['sqlite'] = sqlite_version()
130        versions['sqlite-tuple'] = make_tuple(sqlite_version())
131    
132    # GDAL
133    from  Thuban.Model.resource import has_gdal_support
134    if has_gdal_support():
135        from gdalwarp import get_gdal_version
136        versions['gdal'] = get_gdal_version()
137        versions['gdal-tuple'] = make_tuple(get_gdal_version())
138    
139    from wxproj import get_proj_version, get_gtk_version, get_wx_version
140    
141    # GTK
142    gtk_ver = get_gtk_version()
143    if gtk_ver:
144        versions['gtk'] = ".".join(map(str, gtk_ver))
145        versions['gtk-tuple'] = gtk_ver
146    
147    # PROJ
148    proj_ver = get_proj_version()
149    if proj_ver:
150        versions['proj'] = ".".join(map(str, proj_ver))
151        versions['proj-tuple'] = proj_ver
152    
153    wxproj_wx_version = get_wx_version()
154    versions['wxproj-wx'] = ".".join(map(str, wxproj_wx_version))
155    versions['wxproj-wx-tuple'] = wxproj_wx_version
156    
157    
158    # psycopg/postgis
159    import Thuban.Model.postgisdb
160    if Thuban.Model.postgisdb.has_postgis_support():
161        v = Thuban.Model.postgisdb.psycopg_version()
162        versions['psycopg'] = v
163        versions['psycopg-tuple'] = make_tuple(v)
164    
165    def verify_versions():
166        """Verify that Thuban is using the correct versions of libraries.
167    
168        Returns a non-empty list of strings indicating which libraries
169        are wrong, or the empty list if everthing is ok.
170        """
171    
172        #
173        # The 'name' below must correspong to an mapping in 'versions'.
174        # There must also exist a 'name'-tuple mapping.
175        #
176        #         title           name       version
177        list = [["Python",      "python",   (2, 2, 1)],
178                ["wxPython",    "wxPython", (2, 4, 0)],
179                ["SQLite",      "sqlite",   (2, 8, 0)],
180                ["PySQLite",    "pysqlite", (0, 4, 1)],
181                ["PROJ",        "proj",     (4, 4, 5)],
182                ["GTK",         "gtk",      (1, 2, 3)],
183                ["GDAL",        "gdal",     (1, 1, 8)]]
184    
185        errors = []
186        for title, name, version in list:
187            tup = versions.get("%s-tuple" % name, None)
188            if tup and tup < version:
189                errors.append(_("%s %s < %s") % \
190                              (title, versions[name], ".".join(map(str, version))))
191    
192        # Check whether the wxWindows version of wxPython and thuban's
193        # wxproj module match.  If they don't match, segfaults are likely.
194        if versions["wxproj-wx-tuple"] != versions["wxPython-tuple"][:3]:
195            errors.append(_("Thuban was compiled with wx %(wxproj-wx)s"
196                            " but wxPython is %(wxPython)s")
197                          % versions)
198    
199        return errors
200    
201  if __name__ == "__main__":  if __name__ == "__main__":
202      print longversion      print longversion
203    

Legend:
Removed from v.1288  
changed lines
  Added in v.2729

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26