From 8eb570361b375d8640e0ce6b8acb0cc1c363534c Mon Sep 17 00:00:00 2001 From: jay817 Date: Fri, 4 Oct 2024 01:49:31 -0400 Subject: [PATCH] Update asyncio/README.md --- asyncio/README.md | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/asyncio/README.md b/asyncio/README.md index e47a0e7..d9da311 100644 --- a/asyncio/README.md +++ b/asyncio/README.md @@ -1,15 +1,29 @@ ## nest_asyncio ```python +'Sync' def Sync(): - import asyncio, functools, importlib.util as I - I.find_spec('nest_asyncio') or os.system('pip install -q nest_asyncio') + import asyncio, functools, importlib.util as U + U.find_spec('nest_asyncio') or os.system('pip install -q nest_asyncio') __import__('nest_asyncio').apply(); return lambda func: functools.wraps( func)(lambda *args, **kwargs: asyncio.run(func(*args, **kwargs))) sync = Sync() +'playwright' @sync -async def amain(): print('amain') -amain() +async def Page(): + if not hasattr(Page, 'context'): + from playwright.async_api import async_playwright + playwright = await async_playwright().start() + browser = await playwright.firefox.launch(timeout=0) + Page.context = await browser.new_context() + page = await Page.context.new_page() + for attr in dir(page): + if callable(method := getattr(page, attr)) and not attr.startswith('_'): + setattr(page, attr, sync(method)) + return page +page = Page() +page.goto('http://example.com') +print(page.title()) # Example Domain ``` ## threading