Personal tools
Skip to content. | Skip to navigation
async_lru :info: Simple lru cache for asyncio Installation .. code-block:: shell pip install async_lruUsage This package is 100% port of Python built-in function functools.lru_cache < for asyncio <
asyncio-compatible timeout context manager The context manager is useful in cases when you want to apply timeout logic around block of code or in cases when asyncio.wait_for() is not suitable. Also it's much faster than asyncio.wait_for() because timeout doesn't create a new task.
Asyncer, async and await, focused on developer experience. Documentation: https:/asyncer.tiangolo.com Source Code: https:/github.com/fastapi/asyncer Asyncer is a small library built on top of AnyIO. Asyncer has a small number of utility functions that allow working with async, await, and concurrent code in a more convenient way under my (@tiangolo - Sebastián Ramírez) very opinionated and subjective point of view. The main goal of Asyncer is to improve developer experience by providing better support for autocompletion and inline errors in the editor, and more certainty that the code is bug-free by providing better support for type checking tools like mypy. Asyncer also tries to improve convenience and simplicity when working with async code mixed with regular blocking code, allowing to use them together in a simpler way... again, under my very subjective point of view. 🚨 Warning This small library only exists to be able to use these utility functions until (and if) they
The goal of this package is to make implementing common patterns that use datagrams simple and straight-forward while still supporting more esoteric options. This is done by taking an opinionated stance on the API that differs from parts of asyncio.
asyncio-throttle Simple, easy-to-use throttler for asyncio. Example import time import random import asyncio from asyncio_throttle import Throttler async def worker(no, throttler, n): for _ in range(n): await asyncio.sleep(random.random() * 2) async with throttler: print(time.time(), 'Worker #%d: Bang!' % no) async def main(): throttler = Throttler(rate_limit=5) tasks = [ loop.create_task(worker(no, throttler, 10)) for no in range(5) ] await asyncio.wait(tasks) loop = asyncio.get_event_loop() loop.run_until_complete(main()) loop.close() Here I limited work rate to 5/sec while there are 5 workers. And the result: 1508273760.3462772 Worker #2: Bang! 1508273760.590009 Worker #3: Bang! 1508273760.856431 Worker #0: Bang! 1508273761.0110679 Worker #2: Bang! 1508273761.086856 Worker #4: Bang! 1508273761.350699 Worker #3: Bang! 1508273761.5906 Worker #1: Bang! 1508273761.8655958 Worker #4: Bang! 1508273762.224158 Work
asyncpg is a database interface library designed specifically for PostgreSQL and Python/asyncio. asyncpg is an efficient, clean implementation of PostgreSQL server binary protocol for use with Python’s asyncio framework. You can read more about asyncpg in an introductory blog post http://magic.io/blog/asyncpg-1m-rows-from-postgres-to-python/.
Python 3 library for asynchronous client and server-side SSH communication. It uses the Python asyncio module and implements many SSH protocol features such as the various channels, SFTP, SCP, forwarding, session multiplexing over a connection and more.
Apache Atlas Client in Python :target:
The atlassian-python-api library provides a simple and convenient way to interact with Atlassian products (such as Jira Service management, Jira Software, Confluence, Bitbucket and apps Insight, X-Ray) using Python. It is based on the official REST APIs of these products, as well as additional private methods and protocols (such as xml+rpc and raw HTTP requests). This library can be used to automate tasks, integrate with other tools and systems, and build custom applications that interact with Atlassian products. It supports a wide range of Atlassian products, including Jira, Confluence, Bitbucket, StatusPage and others, and is compatible with both Atlassian Server and Cloud instances. Overall, the atlassian-python-api is a useful tool for Python developers who want to work with Atlassian products. It is well-documented and actively maintained, and provides a convenient way to access the full range of functionality offered by the Atlassian REST APIs.