{ "info": { "author": "Arjan Molenaar", "author_email": "gaphor@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries" ], "description": "Roles\n=====\n\nLibrary for Role based development.\n\nPythonic implementation of the DCI (Data Context Interaction) pattern\n(http://www.artima.com/articles/dci_vision.html).\n\nThe big difference with mixins is that this role is applied only to the subject\ninstance, not to the subject class (alas, a new class is constructed).\n\nRoles can be assigned and revoked. Multiple roles can be applied to an\ninstance. Revocation can happen in any particular order.\n\nHomepage: http://amolenaar.github.com/roles\n\nReleases: http://pypi.python.org/pypi/roles\n\n\nUsing Roles\n-----------\n\nAs a basic example, consider a domain class:\n\n>>> class Person(object):\n... def __init__(self, name):\n... self.name = name\n>>> person = Person(\"John\")\n\nThe instance should participate in a collaboration in which it fulfills a\nparticular role:\n\n>>> from roles import RoleType\n>>> class Carpenter(object):\n... __metaclass__ = RoleType\n... def chop(self):\n... return \"chop, chop\"\n\nAssign the role to the person:\n\n>>> Carpenter(person)\t\t\t\t# doctest: +ELLIPSIS\n\n>>> person\t\t\t\t\t# doctest: +ELLIPSIS\n\n\nThe person is still a Person:\n\n>>> isinstance(person, Person)\nTrue\n\n... and can do carpenter things:\n\n>>> person.chop()\n'chop, chop'\n\nSee `roles.py `_ for more examples.\n\nContext\n-------\n\nRoles make a lot of sense when used in a context. A classic example is the\nmoney transfer example. Here two accounts are used and an amount of money is\ntransfered from one account to the other. So, one account playes the role of\nsource account and the other plays the role of target account.\n\nAn example can be found in `example.py `_ and `example2.py `_.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/amolenaar/roles", "keywords": "role DCI data context interaction", "license": "BSD License", "maintainer": null, "maintainer_email": null, "name": "roles", "package_url": "https://pypi.org/project/roles/", "platform": "All", "project_url": "https://pypi.org/project/roles/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/amolenaar/roles" }, "release_url": "https://pypi.org/project/roles/0.10/", "requires_dist": null, "requires_python": null, "summary": "Role based development", "version": "0.10" }, "last_serial": 799019, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "203f3ff26475dad29622a6713fab913f", "sha256": "c5eb113d26ab707ceeb1806432672cdec4992b190ce8325f415d6d387134fb82" }, "downloads": -1, "filename": "roles-0.1.0.tar.gz", "has_sig": false, "md5_digest": "203f3ff26475dad29622a6713fab913f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4399, "upload_time": "2009-08-31T12:25:02", "url": "https://files.pythonhosted.org/packages/2c/9c/78582b725fd380b0bfd04822f6771a7e6015a9f8c8d35aa6f3ad6ae23a09/roles-0.1.0.tar.gz" } ], "0.10": [ { "comment_text": "", "digests": { "md5": "86e25a9eab79141b42c57bbeeda82c17", "sha256": "eba95a4e201ef65f53c2175f09709b2282c14bf4e8e6e69bf715f02601a9d435" }, "downloads": -1, "filename": "roles-0.10-py2.7.egg", "has_sig": false, "md5_digest": "86e25a9eab79141b42c57bbeeda82c17", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18809, "upload_time": "2012-05-14T22:24:17", "url": "https://files.pythonhosted.org/packages/e3/f0/94d0dd6b46ab23c0ae557bee409771a7c98384fed9cda028e0f8955ab02d/roles-0.10-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "00a0ea567b3c18403932cfc8894962aa", "sha256": "ba60c2ab16914e8384f6d8f153f6a1ef10564e27848a5b6b2ba46f83d6646056" }, "downloads": -1, "filename": "roles-0.10.tar.gz", "has_sig": false, "md5_digest": "00a0ea567b3c18403932cfc8894962aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14446, "upload_time": "2012-05-14T22:24:16", "url": "https://files.pythonhosted.org/packages/34/e1/945df8eef6225f5fb65536a0e1d56851272f3c6b90fff2eaab40e6f0e63b/roles-0.10.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "9ac235faf31106314121abd64a111ae7", "sha256": "23612b572a9976a0739438f76d41cb4536e5d270ef43ecee5486388d727a7bd0" }, "downloads": -1, "filename": "roles-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9ac235faf31106314121abd64a111ae7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5099, "upload_time": "2009-09-01T22:24:43", "url": "https://files.pythonhosted.org/packages/35/13/338e7b97233f4bb12bbb29bd7eca271b181b281487ba3ee1425f1ca9ae09/roles-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "e6cab357baaf42b9bab226890de68265", "sha256": "120aa0f94adf51c1509122ad15248d7f95b3121a255fb844f727cb27806d84c6" }, "downloads": -1, "filename": "roles-0.3.0.tar.gz", "has_sig": false, "md5_digest": "e6cab357baaf42b9bab226890de68265", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5343, "upload_time": "2009-09-03T23:32:20", "url": "https://files.pythonhosted.org/packages/01/21/1d4c9fa75c38d09068ce11916eb4ddedce417050ef509f95ef0f0065b435/roles-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "7a29b7f4973321414b77e9894265225f", "sha256": "d96fe59740fe9ed185f4bf5aa9b396cd6ff67da69d8a3a34c4ad75257661f484" }, "downloads": -1, "filename": "roles-0.4.0.tar.gz", "has_sig": false, "md5_digest": "7a29b7f4973321414b77e9894265225f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5327, "upload_time": "2009-09-10T10:57:39", "url": "https://files.pythonhosted.org/packages/ae/bd/03417defbdf903bbfd1ab3513dc0ff795deb60b469340910884f34a0f14d/roles-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "e3e7b890a29806a67182e570035b9c2a", "sha256": "5462ceec8657df56e42c2bbf86ac921f83e14142ca369b89f6229cd435bc8513" }, "downloads": -1, "filename": "roles-0.5.0.tar.gz", "has_sig": false, "md5_digest": "e3e7b890a29806a67182e570035b9c2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5863, "upload_time": "2009-09-12T10:31:28", "url": "https://files.pythonhosted.org/packages/ca/71/3cedb030f9814ad836566e01764bf5aaf06d923b77ad535107873239843e/roles-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "490775f2f030fa1b333189da87e79f7b", "sha256": "24d470618b76944fcf866b3035328001a00d824de78418ab54ea973089602e37" }, "downloads": -1, "filename": "roles-0.6.0.tar.gz", "has_sig": false, "md5_digest": "490775f2f030fa1b333189da87e79f7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5456, "upload_time": "2009-10-12T21:36:27", "url": "https://files.pythonhosted.org/packages/5b/10/f40969927717bc551fe5b2ba1c77fb2b85e15aaf2ff02ed99b5eea41de81/roles-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "9557a26c64d84bc2a3763e74b14e09de", "sha256": "d9c520926e0a97670cec610646cf94edcba33365df0d7a12ecea69c700423484" }, "downloads": -1, "filename": "roles-0.7.0-py2.6.egg", "has_sig": false, "md5_digest": "9557a26c64d84bc2a3763e74b14e09de", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 11199, "upload_time": "2009-11-25T19:30:36", "url": "https://files.pythonhosted.org/packages/a6/a4/5774fa82c2279502773d638f82f4d1dbfbecfac01b6aacb84dea137f6426/roles-0.7.0-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "23b0cb4a4ff2277a0065412324634a3b", "sha256": "31e1008983d0ad6c73df862b5e02791f5bb37ee7902b0157b2c0da5f78cdf6dc" }, "downloads": -1, "filename": "roles-0.7.0.tar.gz", "has_sig": false, "md5_digest": "23b0cb4a4ff2277a0065412324634a3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5761, "upload_time": "2009-11-25T19:30:36", "url": "https://files.pythonhosted.org/packages/b6/48/7551ccf37816d377f794f4823dd1f668f2e591f5925d8bda921f74e94717/roles-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "dbefb335c10e2d6b721fa3880e5f11e5", "sha256": "ecc5d8aabfb8c0de0fa40c4e4f054ff3de7d2c084d33e5f6e5ace8ec46973ce1" }, "downloads": -1, "filename": "roles-0.7.1-py2.6.egg", "has_sig": false, "md5_digest": "dbefb335c10e2d6b721fa3880e5f11e5", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 11728, "upload_time": "2010-10-11T08:43:39", "url": "https://files.pythonhosted.org/packages/72/05/5f4906c1d0af6b5613890e79b06e484a633b766b4785238eddd145ef3b27/roles-0.7.1-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "b9e2c1213896ec44648859ac09e4c56d", "sha256": "c5892db2291b68438465ee264a5c0a25db72ce933cfe1ed31c2f4e23813b6154" }, "downloads": -1, "filename": "roles-0.7.1.tar.gz", "has_sig": false, "md5_digest": "b9e2c1213896ec44648859ac09e4c56d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6401, "upload_time": "2010-10-11T08:43:38", "url": "https://files.pythonhosted.org/packages/db/db/4cbaaa14dc94511eea137a47e917da47e9dcc87e5adb5fc3e094389749b4/roles-0.7.1.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "9cad76f567b2b4010a7f2d7620f2ce75", "sha256": "0aa3fe67f0d2922821dc71f6ddb9d0e09cb92f31b187c1e8c43b9ce0b6258780" }, "downloads": -1, "filename": "roles-0.8-py2.6.egg", "has_sig": false, "md5_digest": "9cad76f567b2b4010a7f2d7620f2ce75", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 14186, "upload_time": "2010-11-19T13:38:31", "url": "https://files.pythonhosted.org/packages/a4/15/11f4aba05414812f2b7c808e28a1eac0299c2f5e6bdc551ba99f82513e67/roles-0.8-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "a31ffd3047bb190b7429c802cbd52e66", "sha256": "f2c36b4f2748f6b7b9e19373a09893e561831bd9f8c554e138a4eb1ab9a0896c" }, "downloads": -1, "filename": "roles-0.8.tar.gz", "has_sig": false, "md5_digest": "a31ffd3047bb190b7429c802cbd52e66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12071, "upload_time": "2010-11-19T13:38:30", "url": "https://files.pythonhosted.org/packages/60/4a/8fc0a67037a6ef4ea30a8e869aa91a1f67da223dcbacbac35371428c67ad/roles-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "0eb27ce1b74df6ecbc0c7a7135d79cb3", "sha256": "6eb3f6fb53f0ee205b3b922dfc4fb4e62ad01e7b077876bb151023bd2a771c29" }, "downloads": -1, "filename": "roles-0.9-py2.6.egg", "has_sig": false, "md5_digest": "0eb27ce1b74df6ecbc0c7a7135d79cb3", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 17837, "upload_time": "2010-11-28T22:15:32", "url": "https://files.pythonhosted.org/packages/1f/4a/d9b0cc265909d70d1b6735d9eba1fe0202047955636437cc6195a846a113/roles-0.9-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "0546a8a29f43a8da22ca9dac83fbad9c", "sha256": "2f01a01598e053247e046828dd5fd3b78aedad0a19372442fe87481346edda8c" }, "downloads": -1, "filename": "roles-0.9.tar.gz", "has_sig": false, "md5_digest": "0546a8a29f43a8da22ca9dac83fbad9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17834, "upload_time": "2010-11-28T22:15:31", "url": "https://files.pythonhosted.org/packages/eb/d1/2dd4113995d1631f2fc4923bbb47d5e4683bd28d2c1659438c1be081be72/roles-0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "86e25a9eab79141b42c57bbeeda82c17", "sha256": "eba95a4e201ef65f53c2175f09709b2282c14bf4e8e6e69bf715f02601a9d435" }, "downloads": -1, "filename": "roles-0.10-py2.7.egg", "has_sig": false, "md5_digest": "86e25a9eab79141b42c57bbeeda82c17", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18809, "upload_time": "2012-05-14T22:24:17", "url": "https://files.pythonhosted.org/packages/e3/f0/94d0dd6b46ab23c0ae557bee409771a7c98384fed9cda028e0f8955ab02d/roles-0.10-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "00a0ea567b3c18403932cfc8894962aa", "sha256": "ba60c2ab16914e8384f6d8f153f6a1ef10564e27848a5b6b2ba46f83d6646056" }, "downloads": -1, "filename": "roles-0.10.tar.gz", "has_sig": false, "md5_digest": "00a0ea567b3c18403932cfc8894962aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14446, "upload_time": "2012-05-14T22:24:16", "url": "https://files.pythonhosted.org/packages/34/e1/945df8eef6225f5fb65536a0e1d56851272f3c6b90fff2eaab40e6f0e63b/roles-0.10.tar.gz" } ] }