Python
Logging Done Right: A Practical Deep Dive into Python's logging Module
print() is fine until it isn't. Here is how Python's logging module gives you levels, structure, and control that survive production.
Python
print() is fine until it isn't. Here is how Python's logging module gives you levels, structure, and control that survive production.
Python
Go beyond f"{x}". Learn the format specification mini-language — alignment, padding, number formatting, dates, the self-documenting = syntax, custom __format__, and what PEP 701 unlocked in Python 3.12.
News
Python 3.14.7, the seventh maintenance release of the 3.14 series, landed on August 5, 2026 with around 499 bug fixes and several notable security patches, including a credential-scoping CVE fix and archive-extraction hardening.
Python
A code-first tour of handling JPEG, PNG, and WebP in Python with Pillow — opening, converting, compressing, and batch-processing images.
Python
Learn how Python's heapq module gives you fast priority queues and top-k queries without a heavy dependency — with runnable examples for task scheduling, streaming data, and Dijkstra's algorithm.
News
Python 3.15.0 release candidate 2 shipped September 1 ahead of the October 1 final, bringing lazy imports, a built-in frozendict, and the Tachyon profiler. Plus: pip patches CVE-2026-13346, PSF board voting opens, and uv keeps shipping.
Python
Learn how Python generators and the yield keyword let you process huge or infinite data streams with almost no memory, build clean data pipelines, and even send values back in — plus the pitfalls that trip people up.
Python tutorials that go beyond the basics - deep dives into the standard library, testing, typing, and async, plus weekly Python news.
PyCon AU 2026 opens in Brisbane, Python 3.15 heads into its RC home stretch (final Oct 1), Polars 1.44.0 lands on PyPI, MCP SDK 2.0's FastMCP→MCPServer rename keeps tripping upgraders, and a new SymPy-based RCE (CVE-2026-55585) hits the qwed package.
Learn to use Python's built-in sqlite3 module the right way: parameterized queries, row factories, transactions with the connection context manager, type adapters, PRAGMAs, and the pitfalls that bite beginners.
Learn to run external commands from Python the right way: subprocess.run, capturing output, timeouts, error handling, piping input, and avoiding the shell-injection trap.
Go beyond bare try/except: learn EAFP, the else and finally clauses, custom exception hierarchies, exception chaining with `raise from`, contextlib.suppress, and Python 3.11's ExceptionGroup and except* for handling multiple failures at once.
Magic numbers and bare strings quietly rot codebases. Learn how Python's enum module gives you readable, type-safe, self-documenting constants — from basic Enum and auto() to IntEnum, Flag bitmasks, StrEnum, methods on members, and the aliasing pitfalls that trip people up.
Learn to parallelize Python with concurrent.futures: when to reach for threads vs. processes, how submit(), map(), and as_completed() work, handling errors and timeouts, and the pitfalls that bite people in production.
Naive vs. aware datetimes, correct time-zone handling with the standard-library zoneinfo module, DST gotchas, safe parsing and formatting, and why arithmetic across a DST boundary can quietly lose an hour.
Go beyond assert True. Learn how pytest's plain assertions, fixtures, parametrization, built-in helpers like tmp_path and monkeypatch, and markers combine into a fast, readable test suite — with runnable examples and the pitfalls to avoid.
A quieter week after early August's releases: Astral shipped a breaking uv 0.10 with stable Python version management, Python 3.15 heads into its final release candidates (final due Oct 1), the PSF named 17 candidates for the inaugural Packaging Council, and Polars kept pushing on performance.
Learn how to write fast, isolated tests with Python's unittest.mock — Mock vs MagicMock, return_value and side_effect, the patch() decorator, the "patch where it's used" rule, autospec, and mocking files and properties.
Learn how Python's asyncio runs thousands of I/O operations concurrently on a single thread. Master async/await, tasks, gather, TaskGroup, timeouts, semaphores, and the pitfalls that trip everyone up.
Python's built-in list and dict get you far, but the collections module offers Counter, defaultdict, namedtuple and deque — specialized containers that make everyday code shorter, faster, and clearer.