python development
on this page
overview
i started writing python somewhere around the 2.0 release in 2001. its syntax was more intuitive than perl, but it came with none of the CPAN community and had poor interpreted performance. since then, iβve been along for the ride, more or less, the whole way.
as of 2025, itβs fair to say that things have changed.
quick links
below are some quick links to most common pages:
environment setup
dockerfiles
downloadable dockerfiles:
- ubuntu 24.04 + python 3.13 + uv - full dev environment
- pytorch cuda 12.8 - nvidia gpu support
- pytorch cuda simple test - minimal cuda test
- alpine + python (apk) - using alpine packages
- alpine + python (uv) - using uv on alpine
llm instruction templates
TODO: add templates for claude.md, gemini.md, and other llm tools
library references
data modeling
- dataclasses - simple data containers (standard library)
- pydantic - data validation and serialization
- sqlalchemy async - async database orm
other common libraries
library | what it does | when to use |
---|---|---|
requests | http for humans | api calls, web scraping |
httpx | async http | when you need async |
pandas | data manipulation | data analysis, csv/excel |
polars | fast dataframes | when pandas is too slow |
fastapi | modern web apis | rest apis, microservices |
ruff | fast linter/formatter | replaces black, flake8, isort |
pytest | testing framework | all testing needs |
how-to guides
data modeling
- choosing a data model - simple guide for dataclasses vs pydantic vs sqlalchemy
other guides
TODO: add more python patterns and decision guides
performance benchmarks
- benchmark collection - performance comparisons
- data models benchmark - dataclasses vs pydantic vs sqlalchemy
- python version comparison - performance evolution from 3.10 to 3.14
useful resources
β real python - excellent tutorials
β python package index - find packages
β python peps - enhancement proposals
β astral blog - updates on uv and ruff
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