Mercurial > cpython-lru_cache-weakref
annotate Doc/tools/sphinxext/patchlevel.py @ 78069:a8aa77458e12 3.2
Add c_size_t and c_ssize_t to the ctypes summary table.
| author | Antoine Pitrou <solipsis@pitrou.net> |
|---|---|
| date | Thu, 12 Jul 2012 20:31:50 +0200 |
| parents | 8a8f2aa9db0f |
| children | 5ba6124da155 |
| rev | line source |
|---|---|
|
44859
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
1 # -*- coding: utf-8 -*- |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
2 """ |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
3 patchlevel.py |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
4 ~~~~~~~~~~~~~ |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
5 |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
6 Extract version info from Include/patchlevel.h. |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
7 Adapted from Doc/tools/getversioninfo. |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
8 |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
9 :copyright: 2007-2008 by Georg Brandl. |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
10 :license: Python license. |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
11 """ |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
12 |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
13 import os |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
14 import re |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
15 import sys |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
16 |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
17 def get_header_version_info(srcdir): |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
18 patchlevel_h = os.path.join(srcdir, '..', 'Include', 'patchlevel.h') |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
19 |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
20 # This won't pick out all #defines, but it will pick up the ones we |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
21 # care about. |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
22 rx = re.compile(r'\s*#define\s+([a-zA-Z][a-zA-Z_0-9]*)\s+([a-zA-Z_0-9]+)') |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
23 |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
24 d = {} |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
25 f = open(patchlevel_h) |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
26 try: |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
27 for line in f: |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
28 m = rx.match(line) |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
29 if m is not None: |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
30 name, value = m.group(1, 2) |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
31 d[name] = value |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
32 finally: |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
33 f.close() |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
34 |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
35 release = version = '%s.%s' % (d['PY_MAJOR_VERSION'], d['PY_MINOR_VERSION']) |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
36 micro = int(d['PY_MICRO_VERSION']) |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
37 if micro != 0: |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
38 release += '.' + str(micro) |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
39 |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
40 level = d['PY_RELEASE_LEVEL'] |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
41 suffixes = { |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
42 'PY_RELEASE_LEVEL_ALPHA': 'a', |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
43 'PY_RELEASE_LEVEL_BETA': 'b', |
|
54816
5cb4e51a4408
Merged revisions 73415,73417-73418 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
46979
diff
changeset
|
44 'PY_RELEASE_LEVEL_GAMMA': 'rc', |
|
44859
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
45 } |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
46 if level != 'PY_RELEASE_LEVEL_FINAL': |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
47 release += suffixes[level] + str(int(d['PY_RELEASE_SERIAL'])) |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
48 return version, release |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
49 |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
50 |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
51 def get_sys_version_info(): |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
52 major, minor, micro, level, serial = sys.version_info |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
53 release = version = '%s.%s' % (major, minor) |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
54 if micro: |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
55 release += '.%s' % micro |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
56 if level != 'final': |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
57 release += '%s%s' % (level[0], serial) |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
58 return version, release |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
59 |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
60 |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
61 def get_version_info(): |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
62 try: |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
63 return get_header_version_info('.') |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
64 except (IOError, OSError): |
|
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
65 version, release = get_sys_version_info() |
|
46979
c26c02a42008
revert syntax change
Benjamin Peterson <benjamin@python.org>
parents:
46978
diff
changeset
|
66 print >>sys.stderr, 'Can\'t get version info from Include/patchlevel.h, ' \ |
|
c26c02a42008
revert syntax change
Benjamin Peterson <benjamin@python.org>
parents:
46978
diff
changeset
|
67 'using version of this interpreter (%s).' % release |
|
44859
feba5d5cac22
Merged revisions 60151-60159,60161-60168,60170,60172-60173,60175 via svnmerge from
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
68 return version, release |
|
45622
a31b650515cb
Merged revisions 61143-61144,61146-61147,61150-61151,61157,61165-61168,61170-61173,61176-61177,61183 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44859
diff
changeset
|
69 |
|
a31b650515cb
Merged revisions 61143-61144,61146-61147,61150-61151,61157,61165-61168,61170-61173,61176-61177,61183 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44859
diff
changeset
|
70 if __name__ == '__main__': |
|
65700
8a8f2aa9db0f
Port suspicious markup builder and patchlevel.py so that they can be used with Python 2 and 3 without conversion.
Georg Brandl <georg@python.org>
parents:
54816
diff
changeset
|
71 print(get_header_version_info('.')[1]) |
