{ "info": { "author": "Dag Brattli", "author_email": "dag@brattli.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Other Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "==========================================\nThe Reactive Extensions for Python (RxPY)\n==========================================\n\n.. image:: https://img.shields.io/travis/ReactiveX/RxPY.svg\n :target: https://travis-ci.org/ReactiveX/RxPY\n\n.. image:: https://img.shields.io/coveralls/ReactiveX/RxPY.svg\n :target: https://coveralls.io/github/ReactiveX/RxPY\n\n.. image:: https://img.shields.io/pypi/v/rx.svg\n :target: https://pypi.python.org/pypi/Rx\n\n.. image:: https://img.shields.io/readthedocs/rxpy.svg\n :target: https://readthedocs.org/projects/rxpy/builds/\n :alt: Documentation Status\n\n\n*A library for composing asynchronous and event-based programs using observable collections and\nquery operator functions in Python*\n\nRxPY v3.0\n----------------\n\nFor v1.X please go to the `v1 branch `_.\n\nRxPY v3.x runs on `Python `_ 3.6 or above. To install\nRxPY:\n\n.. code:: console\n\n pip3 install rx\n\n\nAbout ReactiveX\n------------------\n\nReactive Extensions for Python (RxPY) is a set of libraries for composing\nasynchronous and event-based programs using observable sequences and pipable\nquery operators in Python. Using Rx, developers represent asynchronous data\nstreams with Observables, query asynchronous data streams using operators, and\nparameterize concurrency in data/event streams using Schedulers.\n\n.. code:: python\n\n import rx\n from rx import operators as ops\n\n source = rx.of(\"Alpha\", \"Beta\", \"Gamma\", \"Delta\", \"Epsilon\")\n\n composed = source.pipe(\n ops.map(lambda s: len(s)),\n ops.filter(lambda i: i >= 5)\n )\n composed.subscribe(lambda value: print(\"Received {0}\".format(value)))\n\n\nLearning RxPY\n--------------\n\nRead the `documentation\n`_ to learn\nthe principles of RxPY and get the complete reference of the available\noperators.\n\nI you need to migrate code from RxPY v1.x, read the `migration\n`_ section.\n\nThere is also a list of third party documentation available `here\n`_.\n\n\nCommunity\n----------\n\nJoin the conversation on Slack!\n\nThe gracious folks at `PySlackers `_ have given us a home\nin the `#rxpy `_ Slack channel. Please\njoin us there for questions, conversations, and all things related to RxPy.\n\nTo join, navigate the page above to receive an email invite. After signing up,\njoin us in the #rxpy channel.\n\nPlease follow the community guidelines and terms of service.\n\n\nDifferences from .NET and RxJS\n------------------------------\n\nRxPY is a fairly complete implementation of\n`Rx `_ with more than\n`120 operators `_, and\nover `1300 passing unit-tests `_. RxPY\nis mostly a direct port of RxJS, but also borrows a bit from RxNET and RxJava in\nterms of threading and blocking operators.\n\nRxPY follows `PEP 8 `_, so all\nfunction and method names are lowercase with words separated by underscores as\nnecessary to improve readability.\n\nThus .NET code such as:\n\n.. code:: c#\n\n var group = source.GroupBy(i => i % 3);\n\n\nneed to be written with an `_` in Python:\n\n.. code:: python\n\n group = source.pipe(ops.group_by(lambda i: i % 3))\n\nWith RxPY you should use `named keyword arguments\n`_ instead of positional arguments when\nan operator has multiple optional arguments. RxPY will not try to detect which\narguments you are giving to the operator (or not).\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/ReactiveX/RxPY", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://reactivex.io", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "Rx3", "package_url": "https://pypi.org/project/Rx3/", "platform": "", "project_url": "https://pypi.org/project/Rx3/", "project_urls": { "Download": "https://github.com/ReactiveX/RxPY", "Homepage": "http://reactivex.io" }, "release_url": "https://pypi.org/project/Rx3/3.0.1/", "requires_dist": null, "requires_python": ">=3.6.0", "summary": "Reactive Extensions (Rx) for Python", "version": "3.0.1" }, "last_serial": 5997151, "releases": { "3.0.1": [ { "comment_text": "", "digests": { "md5": "14a14320a8a46b26d0a40c953163df1b", "sha256": "f1b7da5463786764e78ef4cbdd0a42bd50152c72f6e7477517f917656e7a3def" }, "downloads": -1, "filename": "Rx3-3.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "14a14320a8a46b26d0a40c953163df1b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 196170, "upload_time": "2019-10-18T19:19:04", "url": "https://files.pythonhosted.org/packages/1f/cf/2a00a918fa49160f28ee72516041c004a513cfec50bb576f3a687a41e72a/Rx3-3.0.1-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "14a14320a8a46b26d0a40c953163df1b", "sha256": "f1b7da5463786764e78ef4cbdd0a42bd50152c72f6e7477517f917656e7a3def" }, "downloads": -1, "filename": "Rx3-3.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "14a14320a8a46b26d0a40c953163df1b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 196170, "upload_time": "2019-10-18T19:19:04", "url": "https://files.pythonhosted.org/packages/1f/cf/2a00a918fa49160f28ee72516041c004a513cfec50bb576f3a687a41e72a/Rx3-3.0.1-py3-none-any.whl" } ] }