[Python-checkins] python/dist/src/Doc/tools getversioninfo, NONE, 1.1.2.1

anthonybaxter at users.sourceforge.net anthonybaxter at users.sourceforge.net
Fri Dec 5 07:56:24 EST 2003


Update of /cvsroot/python/python/dist/src/Doc/tools
In directory sc8-pr-cvs1:/tmp/cvs-serv9708
Added Files:
 Tag: release23-maint
	getversioninfo 
Log Message:
copied from the trunk.
--- NEW FILE: getversioninfo ---
#! /usr/bin/env python
import os
import re
import sys
try:
 __file__
except NameError:
 __file__ = sys.argv[0]
tools = os.path.dirname(os.path.abspath(__file__))
Doc = os.path.dirname(tools)
src = os.path.dirname(Doc)
patchlevel_h = os.path.join(src, "Include", "patchlevel.h")
# This won't pick out all #defines, but it will pick up the ones we
# care about.
rx = re.compile(r"\s*#define\s+([a-zA-Z][a-zA-Z_0-9]*)\s+([a-zA-Z_0-9]+)")
d = {}
f = open(patchlevel_h)
for line in f:
 m = rx.match(line)
 if m is not None:
 name, value = m.group(1, 2)
 d[name] = value
f.close()
release = "%s.%s" % (d["PY_MAJOR_VERSION"], d["PY_MINOR_VERSION"])
micro = int(d["PY_MICRO_VERSION"])
shortversion = release
if micro != 0:
 release += "." + str(micro)
level = d["PY_RELEASE_LEVEL"]
suffixes = {
 "PY_RELEASE_LEVEL_ALPHA": "a",
 "PY_RELEASE_LEVEL_BETA": "b",
 "PY_RELEASE_LEVEL_GAMMA": "c",
 }
releaseinfo = ""
if level != "PY_RELEASE_LEVEL_FINAL":
 releaseinfo = suffixes[level] + str(int(d["PY_RELEASE_SERIAL"]))
def write_file(name, text):
 """Write text to a file if the file doesn't exist or if text
 differs from any existing content."""
 if os.path.exists(name):
 f = open(name, "r")
 s = f.read()
 f.close()
 if s == text:
 return
 f = open(name, "w")
 f.write(text)
 f.close()
patchlevel_tex = os.path.join(Doc, "commontex", "patchlevel.tex")
Makefile_version = os.path.join(Doc, "Makefile.version")
write_file(patchlevel_tex,
 "%% This file is generated by ../tools/getversioninfo;\n"
 "%% do not edit manually.\n"
 "\n"
 "\\release{%s}\n"
 "\\setreleaseinfo{%s}\n"
 "\\setshortversion{%s}\n"
 % (release, releaseinfo, shortversion))
print release + releaseinfo


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /