Отдельно разберём TaskGroup, который пришел на замену gather в Python 3.11.
Ключевые отличия
▫️create_task() возвращает объект asyncio.Task, у которого есть соответствюущие методы управления. То есть у нас больше контроля
▫️это контекстный менеджер, который гарантирует что все таски будут остановлены по выходу из контекста
▫️ошибка автоматически отменяет незавершенные задачи,
▫️except* передает нам ExceptionGroup, в котором каждую ошибку можно обработать отдельно
import asyncio
import random
async def do_it() -> str:
if random.random() < 0.1:
raise ValueError('Oops')
delay = random.uniform(0.5, 1.5)
await asyncio.sleep(delay)
return delay
async def main():
try:
async with asyncio.TaskGroup() as tg:
for _ in range(10):
tasks.append(tg.create_task(do_it()))
for t in tasks:
print(t.result())
except *ValueError as e:
for err in e.exceptions:
print(err)
asyncio.run(main())
Рекомендую изучить страницу Coroutines and Tasks из документации, где представлено больше интересных примеров и механизмов
- таймауты
- отмена задач
- создание задач из другого потока
#async
Oxygen OS - Port | Android 16 | Nothing Phone (2)
✍️Details:
- Based On: OxygenOS 16.0.3 (Base Oneplus 12R)
- Version: 1.2.0
- Codename: #Pong
- Build date: 14/04/26
🔽 Chnangelog & Download:Here
❌ Known Issues: Here
🔖 Tags: #OxygenOS#Port
⚠️ Notes
- SELinux is Permissive.
- FW is included, do not flash again!
- Root: The shipped kernel is rooted with KSU (KernelSU) by default.
- Kernels: Custom kernels are NOT supported.
- This build uses a non-secure crypto engine implementation. Any passwords set for privacy features (such as app lock, app hiding, or file vault) can be easily bypassed by simply deleting the associated storage files. Do not rely on it for real security or for protecting sensitive personal data.
Special Thanks to @Superuser1958 and @GhostRX89!
👤 Maintainers : @CyberPhantom52 | @El_pong
💬 Chat: @NothingPhone2
🔔 Updates: @NothingPhone2Updates
Oxygen OS - Port | Android 16 | Nothing Phone (2)
✍️Details:
- Based On: OxygenOS 16.0.3 (Base Oneplus 12R)
- Version: 1.1.0
- Codename: #Pong
- Build date: 23/03/26
🔽 Cnangelog & Download:Here
❌ Known Issues: Here
🔖 Tags: #OxygenOS#Port
⚠️ Notes
- SELinux is Permissive.
- Root: The shipped kernel is rooted with KSU (KernelSU) by default.
- Kernels: Custom kernels are NOT supported.
- Encryption: Storage is NOT encrypted. A Format Data is mandatory if you are currently encrypted.
- This build uses a non-secure crypto engine implementation. Any passwords set for privacy features (such as app lock, app hiding, or file vault) can be easily bypassed by simply deleting the associated storage files. Do not rely on it for real security or for protecting sensitive personal data.
Special Thanks to @Superuser1958 and @GhostRX89
👤 Maintainers : @CyberPhantom52 | @El_pong
💬 Chat: @NothingPhone2
🔔 Updates: @NothingPhone2Updates
Oxygen OS - Port | Android 16 | Nothing Phone (2)
✍️Details:
- Version: 16.0.3 RC.1 (Base Oneplus 12R)
- Codename: #Pong
- Build date: 23/03/26
🔽 Download:Here
💰 Changelogs & Flashing: Here
❌ Known Issues: Here
🔖 Tags: #OxygenOS#Port
⚠️ Notes
- SELinux is Permissive.
- Root: The shipped kernel is rooted with KSU (KernelSU) by default.
- Kernels: Custom kernels are NOT supported.
- Encryption: Storage is NOT encrypted. A Format Data is mandatory if you are currently encrypted.
- FOD Brightness Limitation: The fingerprint scanner will only register successfully when your screen brightness is manually set to at least 70%. Will be fixed in a future release.
- This build uses a NON-secure cryptoeng implementation. Any password protection can be trivially bypassed by deleting the storage files. Use this only to get the features working; do not rely on it for actual security or storing sensitive personal data.
👤 Maintainers : @CyberPhantom52 | @El_pong
💬 Chat: @NothingPhone2
🔔 Updates: @NothingPhone2Updates