{ "info": { "author": "Jonas Schulte-Coerne", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Application Frameworks" ], "description": "Connectors\n==========\n\nThe *Connectors* package facilitates the writing of block-diagram-like processing networks.\nFor this it provides decorators for the methods of processing classes, so they can be connected to each other.\nWhen a parameter in such a processing network is changed, the result values will also be updated automatically.\nThis is similar to a pipes and filters architecture, the observer pattern or streams.\n\nThis short example demonstrates the core functionality of the *Connectors* package by implementing a processing network of two sequential blocks, which double their input value:\n\n>>> import connectors\n>>>\n>>> class TimesTwo:\n... def __init__(self, value=0):\n... self.__value = value\n...\n... @connectors.Input(\"get_double\")\n... def set_value(self, value):\n... self.__value = value\n...\n... @connectors.Output()\n... def get_double(self):\n... return 2 * self.__value\n>>>\n>>> d1 = TimesTwo() # create an instance that doubles its input value\n>>> d2 = TimesTwo().set_value.connect(d1.get_double) # create a second instance and connect it to the first\n>>> d2.get_double()\n0\n>>> d1.set_value(2)\n>>> d2.get_double() # causes the new input value 2 to be processed by d1 and d2\n8\n\n\nInstallation\n------------\n\nThe *Connectors* package requires Python version 3.6 or later.\nPython 3.5 might work, but this is not tested.\n\n::\n\n pip3 install connectors\n\nDocumentation\n-------------\n\nThe documentation for the *Connectors* librariy can be found on `Read the Docs `_.\n\n\nLicense\n-------\n\nThe *Connectors* package is published under the terms and conditions of the GNU lesser general public license version 3 or later (LGPLv3+).", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/JonasSC/Connectors", "keywords": "parallel observer pipes-and-filters", "license": "GNU Lesser General Public License v3 or later (LGPLv3+)", "maintainer": "", "maintainer_email": "", "name": "connectors", "package_url": "https://pypi.org/project/connectors/", "platform": "", "project_url": "https://pypi.org/project/connectors/", "project_urls": { "Bug Reports": "https://github.com/JonasSC/Connectors/issues", "Documentation": "https://connectors.readthedocs.io/en/latest/", "Homepage": "https://github.com/JonasSC/Connectors", "Source": "https://github.com/JonasSC/Connectors" }, "release_url": "https://pypi.org/project/connectors/4.1/", "requires_dist": null, "requires_python": "", "summary": "A package for connecting objects to form a processing chain", "version": "4.1", "yanked": false, "yanked_reason": null }, "last_serial": 10637826, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "02fdc66ba3b1605a98936084425b2b57", "sha256": "4daf503d0eefec562d9906c02142aacaeb776588bd26b78f4982ec75d765894d" }, "downloads": -1, "filename": "connectors-1.0.tar.gz", "has_sig": false, "md5_digest": "02fdc66ba3b1605a98936084425b2b57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21356, "upload_time": "2018-03-02T13:32:52", "upload_time_iso_8601": "2018-03-02T13:32:52.928129Z", "url": "https://files.pythonhosted.org/packages/20/12/22f235fba0aa9e342a0bd2e8d5d856b35f850d3dffef0b7ce41bf20b208f/connectors-1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0": [ { "comment_text": "", "digests": { "md5": "519b143abda6a86510436a16a9d90ff1", "sha256": "a28a4d54a66dc8d64db3d74e92418a276aaf8e347fad7376b1473d57c84a6cbc" }, "downloads": -1, "filename": "connectors-2.0.tar.gz", "has_sig": false, "md5_digest": "519b143abda6a86510436a16a9d90ff1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28188, "upload_time": "2018-08-19T14:41:56", "upload_time_iso_8601": "2018-08-19T14:41:56.491504Z", "url": "https://files.pythonhosted.org/packages/b9/91/037e26d0bfb8de4e22343b1db1e821d2e14c9ff48f9da811402454cc1274/connectors-2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "3.0": [ { "comment_text": "", "digests": { "md5": "4234e68dbbd64aae8ff1401bfc97fd38", "sha256": "c333c7a9c6d1deaca1bc033b46dcdeae8a57d7b39f6179af4f66a497323cf9b8" }, "downloads": -1, "filename": "connectors-3.0.tar.gz", "has_sig": false, "md5_digest": "4234e68dbbd64aae8ff1401bfc97fd38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28300, "upload_time": "2019-02-12T20:06:18", "upload_time_iso_8601": "2019-02-12T20:06:18.619400Z", "url": "https://files.pythonhosted.org/packages/2b/ac/79b0c054a1d22638acb18ffcf789be8decbde7304a254e4e2ffbb3bac76a/connectors-3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "4.0": [ { "comment_text": "", "digests": { "md5": "e6475359413f57278cc31965fed3feb3", "sha256": "ec96979fd1ce62305612e153cab9e7a1deccf5f5e60dd14b1cdfa726c1fec3d0" }, "downloads": -1, "filename": "connectors-4.0.tar.gz", "has_sig": false, "md5_digest": "e6475359413f57278cc31965fed3feb3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32258, "upload_time": "2019-10-29T10:08:33", "upload_time_iso_8601": "2019-10-29T10:08:33.473130Z", "url": "https://files.pythonhosted.org/packages/1c/d4/f95a93603119a089924d194bba1d99e8f3a572d354a68f350aeda0c5a692/connectors-4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "4.1": [ { "comment_text": "", "digests": { "md5": "90a2de172a81364b10e45d102de62b8f", "sha256": "80992fb286516f578c9957569dcddc05ac0baff87fd81007e937a71ff36cc048" }, "downloads": -1, "filename": "connectors-4.1.tar.gz", "has_sig": false, "md5_digest": "90a2de172a81364b10e45d102de62b8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33533, "upload_time": "2021-06-13T21:43:21", "upload_time_iso_8601": "2021-06-13T21:43:21.597750Z", "url": "https://files.pythonhosted.org/packages/40/4a/608bad823b8b2b9e3e3204b9097b4719b1be3f8ebfd1852d1c827302dc43/connectors-4.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "90a2de172a81364b10e45d102de62b8f", "sha256": "80992fb286516f578c9957569dcddc05ac0baff87fd81007e937a71ff36cc048" }, "downloads": -1, "filename": "connectors-4.1.tar.gz", "has_sig": false, "md5_digest": "90a2de172a81364b10e45d102de62b8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33533, "upload_time": "2021-06-13T21:43:21", "upload_time_iso_8601": "2021-06-13T21:43:21.597750Z", "url": "https://files.pythonhosted.org/packages/40/4a/608bad823b8b2b9e3e3204b9097b4719b1be3f8ebfd1852d1c827302dc43/connectors-4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }