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 hashes)