[Checkins] SVN: hurry.filesize/ Initial import.
Martijn Faassen
faassen at infrae.com
Wed Mar 11 17:47:19 EDT 2009
Log message for revision 97921:
Initial import.
Changed:
A hurry.filesize/
A hurry.filesize/trunk/
A hurry.filesize/trunk/buildout.cfg
A hurry.filesize/trunk/setup.py
A hurry.filesize/trunk/src/
A hurry.filesize/trunk/src/hurry/
A hurry.filesize/trunk/src/hurry/__init__.py
A hurry.filesize/trunk/src/hurry/filesize/
A hurry.filesize/trunk/src/hurry/filesize/__init__.py
A hurry.filesize/trunk/src/hurry/filesize/filesize.py
A hurry.filesize/trunk/src/hurry/filesize/tests.py
-=-
Added: hurry.filesize/trunk/buildout.cfg
===================================================================
--- hurry.filesize/trunk/buildout.cfg (rev 0)
+++ hurry.filesize/trunk/buildout.cfg 2009-03-11 21:47:19 UTC (rev 97921)
@@ -0,0 +1,9 @@
+[buildout]
+develop = .
+parts = test
+newest = false
+
+[test]
+recipe = zc.recipe.testrunner
+eggs = hurry.filesize
+defaults = ['--tests-pattern', '^f?tests$', '-v']
Added: hurry.filesize/trunk/setup.py
===================================================================
--- hurry.filesize/trunk/setup.py (rev 0)
+++ hurry.filesize/trunk/setup.py 2009-03-11 21:47:19 UTC (rev 97921)
@@ -0,0 +1,41 @@
+from setuptools import setup, find_packages
+import os
+
+def read(*rnames):
+ return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
+
+#long_description = (
+# read('src/hurry/file/README.txt')
+# + '\n' +
+# read('src/hurry/file/browser/file.txt')
+# + '\n' +
+# read('CHANGES.txt')
+# )
+
+setup(
+ name="hurry.filesize",
+ version="09ev",
+ description="""\
+hurry.filesize is a simple Python library to make display human readable
+sizes of files (or anything that is sized in bytes), in kilobytes, megabytes,
+etc.
+""",
+# long_description=long_description,
+ classifiers=[
+ "Programming Language :: Python",
+ "Topic :: Software Development :: Libraries :: Python Modules",
+ ],
+ keywords='file size bytes',
+ author='Martijn Faassen, Startifact',
+ author_email='faassen at startifact.com',
+ url='',
+ license='ZPL 2.1',
+ packages=find_packages('src'),
+ package_dir= {'':'src'},
+ namespace_packages=['hurry'],
+ include_package_data=True,
+ zip_safe=False,
+ install_requires=[
+ 'setuptools',
+ ],
+ )
Added: hurry.filesize/trunk/src/hurry/__init__.py
===================================================================
--- hurry.filesize/trunk/src/hurry/__init__.py (rev 0)
+++ hurry.filesize/trunk/src/hurry/__init__.py 2009-03-11 21:47:19 UTC (rev 97921)
@@ -0,0 +1,7 @@
+# this is a namespace package
+try:
+ import pkg_resources
+ pkg_resources.declare_namespace(__name__)
+except ImportError:
+ import pkgutil
+ __path__ = pkgutil.extend_path(__path__, __name__)
Added: hurry.filesize/trunk/src/hurry/filesize/__init__.py
===================================================================
--- hurry.filesize/trunk/src/hurry/filesize/__init__.py (rev 0)
+++ hurry.filesize/trunk/src/hurry/filesize/__init__.py 2009-03-11 21:47:19 UTC (rev 97921)
@@ -0,0 +1,3 @@
+from hurry.filesize.filesize import size
+
+
Added: hurry.filesize/trunk/src/hurry/filesize/filesize.py
===================================================================
--- hurry.filesize/trunk/src/hurry/filesize/filesize.py (rev 0)
+++ hurry.filesize/trunk/src/hurry/filesize/filesize.py 2009-03-11 21:47:19 UTC (rev 97921)
@@ -0,0 +1,74 @@
+
+traditional = [
+ (1024 ** 5, 'P'),
+ (1024 ** 4, 'T'),
+ (1024 ** 3, 'G'),
+ (1024 ** 2, 'M'),
+ (1024 ** 1, 'K'),
+ (1024 ** 0, 'B')
+ ]
+
+si = [
+ (1000 ** 5, 'P'),
+ (1000 ** 4, 'T'),
+ (1000 ** 3, 'G'),
+ (1000 ** 2, 'M'),
+ (1000 ** 1, 'K'),
+ (1000 ** 0, 'B')
+ ]
+
+def size(bytes, system=traditional):
+ """Human-readable file size.
+
+ Using the traditional system, where a factor of 1024 is used::
+
+ >>> size(10)
+ '10B'
+ >>> size(100)
+ '100B'
+ >>> size(1000)
+ '1000B'
+ >>> size(2000)
+ '1K'
+ >>> size(10000)
+ '9K'
+ >>> size(20000)
+ '19K'
+ >>> size(100000)
+ '97K'
+ >>> size(200000)
+ '195K'
+ >>> size(1000000)
+ '976K'
+ >>> size(2000000)
+ '1M'
+
+ Using the SI system, with a factor 1000::
+
+ >>> size(10, system=si)
+ '10B'
+ >>> size(100, system=si)
+ '100B'
+ >>> size(1000, system=si)
+ '1K'
+ >>> size(2000, system=si)
+ '2K'
+ >>> size(10000, system=si)
+ '10K'
+ >>> size(20000, system=si)
+ '20K'
+ >>> size(100000, system=si)
+ '100K'
+ >>> size(200000, system=si)
+ '200K'
+ >>> size(1000000, system=si)
+ '1M'
+ >>> size(2000000, system=si)
+ '2M'
+
+ """
+ for factor, suffix in system:
+ if bytes >= factor:
+ break
+ return str(int(bytes/factor)) + suffix
+
Added: hurry.filesize/trunk/src/hurry/filesize/tests.py
===================================================================
--- hurry.filesize/trunk/src/hurry/filesize/tests.py (rev 0)
+++ hurry.filesize/trunk/src/hurry/filesize/tests.py 2009-03-11 21:47:19 UTC (rev 97921)
@@ -0,0 +1,6 @@
+import unittest, doctest
+
+def test_suite():
+ return unittest.TestSuite((
+ doctest.DocTestSuite('hurry.filesize.filesize'),
+ ))
More information about the Checkins
mailing list