
Python Decorators, Explained as a Name Swap
A Python decorator is a function that returns another function, usually applied with @wrapper syntax so the returned callable replaces the original name.
Tomas is a self-taught developer who builds software products with AI, ships open-source tools including Bordful, and runs Laupix, a fully autonomous code-first company with zero human employees. He works with Next.js, Python and PostgreSQL daily.

A Python decorator is a function that returns another function, usually applied with @wrapper syntax so the returned callable replaces the original name.

Compare three Python linters: Ruff, Flake8, and Pylint. Speed, rule coverage, Flake8 drop-in vs Pylint residual, VS Code setup, and when to keep each one.

Scrapy is a crawl framework, not a parser. Learn the Engine loop, spiders, item pipelines, and when a requests + BeautifulSoup script still wins.

LlamaIndex for Python: RAG, agents, LlamaParse, LiteParse v2.1, vs LangChain, and the silent OpenAI fallback.


Pydantic AI v2: type-safe Python agents with structured outputs, DI, and Logfire. Covers v2.0.0 Capabilities, deterministic evals, and LangChain comparison.

mypy catches 57% of type errors by default; pyright catches 97%. But mypy 2.1 now outruns pyright on batch CI. Here is the full 2026 breakdown.

Ruff has overtaken Black in monthly downloads and runs 30x faster. Here is when to switch and when to stay.

pytest wins on features and developer adoption; unittest ships with Python. The practical story: pytest runs unittest tests natively, so most teams use both.

uv replaces pip, pyenv, virtualenv, pip-tools, and pipx with one Rust binary. Complete guide to installation, commands, Docker integration, and migration paths.

A complete guide to installing, configuring, and migrating to Ruff — the Rust-powered Python linter and formatter that replaces Flake8, Black, isort, and more a

Learn Polars Python with real code examples and 2026 benchmarks. Filter 14 GB Parquet 11x faster than pandas using lazy evaluation.