{ "info": { "author": "Phoenix Zerin", "author_email": "phoenix.zerin@eflglobal.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. image:: https://travis-ci.org/eflglobal/class-registry.svg?branch=master\n :target: https://travis-ci.org/eflglobal/class-registry\n.. image:: https://readthedocs.org/projects/class-registry/badge/?version=latest\n :target: http://class-registry.readthedocs.io/\n\n=============\nClassRegistry\n=============\n\nAt the intersection of the Registry and Factory patterns lies the\n``ClassRegistry``:\n\n- Define global factories that generate new class instances based on\n configurable keys.\n- Seamlessly create powerful service registries.\n- Integrate with setuptools's ``entry_points`` system to make your registries\n infinitely extensible by 3rd-party libraries!\n- And more!\n\n---------------\nGetting Started\n---------------\n\nCreate a registry using the ``class_registry.ClassRegistry`` class, then\ndecorate any classes that you wish to register with its ``register`` method:\n\n.. code-block:: python\n\n from class_registry import ClassRegistry\n\n pokedex = ClassRegistry()\n\n @pokedex.register('fire')\n class Charizard(Pokemon):\n ...\n\n @pokedex.register('grass')\n class Bulbasaur(Pokemon):\n ...\n\n @pokedex.register('water')\n class Squirtle(Pokemon):\n ...\n\nTo create a class instance from a registry, use the subscript operator:\n\n.. code-block:: python\n\n # Charizard, I choose you!\n fighter1 = pokedex['fire']\n\n # CHARIZARD fainted!\n # How come my rival always picks the type that my pok\u00e9mon is weak against??\n fighter2 = pokedex['grass']\n\nAdvanced Usage\n--------------\n\nThere's a whole lot more you can do with ClassRegistry, including:\n\n- Provide args and kwargs to new class instances.\n- Automatically register non-abstract classes.\n- Integrate with setuptools's ``entry_points`` system so that 3rd-party\n libraries can add their own classes to your registries.\n- Wrap your registry in an instance cache to create a service registry.\n- And more!\n\nFor more advanced usage, `check out the documentation on RTD`_!\n\n------------\nRequirements\n------------\n\nClassRegistry is compatible with Python versions 3.6, 3.5 and 2.7.\n\n------------\nInstallation\n------------\n\nInstall the latest stable version via pip::\n\n pip install class-registry\n\n\n\n.. _check out the documentation on rtd: https://class-registry.readthedocs.org/\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://class-registry.readthedocs.io/", "keywords": "registry pattern", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "class-registry", "package_url": "https://pypi.org/project/class-registry/", "platform": "", "project_url": "https://pypi.org/project/class-registry/", "project_urls": { "Homepage": "https://class-registry.readthedocs.io/" }, "release_url": "https://pypi.org/project/class-registry/2.1.2/", "requires_dist": [ "six", "typing; python_version < \"3.0\"" ], "requires_python": "", "summary": "Factory+Registry pattern for Python classes.", "version": "2.1.2" }, "last_serial": 3452217, "releases": { "2.0.0": [ { "comment_text": "", "digests": { "md5": "422291fe168d27fa4fec54b2f9f09466", "sha256": "71e8a5b8ba47bc3b9f4cc03ff9adef3ef1cce43223a10b92ee8ce427dcde711f" }, "downloads": -1, "filename": "class_registry-2.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "422291fe168d27fa4fec54b2f9f09466", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12083, "upload_time": "2017-07-01T01:02:23", "url": "https://files.pythonhosted.org/packages/b5/80/eee87536ee038b7fe7ffd031ee92b55889997555a96f15d807bf4188d451/class_registry-2.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d61e162586b62229f35a46a78d75607", "sha256": "1476f2b80a01eff9aef3270f0459282ed720e0985ed51b51ec36fa8e7bed77e6" }, "downloads": -1, "filename": "class_registry-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6d61e162586b62229f35a46a78d75607", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12077, "upload_time": "2017-07-01T01:03:11", "url": "https://files.pythonhosted.org/packages/0c/99/329b5e7706f18b99b692d8d431676c459f6aca56029c7230e2adcb97d780/class_registry-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f3a6d7d80e4d507916f57785e4cfb2c2", "sha256": "9a947976c19cbd2c87e63df61f76c59ab0dcb851ac4deb9b50709941a42d698c" }, "downloads": -1, "filename": "class-registry-2.0.0.tar.gz", "has_sig": false, "md5_digest": "f3a6d7d80e4d507916f57785e4cfb2c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14318, "upload_time": "2017-07-01T01:02:24", "url": "https://files.pythonhosted.org/packages/32/6f/aca81a73c639395bec4be2386132cdcd821b3a6474ce5a448a866f4a3f4c/class-registry-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "7992887947e3543472f2dd43b35e270d", "sha256": "883256bb7e19d506580f5b552b86b34ccd228574937920f0fceb53503e56f172" }, "downloads": -1, "filename": "class_registry-2.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "7992887947e3543472f2dd43b35e270d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12241, "upload_time": "2017-07-01T01:23:54", "url": "https://files.pythonhosted.org/packages/72/4b/0c0da45816da89f949bddc4b33e71e25bbcee54748739c44a94e7b10f87b/class_registry-2.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66320cb6df8e91507ae61e02e6257ee0", "sha256": "7ccd4356767fc108413a76885a547c9a8521243227cd997a6e2160bb48d3f935" }, "downloads": -1, "filename": "class_registry-2.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "66320cb6df8e91507ae61e02e6257ee0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12234, "upload_time": "2017-07-01T01:24:47", "url": "https://files.pythonhosted.org/packages/b5/b9/16ec0633b043f41911b003613a53fe93c823f634b89bfb7493113544bb62/class_registry-2.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2bf100f6d017a15c09763f2fca12723f", "sha256": "f5c787dec5f864c7ffd59d48b4377f45251472bbf98af99bdd81aac96153baac" }, "downloads": -1, "filename": "class-registry-2.0.1.tar.gz", "has_sig": false, "md5_digest": "2bf100f6d017a15c09763f2fca12723f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14489, "upload_time": "2017-07-01T01:23:55", "url": "https://files.pythonhosted.org/packages/a4/e8/7783889fb86de0c9cad701987ba9935a79eee5909835f0afaeeba2f8f45a/class-registry-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "0ccee29676851a2762f66642fa949d12", "sha256": "567ab5048995bbfbbf8e862596cc7e25799617978a6a8a685e796921d637e4c9" }, "downloads": -1, "filename": "class_registry-2.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "0ccee29676851a2762f66642fa949d12", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12414, "upload_time": "2017-08-07T01:55:19", "url": "https://files.pythonhosted.org/packages/ef/54/23021e66d68856b28e51193d7a559c2c6615280a92c9d2da73a109181f03/class_registry-2.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee7344b75e2d6aaad9fb111a89d192bd", "sha256": "2798549ef1a957ccfc487be6f4fdb738aa84a4db962962ad12343058ede7ddc4" }, "downloads": -1, "filename": "class_registry-2.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ee7344b75e2d6aaad9fb111a89d192bd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12413, "upload_time": "2017-08-07T01:55:18", "url": "https://files.pythonhosted.org/packages/bd/cf/a7be9ab0f7042852d29c4bfb90a14f56f88addad2489e23c8a57936da878/class_registry-2.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e5752724c573f597d6b2ec4ad8d71827", "sha256": "0e5c18194a74d9762801061da3f9debed15fe05b638d6d42f65f9641a613e332" }, "downloads": -1, "filename": "class-registry-2.0.2.tar.gz", "has_sig": false, "md5_digest": "e5752724c573f597d6b2ec4ad8d71827", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14522, "upload_time": "2017-08-07T01:55:19", "url": "https://files.pythonhosted.org/packages/ca/7e/04794a859e0da5cd4a394f6ec4492d1446dc36222c6ea8c18b739387c499/class-registry-2.0.2.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "48faf950d1f0e9a59722ddb686d7941b", "sha256": "12d28642d89bc4f823369b36ad337988e9a423230e8bb3b6e43e50c5f5c0a031" }, "downloads": -1, "filename": "class_registry-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "48faf950d1f0e9a59722ddb686d7941b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12521, "upload_time": "2017-10-12T22:31:19", "url": "https://files.pythonhosted.org/packages/59/7a/faeae485777a0673cb878416bb14ae6fc00fb1462cbfac5f0eb057b66946/class_registry-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aab361d6b4cab68d4f091049a790bddb", "sha256": "97a116a6e448e183d14d6fe82b5797b824dff9d10fdf3adf16936286f737597a" }, "downloads": -1, "filename": "class-registry-2.1.0.tar.gz", "has_sig": false, "md5_digest": "aab361d6b4cab68d4f091049a790bddb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14590, "upload_time": "2017-10-12T22:31:21", "url": "https://files.pythonhosted.org/packages/eb/8e/2e378e2c268afddf00ce8c1f1af7cfc490101554c925ba851d81ec7fb49b/class-registry-2.1.0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "80965765d874ff0cd015018da9d81fdc", "sha256": "c89e66c293dbaf058f9902b02e7e14b7f4ff6a372f7b24cbc1bf7977f632c913" }, "downloads": -1, "filename": "class_registry-2.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "80965765d874ff0cd015018da9d81fdc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12861, "upload_time": "2017-12-30T22:20:45", "url": "https://files.pythonhosted.org/packages/7b/1f/21ea67cdd5b7b16fbd5f24f4f698982730edbf387bbf2bdddfa6fb8ce814/class_registry-2.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24c5204f9fc6c09d633bb583a93c1ae2", "sha256": "b19228f3fa50379f0168efc8aa946ddd512135689944a957a00b8fdbd612dff3" }, "downloads": -1, "filename": "class-registry-2.1.1.tar.gz", "has_sig": false, "md5_digest": "24c5204f9fc6c09d633bb583a93c1ae2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15251, "upload_time": "2017-12-30T22:20:47", "url": "https://files.pythonhosted.org/packages/89/f3/d61d66d0a560b6633673c4c2852244ec16122cf7c2406e1fb2346370eda0/class-registry-2.1.1.tar.gz" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "4f24faef3adafb5572a8ea762ba629f5", "sha256": "cfb855514753e2edfe8d88b14a6e449820682fe0983efe61b83df28b688b3e5a" }, "downloads": -1, "filename": "class_registry-2.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4f24faef3adafb5572a8ea762ba629f5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12875, "upload_time": "2017-12-30T23:34:28", "url": "https://files.pythonhosted.org/packages/05/ca/3723cb3a74a23fe77c88f29fe06fed202acc398763d36b6721dc2883bbd4/class_registry-2.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e992ec6201cae721afad6a4416a0586", "sha256": "678bdb0322566c07a4d8905140d364bd34a73baf46bf7580fc2e06fa994d4e7e" }, "downloads": -1, "filename": "class-registry-2.1.2.tar.gz", "has_sig": false, "md5_digest": "6e992ec6201cae721afad6a4416a0586", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15277, "upload_time": "2017-12-30T23:34:29", "url": "https://files.pythonhosted.org/packages/77/12/9588e71126438abdf10d3cec4ff4257eedaf6bc9b9637ab001d138d74085/class-registry-2.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4f24faef3adafb5572a8ea762ba629f5", "sha256": "cfb855514753e2edfe8d88b14a6e449820682fe0983efe61b83df28b688b3e5a" }, "downloads": -1, "filename": "class_registry-2.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4f24faef3adafb5572a8ea762ba629f5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12875, "upload_time": "2017-12-30T23:34:28", "url": "https://files.pythonhosted.org/packages/05/ca/3723cb3a74a23fe77c88f29fe06fed202acc398763d36b6721dc2883bbd4/class_registry-2.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e992ec6201cae721afad6a4416a0586", "sha256": "678bdb0322566c07a4d8905140d364bd34a73baf46bf7580fc2e06fa994d4e7e" }, "downloads": -1, "filename": "class-registry-2.1.2.tar.gz", "has_sig": false, "md5_digest": "6e992ec6201cae721afad6a4416a0586", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15277, "upload_time": "2017-12-30T23:34:29", "url": "https://files.pythonhosted.org/packages/77/12/9588e71126438abdf10d3cec4ff4257eedaf6bc9b9637ab001d138d74085/class-registry-2.1.2.tar.gz" } ] }