Hey, make async functions and classes sync
Project description
Hey, Sync!
This package will allow you to convert an async function or a class (that has async methods) to a sync version.
The new class name will be set as <OLD CLASS NAME>Sync
Installation
pip install heysync
Usage
Async Functions
You can convert async functions to sync function by:
- Normal usage:
from heysync import async_to_sync_func
async def async_func() -> str:
return "Hey there"
sync_func = async_to_sync_func(async_func)
# now you can call sync_func in the usual way
sync_func() # Hey there
- As a decorator:
from heysync import async_to_sync_func
@async_to_sync_func
async def some_func() -> str:
return "boo"
some_func() # boo
Classes
You can also convert async classes:
from heysync import make_sync_class
# a class with async methods
class Foo:
def __init__(self, x: int) -> None:
self.x = x
async def __aenter__(self):
self.x += 2
await async_func()
return self
async def __aexit__(self, exc_type, exc_value, exc_tb) -> None:
self.x -= 1
await async_func()
async def my_func(self) -> str:
return f"Output is {self.x}"
FooSync = make_sync_class(Foo)
with Foo(7) as foo:
foo.my_func() # Output is 9
foo.my_func() # Output is 8
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
heysync-1.0.1.tar.gz
(6.4 kB
view details)
Built Distribution
File details
Details for the file heysync-1.0.1.tar.gz
.
File metadata
- Download URL: heysync-1.0.1.tar.gz
- Upload date:
- Size: 6.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.1 CPython/3.10.9 Linux/5.15.0-1024-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdb695f8ccc16241f598f78bf5e4aef84e9457b64cea6da736cb54ef32354754 |
|
MD5 | d1f162b40d667b6617cf0d75e7d5fdfa |
|
BLAKE2b-256 | dc4ccd24a2d6553cff6c22f18c250fa8514a8526550cbb9a5f856c0f3b76df36 |
File details
Details for the file heysync-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: heysync-1.0.1-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.1 CPython/3.10.9 Linux/5.15.0-1024-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8517f03334dcc9ef0302126edad70ed75630646ed57f534cec45e8464ce4423 |
|
MD5 | 286fa117810916d4d2fd8f1aaa03b05d |
|
BLAKE2b-256 | 1a6101b61560e1fb89089e500f1cd8023eb4f97e354cd2ae8ec51ec0ea327323 |