Python Bytes Podcast Por Michael Kennedy and Brian Okken arte de portada

Python Bytes

Python Bytes

De: Michael Kennedy and Brian Okken
Escúchala gratis

Python Bytes is a weekly podcast hosted by Michael Kennedy and Brian Okken. The show is a short discussion on the headlines and noteworthy news in the Python, developer, and data science space.Copyright 2016-2026 Política y Gobierno
Episodios
  • #472 Monorepos
    Mar 9 2026
    Topics covered in this episode: Setting up a Python monorepo with uv workspacescattrs: Flexible Object Serialization and ValidationLearning to program in the AI ageVS Code extension for FastAPI and friendsExtrasJokeWatch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python TrainingThe Complete pytest CoursePatreon Supporters Connect with the hostsMichael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)Brian: @brianokken@fosstodon.org / @brianokken.bsky.socialShow: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Brian #1: Setting up a Python monorepo with uv workspaces Dennis TraubThe 3 things Give the Root a Distinct NameUse workspace = true for Inter-Package DepsUse importlib Mode for pytest Michael #2: cattrs: Flexible Object Serialization and Validation cattrs is a Swiss Army knife for (un)structuring and validating data in Python.A natural alternative/follow on from DataClass WizardConverts to ←→ from dictionariescattrs also focuses on functional composition and not coupling your data model to its serialization and validation rules.When you’re handed unstructured data (by your network, file system, database, …), cattrs helps to convert this data into trustworthy structured data.Batteries Included: cattrs comes with pre-configured converters for a number of serialization libraries, including JSON (standard library, orjson, UltraJSON), msgpack, cbor2, bson, PyYAML, tomlkit and msgspec (supports only JSON at this time). Brian #3: Learning to program in the AI age Jose Blanca“I teach a couple of introductory Python courses and I've been thinking about which advice to give to my students, that are studying how to program for the first time. I have collected my ideas in these blog posts” Why learning to program is as useful as ever, even with powerful AI tools available.How to use AI as a tutor rather than a shortcut, and why practice remains the key to real understanding.What the real learning objectives are: mental models, managing complexity, and thinking like a software developer. Michael #4: VS Code extension for FastAPI and friends Enhances the FastAPI development experience in Visual Studio CodePath Operation Explorer: Provides a hierarchical tree view of all FastAPI routes in your application.Search for routes: Use the Command Palette and quickly search for routes by path, method, or name.CodeLens links appear above HTTP client calls like client.get('/items'), letting you jump directly to the matching route definition.Deploy your application directly to FastAPI Cloud from the status bar with zero config.View real-time logs from your FastAPI Cloud deployed applications directly within VS Code.Install from Marketplace. Extras Brian: Guido van Rossum interviews key Python developers from the first 25 years Interview with Brett CannonInterview with Thomas Wouters Michael:IntelliJ IDEA: The Documentary | An origin story videoCursor Joined the ACP Registry and Is Now Live in Your JetBrains IDEWhat hyper-personal software looks likeI’m doing in-person training again (limited scope): On-site, hands-on AI engineering enablement for software teams with Michael Joke: Saas is dead
    Más Menos
    29 m
  • #471 The ORM pattern of 2026?
    Mar 2 2026
    Topics covered in this episode: Raw+DC: The ORM pattern of 2026?pytest-check releasesDataclass WizardSQLiteo - “native macOS SQLite browser built for normal people”ExtrasJokeWatch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python TrainingThe Complete pytest CoursePatreon Supporters Connect with the hostsMichael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)Brian: @brianokken@fosstodon.org / @brianokken.bsky.socialShow: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Michael #1: Raw+DC: The ORM pattern of 2026? ORMs/ODMs provide great support and abstractions for developersThey are not the native language of agentic AIRaw queries are trained 100x+ more than standard ORMsUsing raw queries at the data access optimizes for AI codingReturning some sort of object mapped to the data optimizes for type safety and devs Brian #2: pytest-check releases 3 merged pull requests8 closed issuesat one point got to 0 PR’s and 1 enhancement requestNow back to 2 issues and 1 PR, but activity means it’s still alive and being used. so coolCheck out changelog for all modsA lot of changes around supporting mypy I’ve decided to NOT have the examples be fully --strict as I find it reduces readability See tox.ini for explanationBut src is --strict clean now, so user tests can be --strict clean. Michael #3: Dataclass Wizard Simple, elegant wizarding tools for Python’s dataclasses.Features 🚀 Fast — code-generated loaders and dumpers🪶 Lightweight — pure Python, minimal dependencies🧠 Typed — powered by Python type hints🧙 Flexible — JSON, YAML, TOML, and environment variables🧪 Reliable — battle-tested with extensive test coverageNo Inheritance Needed Brian #4: SQLiteo - “native macOS SQLite browser built for normal people” Adam HillThis is a fun tool, built by someone I trust.That trust part is something I’m thinking about a lot in these days of dev+agent built toolsSome notes on my thoughts when evaluating I know mac rules around installing .dmg files not from the apple store are picky. And I like thatBut I’m ok with the override when something comes from a dev I trustThe contributors are all Adam I’m still not sure how I feel about letting agents do commits in reposThere’s “AGENTS” folder and markdown files in the project for agents, so Ad Extras Michael: PyTV Python Unplugged This WeekIBM Crashes 11% in 4 Hours - $24 Billion Wiped Out After Anthropic's Claude Code Threatens the Entire COBOL Consulting IndustryLoving my 40” ultrawide monitor more every dayUpdatest for updating all the mac thingsIce has Thawed out (mac menubar app) Joke: House is read-only!
    Más Menos
    39 m
  • #470 A Jolting Episode
    Feb 23 2026
    Topics covered in this episode: Better Python tests with inline-snapshotjolt Battery intelligence for your laptopMarkdown code formatting with ruffact - run your GitHub actions locallyExtrasJokeWatch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python TrainingThe Complete pytest CoursePatreon Supporters Connect with the hostsMichael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)Brian: @brianokken@fosstodon.org / @brianokken.bsky.socialShow: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Brian #1: Better Python tests with inline-snapshot Alex Hall, on Pydantic blogGreat for testing complex data structuresAllows you to write a test like this: from inline_snapshot import snapshot def test_user_creation(): user = create_user(id=123, name="test_user") assert user.dict() == snapshot({}) Then run pytest --inline-snapshot=fixAnd the library updates the test source code to look like this: def test_user_creation(): user = create_user(id=123, name="test_user") assert user.dict() == snapshot({ "id": 123, "name": "test_user", "status": "active" }) Now, when you run the code without “fix” the collected data is used for comparisonAwesome to be able to visually inspect the test data right there in the test code.Projects mentioned inline-snapshotpytest-examplessyrupydirty-equalsexecuting Michael #2: jolt Battery intelligence for your laptop Support for both macOS and LinuxBattery Status — Charge percentage, time remaining, health, and cycle countPower Monitoring — System power draw with CPU/GPU breakdownProcess Tracking — Processes sorted by energy impact with color-coded severityHistorical Graphs — Track battery and power trends over timeThemes — 10+ built-in themes with dark/light auto-detectionBackground Daemon — Collect historical data even when the TUI isn't runningProcess Management — Kill energy-hungry processes directly Brian #3: Markdown code formatting with ruff Suggested by Matthias Schoettleruff can now format code within markdown filesWill format valid Python code in code blocks marked with python, py, python3 or py3.Also recognizes pyi as Python type stub files.Includes the ability to turn off formatting with comment [HTML_REMOVED] , [HTML_REMOVED] blocks.Requires preview mode [tool.ruff.lint] preview = true Michael #4: act - run your GitHub actions locally Run your GitHub Actions locally! Why would you want to do this? Two reasons: Fast Feedback - Rather than having to commit/push every time you want to test out the changes you are making to your .github/workflows/ files (or for any changes to embedded GitHub actions), you can use act to run the actions locally. The environment variables and filesystem are all configured to match what GitHub provides.Local Task Runner - I love make. However, I also hate repeating myself. With act, you can use the GitHub Actions defined in your .github/workflows/ to replace your Makefile!When you run act it reads in your GitHub Actions from .github/workflows/ and determines the set of actions that need to be run. Uses the Docker API to either pull or build the necessary images, as defined in your workflow files and finally determines the execution path based on the dependencies that were defined.Once it has the execution path, it then uses the Docker API to run containers for each action based on the images prepared earlier.The environment variables and filesystem are all configured to match what GitHub provides. Extras Michael: Winter is coming: Frozendict acceptedDjango ORM stand-aloneCommand Book app announcement post Joke: Plug ‘n Paste
    Más Menos
    25 m
Todas las estrellas
Más relevante
I've listened for years and am grateful for its content. If you listen, you'll learn much about Python, its ecosystem. and its contributors.

Great content for Python programmers

Se ha producido un error. Vuelve a intentarlo dentro de unos minutos.