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

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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

heysync-1.0.1-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

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

Hashes for heysync-1.0.1.tar.gz
Algorithm Hash digest
SHA256 bdb695f8ccc16241f598f78bf5e4aef84e9457b64cea6da736cb54ef32354754
MD5 d1f162b40d667b6617cf0d75e7d5fdfa
BLAKE2b-256 dc4ccd24a2d6553cff6c22f18c250fa8514a8526550cbb9a5f856c0f3b76df36

See more details on using hashes here.

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

Hashes for heysync-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e8517f03334dcc9ef0302126edad70ed75630646ed57f534cec45e8464ce4423
MD5 286fa117810916d4d2fd8f1aaa03b05d
BLAKE2b-256 1a6101b61560e1fb89089e500f1cd8023eb4f97e354cd2ae8ec51ec0ea327323

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page