{
"info": {
"author": "Martin Aspeli",
"author_email": "optilude@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Framework :: Plone",
"Framework :: Plone :: 4.3",
"Framework :: Plone :: 5.0",
"Framework :: Plone :: 5.1",
"Framework :: Plone :: 5.2",
"License :: OSI Approved :: BSD License",
"Programming Language :: Python",
"Programming Language :: Python :: 2.6",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.5"
],
"description": "plone.uuid\n==========\n\nThis is a minimal package that can be used to obtain a universally unique\nidentifier (UUID) for an object.\n\nThe default implementation uses the Python standard library ``uuid`` module\nto generate an RFC 4122-compliant UUID, using the ``uuid4()`` function. It\nwill assign a UUID upon object creation (by subscribing to\n``IObjectCreatedEvent`` from ``zope.lifecycleevent``) and store it in an\nattribute on the object.\n\n Why use an attribute and not annotations? The most common form of annotation\n is the one provided by ``IAttributeAnnotations``. This stores annotations in\n a BTree in an attribute called ``__annotations__``, which means that\n annotation values do not end up in the same ZODB persistent object as the\n parent. This is good for \"large\" values, but not very good for small ones\n that are frequently required, as it requires a separate ZODB object load.\n\nSimple usage\n============\n\nTo automatically assign a UUID to your objects using the default\nimplementation outlined above, you should:\n\n* Make sure they implement ``plone.uuid.interfaces.IAttributeUUID``. You\n can do this in code, via the ``implements()`` directive, or in ZCML, with\n a statement like::\n\n