Skip to main content

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:

  1. 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
  1. 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

Metadata

Release files for heysync 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for heysync 1.0.1
File Size Uploaded
heysync-1.0.1.tar.gz 6.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for heysync 1.0.1
File Interpreter ABI Platform
heysync-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 13.0 kB

Release files / heysync-1.0.1.tar.gz

Download URL heysync-1.0.1.tar.gz
Size 6.4 kB
Tags Source
SHA-256 checksum
How to use checksums
bdb695f8ccc16241f598f78bf5e4aef84e9457b64cea6da736cb54ef32354754
BLAKE2b-256 checksum
How to use checksums
dc4ccd24a2d6553cff6c22f18c250fa8514a8526550cbb9a5f856c0f3b76df36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.1 CPython/3.10.9 Linux/5.15.0-1024-azure

Release files / heysync-1.0.1-py3-none-any.whl

Download URL heysync-1.0.1-py3-none-any.whl
Size 6.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e8517f03334dcc9ef0302126edad70ed75630646ed57f534cec45e8464ce4423
BLAKE2b-256 checksum
How to use checksums
1a6101b61560e1fb89089e500f1cd8023eb4f97e354cd2ae8ec51ec0ea327323
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.1 CPython/3.10.9 Linux/5.15.0-1024-azure

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page