<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>FlyPython — guides, courses, and project radar</title>
    <link>https://flypython.com/learn</link>
    <description>Practical, verified guides for Python foundations, web APIs, automation, and reliable AI agents.</description>
    <language>en</language>
    <lastBuildDate>Sun, 13 Sep 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>Build LLM prompts with Python template strings (t-strings, PEP 750)</title>
      <link>https://flypython.com/learn/t-strings-for-llm-prompts</link>
      <guid isPermaLink="true">https://flypython.com/learn/t-strings-for-llm-prompts</guid>
      <description>Python 3.14 template strings (PEP 750) give prompt construction what f-strings never had — a structured Template object with literal text and interpolated values held separately until you render them.</description>
      <pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Give every coding agent one AGENTS.md source of truth (AGENTS.md tutorial)</title>
      <link>https://flypython.com/learn/agents-md-single-source</link>
      <guid isPermaLink="true">https://flypython.com/learn/agents-md-single-source</guid>
      <description>AGENTS.md is now a neutral standard under the Agentic AI Foundation. Use one repository file to define build, test, and change rules for Claude Code, Codex, Cursor, and every agent you adopt next.</description>
      <pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Migrate a Python MCP server to the 2026-07-28 specification</title>
      <link>https://flypython.com/learn/mcp-2026-07-28-migration</link>
      <guid isPermaLink="true">https://flypython.com/learn/mcp-2026-07-28-migration</guid>
      <description>The 2026-07-28 MCP specification removed the initialize handshake, replaced elicitation with an input_required round-trip, and deprecated roots, sampling, and logging. Here is the migration path for Python servers.</description>
      <pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Adopt the uv workflow for Python projects</title>
      <link>https://flypython.com/learn/uv-python-workflow</link>
      <guid isPermaLink="true">https://flypython.com/learn/uv-python-workflow</guid>
      <description>Move a Python project to uv with pinned interpreters, a lockfile, single-command runs, and inline script metadata — including the migration path from pip, venv, and Poetry.</description>
      <pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Decide whether to adopt free-threaded Python (3.15, no-GIL)</title>
      <link>https://flypython.com/learn/free-threaded-python-decision</link>
      <guid isPermaLink="true">https://flypython.com/learn/free-threaded-python-decision</guid>
      <description>Python 3.15 ships in October 2026 with a dedicated Stable ABI for free-threaded builds. Use this decision guide and a dual-build CI check to choose without guessing.</description>
      <pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Context budgeting and bounded tasks for coding agents</title>
      <link>https://flypython.com/learn/ai-coding-context-budget</link>
      <guid isPermaLink="true">https://flypython.com/learn/ai-coding-context-budget</guid>
      <description>Maximize coding agent accuracy by controlling context size, writing explicit task contracts, and enforcing automated verification loops before human review.</description>
      <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Use Python well with AI coding</title>
      <link>https://flypython.com/learn/ai-coding-workflow</link>
      <guid isPermaLink="true">https://flypython.com/learn/ai-coding-workflow</guid>
      <description>A contract-first workflow for using coding agents to make small, testable, and safe Python changes — task contracts, repository inspection, reproducible environments, and evidence-based handoffs.</description>
      <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Reliable async Python patterns and pitfalls</title>
      <link>https://flypython.com/learn/reliable-async-patterns</link>
      <guid isPermaLink="true">https://flypython.com/learn/reliable-async-patterns</guid>
      <description>Build resilient concurrent Python applications by avoiding common async antipatterns — blocking IO in the event loop, unstructured gather, unbounded concurrency, and leaked resources.</description>
      <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Modern Python typing in practice: Protocol, TypedDict, and PEP 695</title>
      <link>https://flypython.com/learn/modern-python-typing</link>
      <guid isPermaLink="true">https://flypython.com/learn/modern-python-typing</guid>
      <description>Use Protocol, TypedDict, PEP 695 generics, and static type checking as machine-enforced contracts that constrain AI-generated code and catch regressions before execution.</description>
      <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Build a Python product that can be changed safely</title>
      <link>https://flypython.com/learn/python-product-quality</link>
      <guid isPermaLink="true">https://flypython.com/learn/python-product-quality</guid>
      <description>A practical quality model for moving from a useful script to an operable Python product with explicit boundaries, tested failure paths, and reversible releases.</description>
      <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Design a retryable Python automation run</title>
      <link>https://flypython.com/learn/safe-retryable-python-automation</link>
      <guid isPermaLink="true">https://flypython.com/learn/safe-retryable-python-automation</guid>
      <description>Design a repeated task as an observable Python workflow with explicit inputs, idempotent writes, bounded retries, checkpoints, and recovery evidence.</description>
      <pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Design a small Python web API with explicit boundaries</title>
      <link>https://flypython.com/learn/python-web-api-boundaries</link>
      <guid isPermaLink="true">https://flypython.com/learn/python-web-api-boundaries</guid>
      <description>Plan a Python API around validated input, stable responses, timeouts, observable failures, and a deployment contract before choosing more infrastructure.</description>
      <pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Build a dependable Python foundation with tests</title>
      <link>https://flypython.com/learn/python-foundations-with-tests</link>
      <guid isPermaLink="true">https://flypython.com/learn/python-foundations-with-tests</guid>
      <description>Learn a repeatable Python project loop built around isolated environments, explicit data contracts, failure cases, and standard-library tests.</description>
      <pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Build a testable Python agent loop without an API key</title>
      <link>https://flypython.com/learn/python-ai-agent-roadmap</link>
      <guid isPermaLink="true">https://flypython.com/learn/python-ai-agent-roadmap</guid>
      <description>Build a small troubleshooting agent with bounded tools, validated actions, an ordered action-name trace, and automated tests using only the Python standard library.</description>
      <pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] Hands-on Python with Claude Code</title>
      <link>https://flypython.com/courses/hands-on-python-with-claude-code</link>
      <guid isPermaLink="true">https://flypython.com/courses/hands-on-python-with-claude-code</guid>
      <description>A challenge course that takes you from a broken script to a tested, verified Python report tool — one sentence starts it in your agent, which fetches the course itself. Task contract, bounded change, and objective pass/fail evidence; guided agent-taught mode included.</description>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] Hands-on with the OpenAI Codex App</title>
      <link>https://flypython.com/courses/hands-on-with-openai-codex</link>
      <guid isPermaLink="true">https://flypython.com/courses/hands-on-with-openai-codex</guid>
      <description>The same verified Python workflow as the Claude Code course — task contract, bounded change, objective verify.py evidence — taught hands-on in the Codex desktop app: threads, approvals, AGENTS.md, and diff review.</description>
      <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] Hands-on with Cursor</title>
      <link>https://flypython.com/courses/hands-on-with-cursor</link>
      <guid isPermaLink="true">https://flypython.com/courses/hands-on-with-cursor</guid>
      <description>The same verified Python workflow as the flagship course — task contract, bounded change, objective verify.py evidence — taught hands-on in Cursor: Agent/Ask/Plan modes, .cursor/rules project rules, and accept/reject diff review.</description>
      <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] Hands-on with DeepSeek Harness</title>
      <link>https://flypython.com/courses/hands-on-with-deepseek-harness</link>
      <guid isPermaLink="true">https://flypython.com/courses/hands-on-with-deepseek-harness</guid>
      <description>The same verified Python workflow as the flagship course — task contract, bounded change, objective verify.py evidence — taught hands-on in DeepSeek Harness: plugin-composed agents and an auditable append-only trajectory.</description>
      <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] Hands-on with Kimi Code</title>
      <link>https://flypython.com/courses/hands-on-with-kimi-code</link>
      <guid isPermaLink="true">https://flypython.com/courses/hands-on-with-kimi-code</guid>
      <description>The same verified Python workflow as the flagship course — task contract, bounded change, objective verify.py evidence — taught hands-on in Kimi Code: built-in explore/plan/coder subagents keep reading, planning, and editing in separate lanes.</description>
      <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] Hands-on with ZCode</title>
      <link>https://flypython.com/courses/hands-on-with-zcode</link>
      <guid isPermaLink="true">https://flypython.com/courses/hands-on-with-zcode</guid>
      <description>The same verified Python workflow as the flagship course — task contract, bounded change, objective verify.py evidence — taught hands-on in the ZCode desktop workspace: Goal Mode task decomposition and the Git state as your review surface.</description>
      <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] One source of truth for agent rules</title>
      <link>https://flypython.com/courses/agent-rules-single-source</link>
      <guid isPermaLink="true">https://flypython.com/courses/agent-rules-single-source</guid>
      <description>Stop maintaining diverging AGENTS.md, CLAUDE.md, and .cursorrules files — build a checker that proves your repository has exactly one rule source.</description>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] From “it runs” to “it ships”: verifying AI-generated code</title>
      <link>https://flypython.com/courses/verifying-ai-generated-code</link>
      <guid isPermaLink="true">https://flypython.com/courses/verifying-ai-generated-code</guid>
      <description>Build the release-evidence machine your AI-written project is missing — a ship check that parses what actually ran, refuses zero-test projects, and writes an honest delivery record.</description>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] Give your agent tools with MCP (Python)</title>
      <link>https://flypython.com/courses/mcp-server-in-python</link>
      <guid isPermaLink="true">https://flypython.com/courses/mcp-server-in-python</guid>
      <description>Build a stateless Model Context Protocol tool server in pure Python — JSON-RPC 2.0 dispatch, schema validation, error isolation, and the 2026-07-28 input_required round-trip.</description>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] Exploratory Data Analysis with an Agent</title>
      <link>https://flypython.com/courses/da-eda</link>
      <guid isPermaLink="true">https://flypython.com/courses/da-eda</guid>
      <description>A challenge course — point your agent at a messy shop export and produce a verified EDA summary whose numbers are checked against ground truth.</description>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] Data Visualization with an Agent</title>
      <link>https://flypython.com/courses/da-visualization</link>
      <guid isPermaLink="true">https://flypython.com/courses/da-visualization</guid>
      <description>A challenge course — turn a clean sales dataset into three spec&apos;d charts plus a summary.json whose numbers are verified against the data.</description>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] From Analysis to Report with an Agent</title>
      <link>https://flypython.com/courses/da-report</link>
      <guid isPermaLink="true">https://flypython.com/courses/da-report</guid>
      <description>A challenge course — turn a verified EDA summary into report.json + report.md where every number traces back to its input unchanged.</description>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] pytest in the Loop — Tests That Catch Bugs</title>
      <link>https://flypython.com/courses/dt-pytest</link>
      <guid isPermaLink="true">https://flypython.com/courses/dt-pytest</guid>
      <description>A challenge course — given a correct library and a seeded buggy variant, write a pytest suite (fixtures, parametrize, raises) that passes on the reference and fails on the bugs. A suite that cannot catch a bug is not a suite.</description>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] Package and Ship a CLI</title>
      <link>https://flypython.com/courses/dt-packaging</link>
      <guid isPermaLink="true">https://flypython.com/courses/dt-packaging</guid>
      <description>A challenge course — turn a Markdown-indexer script into an installable package: pyproject metadata, console entry point, built wheel and sdist verified by the contract suite — including a real install into a fresh virtualenv.</description>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Course] A Verified Web API</title>
      <link>https://flypython.com/courses/dt-webapi</link>
      <guid isPermaLink="true">https://flypython.com/courses/dt-webapi</guid>
      <description>A challenge course — a FastAPI snippets service violates its own spec in six places. Fix the app until the provided contract suite is green, then write the tests for what the spec leaves unpinned and prove they catch planted regressions.</description>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Radar] fastapi/fastapi</title>
      <link>https://flypython.com/radar/fastapi</link>
      <guid isPermaLink="true">https://flypython.com/radar/fastapi</guid>
      <description>Production-standard ASGI framework with automatic OpenAPI docs, Pydantic validation, and dependency injection.</description>
      <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Radar] 567-labs/instructor</title>
      <link>https://flypython.com/radar/instructor</link>
      <guid isPermaLink="true">https://flypython.com/radar/instructor</guid>
      <description>Production standard for extracting structured JSON from LLMs using Pydantic models with retry validation.</description>
      <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Radar] marimo-team/marimo</title>
      <link>https://flypython.com/radar/marimo</link>
      <guid isPermaLink="true">https://flypython.com/radar/marimo</guid>
      <description>Reactive, pure-Python notebook stored as standard executable .py files with deterministic state execution.</description>
      <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Radar] pola-rs/polars</title>
      <link>https://flypython.com/radar/polars</link>
      <guid isPermaLink="true">https://flypython.com/radar/polars</guid>
      <description>High-performance DataFrame library built in Rust on Apache Arrow with lazy query optimization.</description>
      <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Radar] pydantic/pydantic-ai</title>
      <link>https://flypython.com/radar/pydantic-ai</link>
      <guid isPermaLink="true">https://flypython.com/radar/pydantic-ai</guid>
      <description>Model-agnostic agent framework prioritizing type-safe structured outputs, dependency injection, and testability.</description>
      <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Radar] astral-sh/ruff</title>
      <link>https://flypython.com/radar/ruff</link>
      <guid isPermaLink="true">https://flypython.com/radar/ruff</guid>
      <description>10-100x faster linter and formatter that unifies Flake8, Black, isort, and pyupgrade rules in a single configuration.</description>
      <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[Radar] astral-sh/uv</title>
      <link>https://flypython.com/radar/uv</link>
      <guid isPermaLink="true">https://flypython.com/radar/uv</guid>
      <description>Extremely fast Rust-based package and project manager that replaces pip, pip-tools, venv, and pyenv with lockfile determinism.</description>
      <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>
