{ "info": { "author": "Cologler", "author_email": "skyoflw@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# pydelegate\n\n![GitHub](https://img.shields.io/github/license/Cologler/pydelegate-python.svg)\n[![Build Status](https://travis-ci.com/Cologler/pydelegate-python.svg?branch=master)](https://travis-ci.com/Cologler/pydelegate-python)\n[![PyPI](https://img.shields.io/pypi/v/pydelegate.svg)](https://pypi.org/project/pydelegate/)\n\na python version delegate like C#.\n\n## Usage\n\n``` py\nfrom pydelegate import Delegate\n\ndef func():\n return 1\n\nd = Delegate()\nd += func\nassert d() == 1\n```\n\nor you can set init `Delegate` lazy:\n\n``` py\nfrom pydelegate import event_handler\n\ndef func():\n return 1\n\nd = None\nd += event_handler(func) # event_handler() return a `Delegate`\nassert d() == 1\n```\n\nor if you want inject `self` var in your instance method, use `event` data descriptor:\n\n``` py\nfrom pydelegate import event\n\nclass A:\n @event\n def d(self):\n pass\n # or\n e = event('e')\n\ndef func(self):\n return 1\n\na = A()\na.d += func\nassert a.d() == 1\n```\n\nread unittests for more usages.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Cologler/pydelegate-python", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "pydelegate", "package_url": "https://pypi.org/project/pydelegate/", "platform": "", "project_url": "https://pypi.org/project/pydelegate/", "project_urls": { "Homepage": "https://github.com/Cologler/pydelegate-python" }, "release_url": "https://pypi.org/project/pydelegate/0.0.2/", "requires_dist": null, "requires_python": "", "summary": "", "version": "0.0.2" }, "last_serial": 5194469, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "1e55ce86b21274b327f765d90c3f2e48", "sha256": "de7bfeb2355ce3a6842b6b3ddc1286e6a427c663a94fdaa2d11318287cfb5eeb" }, "downloads": -1, "filename": "pydelegate-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1e55ce86b21274b327f765d90c3f2e48", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3426, "upload_time": "2019-04-26T17:56:11", "url": "https://files.pythonhosted.org/packages/e3/c9/dad891f1f15e1435e00ff69348676dc956e72a647efd92f1c10437ae3f43/pydelegate-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cdce29d8f99ebdec57045019fe3c7606", "sha256": "6278799268d5188479b7e820e4bebaf269e30052acbe3a79abb14e64fcb0c6de" }, "downloads": -1, "filename": "pydelegate-0.0.1.tar.gz", "has_sig": false, "md5_digest": "cdce29d8f99ebdec57045019fe3c7606", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2134, "upload_time": "2019-04-26T17:56:26", "url": "https://files.pythonhosted.org/packages/bd/f6/c0e7ac1b3e015e4a9370099e1cb620830fc60b2aa09c824478241b9063f0/pydelegate-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "38cc7bfc05dfbd4a9dbdec74bcd62aea", "sha256": "02f56dd38543cec565d3f904d98892523226acc6fd107135605af9d8cb9d8379" }, "downloads": -1, "filename": "pydelegate-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "38cc7bfc05dfbd4a9dbdec74bcd62aea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3834, "upload_time": "2019-04-26T18:53:23", "url": "https://files.pythonhosted.org/packages/79/0a/b24874ef3a5bd88358acc0f042d3a6086f7e1e8a3451b460d60baae73dae/pydelegate-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d847448012d37cbe0bf5574c91c7e342", "sha256": "2366c0a1d1b109d3c29d02f159c895bc163c57d0ce3b4b67010a182132305af6" }, "downloads": -1, "filename": "pydelegate-0.0.2.tar.gz", "has_sig": false, "md5_digest": "d847448012d37cbe0bf5574c91c7e342", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2608, "upload_time": "2019-04-26T18:53:26", "url": "https://files.pythonhosted.org/packages/31/c9/51067154317803897323c6345746128795210faca01cda4074a5e8acbbca/pydelegate-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "38cc7bfc05dfbd4a9dbdec74bcd62aea", "sha256": "02f56dd38543cec565d3f904d98892523226acc6fd107135605af9d8cb9d8379" }, "downloads": -1, "filename": "pydelegate-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "38cc7bfc05dfbd4a9dbdec74bcd62aea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3834, "upload_time": "2019-04-26T18:53:23", "url": "https://files.pythonhosted.org/packages/79/0a/b24874ef3a5bd88358acc0f042d3a6086f7e1e8a3451b460d60baae73dae/pydelegate-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d847448012d37cbe0bf5574c91c7e342", "sha256": "2366c0a1d1b109d3c29d02f159c895bc163c57d0ce3b4b67010a182132305af6" }, "downloads": -1, "filename": "pydelegate-0.0.2.tar.gz", "has_sig": false, "md5_digest": "d847448012d37cbe0bf5574c91c7e342", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2608, "upload_time": "2019-04-26T18:53:26", "url": "https://files.pythonhosted.org/packages/31/c9/51067154317803897323c6345746128795210faca01cda4074a5e8acbbca/pydelegate-0.0.2.tar.gz" } ] }