Skip to main content

zope.interface compliant ordered dictionary.

Project description

zodict

Ordered dictionary which implements the corresponding zope.interface.common.mapping interface.:

>>> from zope.interface.common.mapping import IFullMapping
>>> from zodict import zodict
>>> zod = zodict()
>>> IFullMapping.providedBy(zod)
True

Node

This is a zodict which provides a location.:

>>> from zope.location.interface import ILocation
>>> from zodict.node import Node
>>> root = Node('root')
>>> ILocation.providedBy(Node)
True

>>> root['child'] = Node()
>>> root['child'].path
['root', 'child']

>>> child = root['child']
>>> child.__name__
'child'

>>> child.__parent__
<Node object 'root' at ...>

The filtereditems function.:

>>> from zope.interface import Interface
>>> from zope.interface import alsoProvides
>>> class IMarker(Interface): pass
>>> alsoProvides(root['child']['subchild'], IMarker)
>>> IMarker.providedBy(root['child']['subchild'])
True

>>> for item in root['child'].filtereditems(IMarker):
...     print item.path
['root', 'child', 'subchild']

UUID related operations on Node.:

>>> uuid = root['child']['subchild'].uuid
>>> uuid
UUID('...')

>>> root.node(uuid).path
['root', 'child', 'subchild']

>>> root.uuid = uuid
Traceback (most recent call last):
  ...
ValueError: Given uuid was already used for another Node

>>> import uuid
>>> newuuid = uuid.uuid4()

>>> root.uuid = newuuid
>>> root['child'].node(newuuid).path
['root']

>>> root.uuid = object()
Traceback (most recent call last):
  ...
AssertionError: arg <object object at ...> does not match <class 'uuid.UUID'>

Changes

Version 1.3

-Add uuid Attribute and node function to Node.

rnix, 2009-03-23

Version 1.2

-Add filtereditems function to Node.

rnix, 2009-03-22

Version 1.1

-Add INode interface and implementation.

rnix, 2009-03-18

Credits

-Written by Robert Niederreiter <rnix@squarewave.at> (2009-03-17)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zodict-1.3.tar.gz (4.2 kB view details)

Uploaded Source

File details

Details for the file zodict-1.3.tar.gz.

File metadata

  • Download URL: zodict-1.3.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for zodict-1.3.tar.gz
Algorithm Hash digest
SHA256 2b5ac7fccd5e0ba67b11c7b9126400c6db3c2e9a9c60af01038dc3b338d6d5a8
MD5 129b13e3729fbd187554831bd9387bda
BLAKE2b-256 503d724cd8fcfe1ff6b37a8a522b705c16f020999c8a11648b77dd1d1c824eed

See more details on using hashes here.

Supported by

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