Skip to main content

Zope interfaces applied to Python builtins

Project description

dolmen.builtins provides a collection of interfaces representing the commonly used Python built-ins. It aims to make the component architecture useable with the most basic objects and to defines the types in order to extend them conveniently.

>>> from zope.interface import verify
>>> from dolmen.builtins import interfaces as base
>>> macduff = "Tis' a very nice string."
>>> base.IString.providedBy(macduff)
True
>>> macbeth = u"Aye, indeed my friend."
>>> base.IUnicode.providedBy(macbeth)
True
>>> is_usurper = True
>>> base.IBoolean.providedBy(is_usurper)
True
>>> crown = 1
>>> base.INumeric.providedBy(crown)
True
>>> king = 0.1
>>> base.INumeric.providedBy(king)
True
>>> opposants = 1L
>>> base.INumeric.providedBy(opposants)
True

More complex types have more information defined in their interfaces. It’s the case for iterables and file-like classes.

>>> murderers = ('MacBeth', 'Lady MacBeth')
>>> base.ITuple.providedBy(murderers)
True
>>> victims = ['Banco', 'Duncan']
>>> base.IList.providedBy(victims)
True
>>> thanes = {"Glamis": "MacBeth", "Fife": "MacDuff"}
>>> base.IDict.providedBy(thanes)
True
>>> base.IIterable.providedBy(victims)
True
>>> base.IIterable.providedBy(murderers)
True
>>> base.IIterable.providedBy(thanes)
True
>>> verify.verifyObject(base.IDict, thanes)
True
>>> base.IFile.implementedBy(file)
True
>>> verify.verifyClass(base.IFile, file)
True

Changelog

0.3.1 (2010-02-27)

  • Remove zope.testing dependency.

0.3 (2010-02-27)

  • Cleaned code. It’s now pep8 compliant.

  • Cleaned dependencies. We no longer depend on zope.app.

0.2 (2009-10-16)

  • Added file to the marked built-ins, using a detailed interface.

0.1 (2009-10-15)

  • Initial release

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page