{ "info": { "author": "Aaron Gallagher", "author_email": "_@habnab.it", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Topic :: Utilities" ], "description": "========\nPanglery\n========\n\n|panglery| is a library for writing hooks for events in python.\n\nHere's a basic example of usage::\n\n import panglery\n p = panglery.Pangler()\n\n @p.subscribe(event='example', needs=['spam'])\n def example_hook(p, spam):\n print spam\n\n p.trigger(event='example', spam='eggs')\n # prints 'eggs'\n\nAnd a little bit more involved::\n\n @p.subscribe(needs=['spam'], returns=['spam'])\n def modify_spam_hook(p, spam):\n spam = spam + ' spam'\n return {'spam': spam}\n\n p.trigger(event='example', spam='eggs')\n # prints 'eggs spam'\n\nHooks can also add parameters to an event which then trigger other hooks::\n\n p = panglery.Pangler()\n\n @p.subscribe(needs=['spam'], returns=['eggs'])\n def make_eggs_hook(p, spam):\n eggs = spam + ' eggs'\n return {'eggs': eggs}\n\n @p.subscribe(event='example', needs=['eggs']):\n def eggs_hook(p, eggs):\n print eggs\n\n p.trigger(event='example', spam='eggs')\n # prints 'eggs eggs'\n\nPanglerAggregates can be used to aggregate together multiple Panglers across\nall superclasses::\n\n class ExampleBase(object):\n p = panglery.PanglerAggregate('hooks')\n hooks = panglery.Pangler()\n\n @hooks.subscribe(event='example')\n def example_hook_base(self, p):\n print 'spam'\n\n class ExampleDerived(ExampleBase):\n hooks = panglery.Pangler()\n\n @hooks.subscribe(event='example')\n def example_hook_derived(self, p):\n print 'eggs'\n\n inst = ExampleDerived()\n inst.p().trigger(event='example')\n # prints 'spam' and 'eggs' in some order.\n\n..\n\n .. |panglery| replace:: ``panglery``\n .. |exocet| replace:: ``exocet``\n .. _exocet: https://launchpad.net/exocet", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/habnabit/panglery", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "panglery", "package_url": "https://pypi.org/project/panglery/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/panglery/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/habnabit/panglery" }, "release_url": "https://pypi.org/project/panglery/1/", "requires_dist": null, "requires_python": null, "summary": "event hooks for python", "version": "1" }, "last_serial": 795987, "releases": { "1": [ { "comment_text": "", "digests": { "md5": "693ba191372ecacb82e7bfa971e2bfa6", "sha256": "e68820c865338a592246e67a09c46336977c7cf579d70d06f754ea7947e7e0db" }, "downloads": -1, "filename": "panglery-1.tar.gz", "has_sig": false, "md5_digest": "693ba191372ecacb82e7bfa971e2bfa6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5862, "upload_time": "2011-03-28T23:25:15", "url": "https://files.pythonhosted.org/packages/9b/6f/62e6c9881d271d8e9201fa16aa374aff6cf5886bcec06e9c5ab3870828c9/panglery-1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "693ba191372ecacb82e7bfa971e2bfa6", "sha256": "e68820c865338a592246e67a09c46336977c7cf579d70d06f754ea7947e7e0db" }, "downloads": -1, "filename": "panglery-1.tar.gz", "has_sig": false, "md5_digest": "693ba191372ecacb82e7bfa971e2bfa6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5862, "upload_time": "2011-03-28T23:25:15", "url": "https://files.pythonhosted.org/packages/9b/6f/62e6c9881d271d8e9201fa16aa374aff6cf5886bcec06e9c5ab3870828c9/panglery-1.tar.gz" } ] }