[Python-checkins] r79371 - sandbox/trunk/release/size.py

barry.warsaw python-checkins at python.org
Wed Mar 24 14:04:05 CET 2010


Author: barry.warsaw
Date: Wed Mar 24 14:04:05 2010
New Revision: 79371

Log:
convenience function

Added:
   sandbox/trunk/release/size.py   (contents, props changed)

Added: sandbox/trunk/release/size.py
==============================================================================
--- (empty file)
+++ sandbox/trunk/release/size.py	Wed Mar 24 14:04:05 2010
@@ -0,0 +1,32 @@
+#! /usr/bin/python3
+
+"""Dump the sizes for the given files, suitable for pasting into content.ht"""
+
+import os
+import sys
+import hashlib
+
+DOT = '.'
+
+
+# For consistency with historical use.
+sort_order = dict((ext, i) for i, ext in enumerate(
+    ('tgz', 'tar.bz2', 'amd64.msi', 'msi', 'dmg')))
+
+
+def key(filename):
+    parts = filename.split(DOT)
+    # Try 2 parts first.
+    ext = DOT.join(parts[-2:])
+    if ext not in sort_order:
+        ext = parts[-1]
+    # Let KeyError propagate.
+    return sort_order[ext]
+
+
+for filename in sorted(sys.argv[1:], key=key):
+    md5 = hashlib.md5()
+    with open(filename, 'rb') as fp:
+        md5.update(fp.read())
+    size = os.stat(filename).st_size
+    print('  {}  {:8}  {}'.format(md5.hexdigest(), size, filename))


More information about the Python-checkins mailing list