[Python-checkins] release: welcome to a world with two digit patchlevel versions
benjamin.peterson
python-checkins at python.org
Mon May 11 17:15:28 CEST 2015
https://hg.python.org/release/rev/1bff57e982e6
changeset: 94:1bff57e982e6
user: Benjamin Peterson <benjamin at python.org>
date: Mon May 11 11:15:26 2015 -0400
summary:
welcome to a world with two digit patchlevel versions
files:
add-to-pydotorg.py | 20 +++++++++++++-------
1 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/add-to-pydotorg.py b/add-to-pydotorg.py
--- a/add-to-pydotorg.py
+++ b/add-to-pydotorg.py
@@ -44,6 +44,8 @@
ftp_root = '/srv/www.python.org/ftp/python/'
download_root = 'https://www.python.org/ftp/python/'
+tag_cre = re.compile(r'(\d+)(?:\.(\d+)(?:\.(\d+))?)?(?:([ab]|rc)(\d+))?$')
+
headers = {'Authorization': 'ApiKey %s' % auth_info, 'Content-Type': 'application/json'}
rx = re.compile
@@ -70,20 +72,24 @@
def slug_for(release):
return release[0] + '-' + release[2] + '-' + release[4] + \
- ('-' + release[5:] if release[5:] else '')
+ ('-' + release[len(base_version(release)):] if release[len(base_version(release)):] else '')
def sigfile_for(release, rfile):
return download_root + '%s/%s.asc' % (release, rfile)
def md5sum_for(release, rfile):
- return hashlib.md5(open(ftp_root + release[:5] + '/' + rfile, 'rb').read()).hexdigest()
+ return hashlib.md5(open(ftp_root + base_version(release) + '/' + rfile, 'rb').read()).hexdigest()
def filesize_for(release, rfile):
- return path.getsize(ftp_root + release[:5] + '/' + rfile)
+ return path.getsize(ftp_root + base_version(release) + '/' + rfile)
def make_slug(text):
return re.sub('[^a-zA-Z0-9_-]', '', text.replace(' ', '-'))
+def base_version(release):
+ m = tag_cre.match(release)
+ return ".".join(m.groups()[:3])
+
def build_release_dict(release, reldate, is_latest, page_pk):
"""Return a dictionary with all needed fields for a Release object."""
return dict(
@@ -107,7 +113,7 @@
release = '/api/v1/downloads/release/%s/' % rel_pk,
description = add_desc,
is_source = os_pk == 3,
- url = download_root + '%s/%s' % (release[:5], rfile),
+ url = download_root + '%s/%s' % (base_version(release), rfile),
md5_sum = md5sum_for(release, rfile),
filesize = filesize_for(release, rfile),
download_button = 'tar.xz' in rfile or
@@ -115,13 +121,13 @@
'macosx10.6.pkg' in rfile or
('.msi' in rfile and not 'amd64' in rfile),
)
- if os.path.exists(ftp_root + "%s/%s.asc" % (release[:5], rfile)):
- d["gpg_signature_file"] = sigfile_for(release[:5], rfile)
+ if os.path.exists(ftp_root + "%s/%s.asc" % (base_version(release), rfile)):
+ d["gpg_signature_file"] = sigfile_for(base_version(release), rfile)
return d
def list_files(release):
"""List all of the release's download files."""
- reldir = release[:5]
+ reldir = base_version(release)
for rfile in os.listdir(path.join(ftp_root, reldir)):
if not path.isfile(path.join(ftp_root, reldir, rfile)):
continue
--
Repository URL: https://hg.python.org/release
More information about the Python-checkins
mailing list