tricycle


Nametricycle JSON
Version 0.4.1 PyPI version JSON
download
home_pagehttps://github.com/oremanj/tricycle
SummaryMiscellaneous extensions for Trio, the friendly async I/O library
upload_time2024-02-02 20:41:15
maintainer
docs_urlNone
authorJoshua Oreman
requires_python>=3.8
licenseMIT -or- Apache License 2.0
keywords async trio
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            tricycle: miscellaneous extensions for Trio
===========================================

.. image:: https://img.shields.io/pypi/v/tricycle.svg
   :target: https://pypi.org/project/tricycle
   :alt: Latest PyPI version

.. image:: https://github.com/oremanj/tricycle/actions/workflows/ci.yml/badge.svg
   :target: https://github.com/oremanj/tricycle/actions/workflows/ci.yml
   :alt: Automated test status

.. image:: https://img.shields.io/badge/docs-read%20now-blue.svg
   :target: https://tricycle.readthedocs.io/en/latest/?badge=latest
   :alt: Documentation status

.. image:: https://codecov.io/gh/oremanj/tricycle/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/oremanj/tricycle
   :alt: Test coverage

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :target: https://github.com/ambv/black
   :alt: Code style: black

.. image:: http://www.mypy-lang.org/static/mypy_badge.svg
   :target: http://www.mypy-lang.org/
   :alt: Checked with mypy


This is a library of extensions to `Trio
<https://github.com/python-trio/trio>`__, the friendly Python library
for async concurrency and I/O.

Currently we have:

* a readers-writer lock (``tricycle.RWLock``)
* slightly higher-level stream wrappers (``tricycle.BufferedReceiveStream``
  and ``tricycle.TextReceiveStream``)
* some tools for managing cancellation (``tricycle.open_service_nursery()``
  and ``tricycle.MultiCancelScope``)
* a way to make objects that want to keep background tasks running during the
  object's lifetime (``tricycle.BackgroundObject`` and the more general
  ``tricycle.ScopedObject``)
* an analog of ``ContextVar`` that is inherited through the task tree rather
  than across ``start_soon()`` calls, and thus provides more safety for
  accessing a resource that is being managed by a parent task
  (``tricycle.TreeVar``)

While we won't release known-broken code, and we strive for
cleanliness and good test coverage, please be advised that
``tricycle`` is mostly one person's box of tools and has not necessarily
been reviewed or tested to Trio's standards. It *is* being used in
production, and API churn has been minimal thus far although we're not
making any firm stability guarantees. If you find that it doesn't meet
your needs, feel free to `let us know
<https://github.com/oremanj/tricycle/issues>`__ and we'll endeavor to
improve things.

tricycle is tested on Linux, Windows, and macOS, on CPython versions 3.8
through 3.12. It will probably work on PyPy as well.


License and history
~~~~~~~~~~~~~~~~~~~

``tricycle`` is licensed under your choice of the MIT or Apache 2.0 license.
See `LICENSE <https://github.com/oremanj/tricycle/blob/master/LICENSE>`__
for details.

