Page de couverture de Python Bytes

Python Bytes

Python Bytes

Auteur(s): Michael Kennedy and Brian Okken
Écouter gratuitement

À propos de cet audio

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-2025 Politique
Épisodes
  • #438 Motivation time
    Jun 30 2025
    Topics covered in this episode: * Python Cheat Sheets from Trey Hunner** Automatisch** mureq-typed** My CLI World*ExtrasJokeWatch on YouTube About the show Sponsored by Posit: pythonbytes.fm/connect Connect with the hosts Michael: @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 10am 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: Python Cheat Sheets from Trey Hunner Some fun sheets Python f-string tips & cheat sheetsPython's pathlib modulePython's many command-line utilities Michael #2: Automatisch Open source Zapier alternativeAutomatisch helps you to automate your business processes without coding.Use their affordable cloud solution or self-host on your own servers.Automatisch allows you to store your data on your own servers, good for companies dealing with sensitive user data, particularly in industries like healthcare and finance, or those based in Europe bound by General Data Protection Regulation (GDPR). Michael #3: mureq-typed Single file, zero-dependency alternative to requests. Fully typed. Modern Python tooling.Typed version of mureq (covered in 2022 on episode 268)Intended to be vendored in-tree by Linux systems software and other lightweight applications.mureq-typed is a drop-in, fully API compatible replacement for mureq updated with modern Python tooling:Type checked with mypy, ty, and pyrefly.Formatted with black, no ignore rules necessary.Linted with ruff (add these rules for mureq.py to your per-file-ignores). Brian #4: My CLI World Frank WilesEncouragement to modify your command line environmentSome of Franks tools direnv, zoxide, fd, ack, atuin, justAlso some aliases, like gitpulllogNotes We covered poethepoet recently, if just just isn’t cutting it for you.I tried to ilke starship, bit for some reason with my setup, it slows down the shell too much. Extras Brian: Interesting read of the week: New theory proposes time has three dimensions, with space as a secondary effectMichael's: New quantum theory of gravity brings long-sought 'theory of everything' a crucial step closer Joke: Brian read a few quotes from the book Disappointing Affirmations, by Dave Tarnowski “You are always just a moment away from your next worst day ever. Or your next best day ever, but let’s be realistic.”“You can be anything you want. And yet you keep choosing to be you. I admire your dedication to the role.”“Today I am letting go of the things that are holding me back from the life that I want to live. Then I’m picking them all up again because I have separation anxiety.”
    Voir plus Voir moins
    33 min
  • #437 Python Language Summit 2025 Highlights
    Jun 23 2025
    Topics covered in this episode: * The Python Language Summit 2025*Fixing Python Properties* complexipy** juvio*ExtrasJokeWatch on YouTube About the show Sponsored by Posit: pythonbytes.fm/connect Connect with the hosts Michael: @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 10am 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: The Python Language Summit 2025 Write up by Seth Michael LarsonHow can we make breaking changes less painful?: talk by Itamar OrenAn Uncontentious Talk about Contention: talk by Mark ShannonState of Free-Threaded Python: talk by Matt PageFearless Concurrency: talk by Matthew Parkinson, Tobias Wrigstad, and Fridtjof StoldtChallenges of the Steering Council: talk by Eric SnowUpdates from the Python Docs Editorial Board: talk by MariattaPEP 772 - Packaging Governance Process: talk by Barry Warsaw and Pradyun GedamPython on Mobile - Next Steps: talk by Russell Keith-MageeWhat do Python core developers want from Rust?: talk by David HewittUpstreaming the Pyodide JS FFI: talk by Hood ChathamLightning Talks: talks by Martin DeMello, Mark Shannon, Noah Kim, Gregory Smith, Guido van Rossum, Pablo Galindo Salgado, and Lysandros Nikolaou Brian #2: Fixing Python Properties Will McGugan“Python properties work well with type checkers such Mypy and friends. … The type of your property is taken from the getter only. Even if your setter accepts different types, the type checker will complain on assignment.”Will describes a way to get around this and make type checkers happy.He replaces @property with a descriptor. It’s a cool technique.I also like the way Will is allowing different ways to use a property such that it’s more convenient for the user. This is a cool deverloper usability trick. Brian #3: complexipy Calculates the cognitive complexity of Python files, written in Rust.Based on the cognitive complexity measurement described in a white paper by SonarCognitive complexity builds on the idea of cyclomatic complexity.Cyclomatic complexity was intended to measure the “testability and maintainability” of the control flow of a module. Sonar argues that it’s fine for testability, but doesn’t do well with measuring the “maintainability” part. So they came up with a new measure.Cognitive complexity is intended to reflects the relative difficulty of understanding, and therefore of maintaining methods, classes, and applications.complexipy essentially does that, but also has a really nice color output.Note: at the very least, you should be using “cyclomatic complexity” try with ruff check --select C901But also try complexipy.Great for understanding which functions might be ripe for refactoring, adding more documentation, surrounding with more tests, etc. Michael #4: juvio uv kernel for Jupyter⚙️ Automatic Environment Setup: When the notebook is opened, Juvio installs the dependencies automatically in an ephemeral virtual environment (using uv), ensuring that the notebook runs with the correct versions of the packages and Python📁 Git-Friendly Format: Notebooks are converted on the fly to a script-style format using # %% markers, making diffs and version control painlessWhy Use Juvio? No additional lock or requirements files are neededGuaranteed reproducibilityCleaner Git diffsPowered By uv – ultra-fast Python package managementPEP 723 – Python inline dependency standards Extras Brian: Test & Code in slow mode currently. But will be back with some awesome interviews. Joke: The 0.1x Engineer via BalázsAlso StormTrooper vlogBIGFOOT VLOG - ATTACKED BY WENDIGO!
    Voir plus Voir moins
    34 min
  • #436 Slow tests go last
    Jun 16 2025
    Topics covered in this episode: * Free-threaded Python no longer “experimental” as of Python 3.14*typed-ffmpegpyleak* Optimizing Test Execution: Running live_server Tests Last with pytest*ExtrasJokeWatch on YouTube About the show Sponsored by PropelAuth: pythonbytes.fm/propelauth66 Connect with the hosts Michael: @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 10am 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: Free-threaded Python no longer “experimental” as of Python 3.14 “PEP 779 ("Criteria for supported status for free-threaded Python") has been accepted, which means free-threaded Python is now a supported build!” - Hugo van KemenadePEP 779 – Criteria for supported status for free-threaded PythonAs noted in the discussion of PEP 779, “The Steering Council (SC) approves PEP 779, with the effect of removing the “experimental” tag from the free-threaded build of Python 3.14.”We are in Phase II then.“We are confident that the project is on the right path, and we appreciate the continued dedication from everyone working to make free-threading ready for broader adoption across the Python community.”“Keep in mind that any decision to transition to Phase III, with free-threading as the default or sole build of Python is still undecided, and dependent on many factors both within CPython itself and the community. We leave that decision for the future.”How long will all this take? According to Thomas Wouters, a few years, at least: “In other words: it'll be a few years at least. It can't happen before 3.16 (because we won't have Stable ABI support until 15) and may well take longer.” Michael #2: typed-ffmpeg typed-ffmpeg offers a modern, Pythonic interface to FFmpeg, providing extensive support for complex filters with detailed typing and documentation.Inspired by ffmpeg-python, this package enhances functionality by addressing common limitations, such as lack of IDE integration and comprehensive typing, while also introducing new features like JSON serialization of filter graphs and automatic FFmpeg validation.Features : Zero Dependencies: Built purely with the Python standard library, ensuring maximum compatibility and security.User-Friendly: Simplifies the construction of filter graphs with an intuitive Pythonic interface.Comprehensive FFmpeg Filter Support: Out-of-the-box support for most FFmpeg filters, with IDE auto-completion.Integrated Documentation: In-line docstrings provide immediate reference for filter usage, reducing the need to consult external documentation.Robust Typing: Offers static and dynamic type checking, enhancing code reliability and development experience.Filter Graph Serialization: Enables saving and reloading of filter graphs in JSON format for ease of use and repeatability.Graph Visualization: Leverages graphviz for visual representation, aiding in understanding and debugging.Validation and Auto-correction: Assists in identifying and fixing errors within filter graphs.Input and Output Options Support: Provide a more comprehensive interface for input and output options, including support for additional codecs and formats.Partial Evaluation: Enhance the flexibility of filter graphs by enabling partial evaluation, allowing for modular construction and reuse.Media File Analysis: Built-in support for analyzing media files using FFmpeg's ffprobe utility, providing detailed metadata extraction with both dictionary and dataclass interfaces. Michael #3: pyleak Detect leaked asyncio tasks, threads, and event loop blocking with stack trace in Python. Inspired by goleak.Use as context managers or function dectoratorsWhen using no_task_leaks, you get detailed stack trace information showing exactly where leaked tasks are executing and where they were created.Even has great examples and a pytest plugin. Brian #4: Optimizing Test Execution: Running live_server Tests Last with pytest Tim Kamanin“When working with Django applications, it's common to have a mix of fast unit tests and slower end-to-end (E2E) tests that use pytest's live_server fixture and browser automation tools like Playwright or Selenium. ”Tim is running E2E tests last for Faster feedback from quick testsTo not tie up resources early in the test suite.He did this with custom “e2e” markerImplementing a pytest_collection_modifyitems hook function to look for tests using the live_server fixture, and for them automatically add the e2e marker to those testsmove those tests to the endThe reason for the marker is to be able to Just run e2e tests with -m e2eAvoid running them sometimes with -m "not ...
    Voir plus Voir moins
    37 min

Ce que les auditeurs disent de Python Bytes

Moyenne des évaluations de clients

Évaluations – Cliquez sur les onglets pour changer la source des évaluations.