
Security News
Meet Socket at Black Hat and DEF CON 2025 in Las Vegas
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
This very simple library helps provide a synchronous interface for your python async
functions and class methods.
from asyncio import sleep
from make_it_sync import make_sync
async def simple_func(a: int) -> int:
'Simple sleeper function to test calling mechanics'
await sleep(0.01)
return a + 1
t_wrap = make_sync(simple_func)
print (t_wrap(4))
# Prints out 5
It works by running an async
event loop and executing the function. It will use the current thread if no loop is running, otherwise it will create a new thread and run the function there.
Features:
To install pip install make-it-async
.
The make_sync
function creates a new function that will call the function you pass to it:
async def simple_func(a: int) -> int:
'Simple sleeper function to test calling mechanics'
await sleep(0.01)
return a + 1
t_wrap = make_sync(simple_func)
You may treat t_wrap
as a python function. You could use make_sync
as a function decorator, though that isn't the normal usage as that would hid the async
version of the function. Normally, make_sync
is used to provide a non-async, alternate, version of the function.
It is also possible to use make_sync
with abstract functions:
class abc_base(ABC):
@abstractmethod
async def doit_async(self):
raise NotImplementedError()
doit = make_sync(doit_async)
class abc_derived(abc_base):
async def doit_async(self):
return 42
a = abs_derived()
print(a.doit())
# Will print out 42
The abstract dispatch will occur at runtime and the call to doit_async
will be pulled from the the sub-class. This allows you to define the asynchronous API in an ABC
, and build a common set of synchronous methods.
FAQs
Create a sync version of an async function
We found that make-it-sync demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.