This library has its origins in a package of utilities that the author
wrote at `Hudson River Trading <http://www.hudson-trading.com/>`__
while building things for them with Trio. Many thanks to HRT for
supporting open source in this way!

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/oremanj/tricycle",
    "name": "tricycle",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "async,trio",
    "author": "Joshua Oreman",
    "author_email": "oremanj@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/f8/8e/fdd7bc467b40eedd0a5f2ed36b0d692c6e6f2473be00c8160e2e9f53adc1/tricycle-0.4.1.tar.gz",
    "platform": null,
    "description": "tricycle: miscellaneous extensions for Trio\n===========================================\n\n.. image:: https://img.shields.io/pypi/v/tricycle.svg\n   :target: https://pypi.org/project/tricycle\n   :alt: Latest PyPI version\n\n.. image:: https://github.com/oremanj/tricycle/actions/workflows/ci.yml/badge.svg\n   :target: https://github.com/oremanj/tricycle/actions/workflows/ci.yml\n   :alt: Automated test status\n\n.. image:: https://img.shields.io/badge/docs-read%20now-blue.svg\n   :target: https://tricycle.readthedocs.io/en/latest/?badge=latest\n   :alt: Documentation status\n\n.. image:: https://codecov.io/gh/oremanj/tricycle/branch/master/graph/badge.svg\n   :target: https://codecov.io/gh/oremanj/tricycle\n   :alt: Test coverage\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n   :target: https://github.com/ambv/black\n   :alt: Code style: black\n\n.. image:: http://www.mypy-lang.org/static/mypy_badge.svg\n   :target: http://www.mypy-lang.org/\n   :alt: Checked with mypy\n\n\nThis is a library of extensions to `Trio\n<https://github.com/python-trio/trio>`__, the friendly Python library\nfor async concurrency and I/O.\n\nCurrently we have:\n\n* a readers-writer lock (``tricycle.RWLock``)\n* slightly higher-level stream wrappers (``tricycle.BufferedReceiveStream``\n  and ``tricycle.TextReceiveStream``)\n* some tools for managing cancellation (``tricycle.open_service_nursery()``\n  and ``tricycle.MultiCancelScope``)\n* a way to make objects that want to keep background tasks running during the\n  object's lifetime (``tricycle.BackgroundObject`` and the more general\n  ``tricycle.ScopedObject``)\n* an analog of ``ContextVar`` that is inherited through the task tree rather\n  than across ``start_soon()`` calls, and thus provides more safety for\n  accessing a resource that is being managed by a parent task\n  (``tricycle.TreeVar``)\n\nWhile we won't release known-broken code, and we strive for\ncleanliness and good test coverage, please be advised that\n``tricycle`` is mostly one person's box of tools and has not necessarily\nbeen reviewed or tested to Trio's standards. It *is* being used in\nproduction, and API churn has been minimal thus far although we're not\nmaking any firm stability guarantees. If you find that it doesn't meet\nyour needs, feel free to `let us know\n<https://github.com/oremanj/tricycle/issues>`__ and we'll endeavor to\nimprove things.\n\ntricycle is tested on Linux, Windows, and macOS, on CPython versions 3.8\nthrough 3.12. It will probably work on PyPy as well.\n\n\nLicense and history\n~~~~~~~~~~~~~~~~~~~\n\n``tricycle`` is licensed under your choice of the MIT or Apache 2.0 license.\nSee `LICENSE <https://github.com/oremanj/tricycle/blob/master/LICENSE>`__\nfor details.\n\nThis library has its origins in a package of utilities that the author\nwrote at `Hudson River Trading <http://www.hudson-trading.com/>`__\nwhile building things for them with Trio. Many thanks to HRT for\nsupporting open source in this way!\n",
    "bugtrack_url": null,
    "license": "MIT -or- Apache License 2.0",
    "summary": "Miscellaneous extensions for Trio, the friendly async I/O library",
    "version": "0.4.1",
    "project_urls": {
        "Homepage": "https://github.com/oremanj/tricycle"
    },
    "split_keywords": [
        "async",
        "trio"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d7c67cc05d60e21c683df99167db071ce5d848f5063c2a63971a8443466f603e",
                "md5": "a9a107ac1dafb7b23e63d921e92be551",
                "sha256": "67900995a73e7445e2c70250cdca04a778d9c3923dd960a97ad4569085e0fb3f"
            },
            "downloads": -1,
            "filename": "tricycle-0.4.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a9a107ac1dafb7b23e63d921e92be551",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 35316,
            "upload_time": "2024-02-02T20:41:14",
            "upload_time_iso_8601": "2024-02-02T20:41:14.108719Z",
            "url": "https://files.pythonhosted.org/packages/d7/c6/7cc05d60e21c683df99167db071ce5d848f5063c2a63971a8443466f603e/tricycle-0.4.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f88efdd7bc467b40eedd0a5f2ed36b0d692c6e6f2473be00c8160e2e9f53adc1",
                "md5": "5264812acedfba45af02421727144a6c",
                "sha256": "f56edb4b3e1bed3e2552b1b499b24a2dab47741e92e9b4d806acc5c35c9e6066"
            },
            "downloads": -1,
            "filename": "tricycle-0.4.1.tar.gz",
            "has_sig": false,
            "md5_digest": "5264812acedfba45af02421727144a6c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 41551,
            "upload_time": "2024-02-02T20:41:15",
            "upload_time_iso_8601": "2024-02-02T20:41:15.298338Z",
            "url": "https://files.pythonhosted.org/packages/f8/8e/fdd7bc467b40eedd0a5f2ed36b0d692c6e6f2473be00c8160e2e9f53adc1/tricycle-0.4.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-02 20:41:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "oremanj",
    "github_project": "tricycle",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "tricycle"
}
        
Elapsed time: 0.18227s