Synchronus Wrapper for Async Code
Project description
Async Services
Run fast asynchronous code from a synchronous code. Async Services provide a synchronous wrapper to run third party asynchronous code or any coroutine for that matter in a synchronous way from a synchronous code.
Installation
pip install async_services
For Development Purposes
Install project Dependencies
pip install -r requirements.txt
pip install -U .
Running the tests
You can run the tests with the following command
pytest .
And coding style tests
pycodestyle .
Example Usage
from async_services.core import run_coro, run_manager, stop_manager
from async_services.core.manager import CoroStatus
import asyncio
async def coroutine(seconds=1, raise_exception=False):
await asyncio.sleep(seconds)
if raise_exception:
raise Exception("Sample Exception")
return "Hello World"
run_manager()
result = run_coro(coroutine(), block=True)
print(result)
assert result[0] == CoroStatus.Completed
assert result[1] == "Hello World"
stop_manager()
Output
Result will be a tuple consisting of two values (status, result) status will be a integer between 0 and 5 and it defines the state of the coruotine
(1, 'Hello World')
Coroutine Status
Presently there are six status of a coruotine
- Queued = 0 -> Coroutine is still queued waiting to be executed or is being executed
- Completed = 1 -> Coroutine has Completed Successfully
- Failed = 2 -> Coroutine Completed Successfully , But callback function raised an exception
- Cancelled = 3 -> Coroutine was Cancelled
- Timeout = 4 -> Coroutine did not complete in the given time
- CoroutineException = 5 -> Coroutine Itself Raised an Exception
Authors
- Ankit Kathuria - Initial work
License
This project is licensed under the MIT License - see the LICENSE.md file for details
Acknowledgments
- Hat tip to anyone whose code was used
- Inspiration
- etc
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file async_services-1.0.2.tar.gz
.
File metadata
- Download URL: async_services-1.0.2.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63e9aba894cc81365441fe739eca5654e36874a0585dbcba2a088c9a48e7e1ab |
|
MD5 | f9ed17895cfaaf25b10be10011e6e1b2 |
|
BLAKE2b-256 | 78c81640d203fb77efede6c5ce0cee002b0c8214e80cc5722a2dcc3ef55b947d |