zope.size

Latest release Supported Python versions https://github.com/zopefoundation/zope.size/actions/workflows/tests.yml/badge.svg Documentation Status https://coveralls.io/repos/github/zopefoundation/zope.size/badge.svg?branch=master

This package provides a definition of simple interface that allows applications to retrieve the size of the object for displaying and for sorting.

The default adapter is also provided. It expects objects to have the getSize method that returns size in bytes. However, the adapter won’t crash if an object doesn’t have one and will show size as “not available” instead.

Development is hosted at https://github.com/zopefoundation/zope.size

Documentation is hosted at https://zopesize.readthedocs.io

Contents:

zope.size API

Interfaces

Interfaces that give the size of an object.

interface zope.size.interfaces.ISized[source]

An object that is sized in some unit.

Basic units:

  • ‘byte’
  • ‘item’ for example, number of subobjects for a folder
  • None for unsized things
  • ‘line’ for source-code like things
sizeForDisplay()

Returns a string giving the size. The output string may be a zope.i18nmessageid.message.Message with an embedded mapping, so it should be translated with zope.i18n.translate()

sizeForSorting()

Returns a tuple (basic_unit, amount)

Used for sorting among different kinds of sized objects. ‘amount’ need only be sortable among things that share the same basic unit.

Implementations

Adapters that give the size of an object.

class zope.size.DefaultSized(obj)[source]

Bases: object

A default zope.size.interfaces.ISized adapter producing bytes for any object that has a getSize method and (None, None) for all other objects.

sizeForDisplay()[source]

See ISized

sizeForSorting()[source]

See ISized

zope.size.byteDisplay(size)[source]

Returns a size with the correct unit (KB, MB), given the size in bytes. The output should be given to zope.i18n.translate()

Changes

4.5 (unreleased)

  • Add support for Python 3.11.

4.4 (2022-08-30)

  • Drop support for Python 3.4.
  • Add support for Python 3.8, 3.9, 3.10.

4.3 (2018-10-05)

  • Add support for Python 3.7.

4.2.0 (2017-07-27)

  • Add support for Python 3.5 and 3.6.
  • Drop support for Python 2.6, 3.2 and 3.3.

4.1.0 (2014-12-29)

  • Add support for PyPy3.
  • Add support for Python 3.4.
  • Add support for testing on Travis.

4.0.1 (2013-03-08)

  • Add Trove classifiers indicating CPython and PyPy support.

4.0.0 (2013-02-13)

  • Replace deprecated zope.interface.implements usage with equivalent zope.interface.implementer decorator.
  • Drop support for Python 2.4 and 2.5.
  • Add support for Python 3.2 and 3.3.
  • Conditionally disable tests that require zope.configuration and zope.security.

3.5.0 (2011-11-29)

  • Include zcml dependencies in configure.zcml, require the necessary packages via a zcml extra, added tests for zcml.

3.4.1 (2009-09-10)

  • Add support for bootstrapping on Jython.
  • Add docstrings.
  • Beautify package’s README and include CHANGES into the description.
  • Change package’s url to PyPI instead of Subversion.

3.4.0 (2006-09-29)

  • First release as a separate egg

Indices and tables