PlaywrightSafeThread
Project description
PlaywrightSafeThread
use playwright as async and sync safe thread
used in WPP_Whatsapp
use sync in only one at time, else use async
in events like page.on
use async and wait
from minet
Installation
pip install PlaywrightSafeThread
pip install git+https://www.github.com/3mora2/PlaywrightSafeThread@main
Example
- to run async method in like page, user
await th.create_task
orth.run_threadsafe
- can't run async method from page outside ThreadsafeBrowser Loop, use
await th.create_task
- can't run method
run_threadsafe
in ThreadsafeBrowser Loop
Sync
from PlaywrightSafeThread import ThreadsafeBrowser
th = ThreadsafeBrowser(
install=False,
no_context=False,
browser="chromium", channel="chrome", headless=False,
no_viewport=True, bypass_csp=True
)
th.goto_sync("https://web.whatsapp.com/", wait_until="networkidle")
# or
th.run_threadsafe(th.page.goto("https://web.whatsapp.com/", wait_until="networkidle"))
th.sync_close()
Async
Use asyncio.run
import asyncio
from PlaywrightSafeThread import ThreadsafeBrowser
async def main():
th = ThreadsafeBrowser(
install=False,
no_context=False,
browser="chromium", channel="chrome", headless=False,
no_viewport=True, bypass_csp=True, # loop=loop
)
# Work Only When start from th loop, not in (asyncio.run(main()))
# await th.page.goto("https://web.whatsapp.com/", wait_until="networkidle")
await th.goto("https://web.whatsapp.com/")
# or
await th.create_task(
th.page.goto("https://web.whatsapp.com/")
)
# Not Work when start from th loop, work in only (asyncio.run(main()))
th.goto_sync("https://web.whatsapp.com/", wait_until="networkidle")
await th.close()
asyncio.run(main())
Use ThreadsafeBrowser.loop
import asyncio
from PlaywrightSafeThread import ThreadsafeBrowser
th = ThreadsafeBrowser(
install=False,
no_context=False,
browser="chromium", channel="chrome", headless=False,
no_viewport=True, bypass_csp=True, # loop=loop
)
loop = th.loop
async def main():
await th.page.goto("https://web.whatsapp.com/", wait_until="networkidle")
await th.create_task(
th.page.goto("https://web.whatsapp.com/")
)
await th.goto("https://web.whatsapp.com/")
# Not Work when start from th loop, work in only (asyncio.run(main()))
# th.goto_sync("https://web.whatsapp.com/", wait_until="networkidle")
await th.close()
task = asyncio.run_coroutine_threadsafe(main(), loop=loop)
task.result()
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
PlaywrightSafeThread-0.5.1.tar.gz
(11.2 kB
view hashes)
Built Distribution
Close
Hashes for PlaywrightSafeThread-0.5.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9aa727b4183be8714c28b39a05014183691b68731e2e8d570aee6d4244186518 |
|
MD5 | f9ba60bed831db3e9b28b3ffb74c1ac9 |
|
BLAKE2b-256 | 45cce3bcb28e8c66d9d9d41954e4c88a0a74add2e101d51f66eea1c636b52f3c |
Close
Hashes for PlaywrightSafeThread-0.5.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85403bc2e9bcc7c4947ef0b0f6f83f5ef6a3664d2bebf3d233a363fc33bfb4f8 |
|
MD5 | 0a6d861d02457797046846bfbf0e3971 |
|
BLAKE2b-256 | b1780cd84e88c9f5b261ebe93901700ba5b1d9200d75ad0851de9cb974d7ba3d |