Skip to content

Instantly share code, notes, and snippets.

View tonybaloney's full-sized avatar

Anthony Shaw tonybaloney

View GitHub Profile
@tonybaloney
tonybaloney / pycon2024.md
Last active May 8, 2024 03:30
PyCon US 2024 Talk Notes

PyCon US 2024 Talk Notes - Unlocking the Parallel Universe: Sub Interpreters and Free-Threading in Python 3.13

Section 1 - Parallel Execution in Python

Parallel Execution

Model Execution Start-up time Data Exchange Best for…
threads Parallel * small Any Small, IO-bound tasks that don’t require multiple CPU cores
coroutines Concurrent smallest Any Small, IO-bound tasks that don’t require multiple CPU cores
import _testinternalcapi
def get_executors(func):
code = func.__code__
co_code = code.co_code
executors = {}
for i in range(0, len(co_code), 2):
try:
executors[i] = co_code[i], _testinternalcapi.get_executor(code, i)
"""
Testing on CPython3.13a1+
Requires some recent patches from main.
pip install hypercorn
Have successfully run the following apps:
- fastapi==0.99.0
- Flask
"""
(1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111*())
@tonybaloney
tonybaloney / tidy.sh
Last active April 22, 2023 20:17
tidy script
# Delete all forks that haven't been updated since 2020
gh auth refresh -h github.com -s delete_repo
gh search repos \
--owner tonybaloney \
--updated="<2020-01-01" \
--include-forks=only \
--limit 100 \
--json url \
--jq ".[] .url" \ | xargs -I {} gh repo delete {} --confirm
@tonybaloney
tonybaloney / install.sh
Created November 11, 2022 02:53
Install perf on WSL2
git clone --depth=1 https://github.com/microsoft/WSL2-Linux-kernel.git
sudo apt install -y build-essential flex bison libssl-dev libelf-dev libbabeltrace-dev libunwind-dev libdw-dev binutils-dev libiberty-dev
cd WSL2-Linux-kernel/tools/perf/
make -j2 -s && make install
>>> dis.dis(bench_match.mapping_match_logical)
63 0 LOAD_CONST 1 ('🐓')
2 LOAD_CONST 2 (1)
4 BUILD_MAP 1
64 6 LOAD_CONST 2 (1)
8 LOAD_CONST 2 (1)
10 LOAD_CONST 3 (('🦊', '🌽'))
12 BUILD_CONST_KEY_MAP 2