『Python Bytes』のカバーアート

Python Bytes

Python Bytes

著者: Michael Kennedy and Brian Okken
無料で聴く

このコンテンツについて

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 政治・政府
エピソード
  • #434 Most of OpenAI’s tech stack runs on Python
    2025/06/02
    Topics covered in this episode: Making PyPI’s test suite 81% fasterPeople aren’t talking enough about how most of OpenAI’s tech stack runs on PythonPyCon Talks on YouTubeOptimizing Python Import PerformanceExtrasJokeWatch on YouTube About the show Sponsored by Digital Ocean: pythonbytes.fm/digitalocean-gen-ai Use code DO4BYTES and get $200 in free credit 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: Making PyPI’s test suite 81% faster Alexis ChallandeThe PyPI backend is a project called WarehouseIt’s tested with pytest, and it’s a large project, thousands of tests.Steps for speedup Parallelizing test execution with pytest-xdist 67% time reduction--numprocesses=auto allows for using all coresDB isolation - cool example of how to config postgress to give each test worker it’s on dbThey used pytest-sugar to help with visualization, as xdist defaults to quite terse outputUse Python 3.12’s sys.monitoring to speed up coverage instrumentation 53% time reductionNice example of using COVERAGE_CORE=sysmonOptimize test discovery Always use testpathsSped up collection time. 66% reduction (collection was 10% of time)Not a huge savings, but it’s 1 line of configEliminate unnecessary imports Use python -X importtimeExamine dependencies not used in testing.Their example: ddtrace A tool they use in production, but it also has a couple pytest plugins includedThose plugins caused ddtrace to get imported Using -p:no ddtrace turns off the plugin bitsNotes from Brian: I often get questions about if pytest is useful for large projects.Short answer: Yes!Longer answer: But you’ll probably want to speed it upI need to extend this article with a general purpose “speeding up pytest” post or series. -p:no can also be used to turn off any plugin, even builtin ones. Examples include nice to have developer focused pytest plugins that may not be necessary in CICI reporting plugins that aren’t needed by devs running tests locally Michael #2: People aren’t talking enough about how most of OpenAI’s tech stack runs on Python Original article: Building, launching, and scaling ChatGPT ImagesTech stack: The technology choices behind the product are surprisingly simple; dare I say, pragmatic! Python: most of the product’s code is written in this language.FastAPI: the Python framework used for building APIs quickly, using standard Python type hints. As the name suggests, FastAPI’s strength is that it takes less effort to create functional, production-ready APIs to be consumed by other services.C: for parts of the code that need to be highly optimized, the team uses the lower-level C programming languageTemporal: used for asynchronous workflows and operations inside OpenAI. Temporal is a neat workflow solution that makes multi-step workflows reliable even when individual steps crash, without much effort by developers. It’s particularly useful for longer-running workflows like image generation at scale Michael #3: PyCon Talks on YouTube Some talks that jumped out to me: Keynote by Cory Doctorow503 days working full-time on FOSS: lessons learnedGoing From Notebooks to Scalable Systems And my Talk Python conversation around it. (edited episode pending)Unlearning SQLThe Most Bizarre Software Bugs in History The PyArrow revolution in Pandas And my Talk Python episode about it.What they don't tell you about building a JIT compiler for CPython And my Talk Python conversation around it (edited episode pending)Design Pressure: The Invisible Hand That Shapes Your Code Marimo: A Notebook that "Compiles" Python for Reproducibility and Reusability And my Talk Python episode about it.GPU Programming in Pure Python And my Talk Python conversation around it (edited episode pending)Scaling the Mountain: A Framework for Tackling Large-Scale Tech Debt Brian #4: Optimizing Python Import Performance Mostly pay attention to #'s 1-3This is related to speeding up a test suite, speeding up necessary imports.Finding what’s slow Use python -X importtime Ex: python -X importtime ptyestTechniques Lazy imports move slow-to-import imports into functions/methodsAvoiding circular imports hopefully you’re doing that alreadyOptimize __init__.py files Avoid unnecessary imports, heavy computations, complex logicNotes from Brian Some questions remain open for me Does module aliasing really help much?This applies to testing in a big way Test collection imports your test suite, so anything imported at the top level of a file gets imported at test collection time, even if ...
    続きを読む 一部表示
    29 分
  • #433 Dev in the Arena
    2025/05/26
    Topics covered in this episode: git-flight-rulesUravelling t-stringsneohtopIntroducing Pyrefly: A new type checker and IDE experience for PythonExtrasJokeWatch 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 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: git-flight-rules What are "flight rules"? A guide for astronauts (now, programmers using Git) about what to do when things go wrong.Flight Rules are the hard-earned body of knowledge recorded in manuals that list, step-by-step, what to do if X occurs, and why. Essentially, they are extremely detailed, scenario-specific standard operating procedures. [...]NASA has been capturing our missteps, disasters and solutions since the early 1960s, when Mercury-era ground teams first started gathering "lessons learned" into a compendium that now lists thousands of problematic situations, from engine failure to busted hatch handles to computer glitches, and their solutions.Steps for common operations and actions I want to start a local repositoryWhat did I just commit?I want to discard specific unstaged changesRestore a deleted file Brian #2: Uravelling t-strings Brett CannonArticle walks through Evaluating the Python expressionApplying specified conversionsApplying format specsUsing an Interpolation class to hold details of replacement fieldsUsing Template class to hold parsed dataPlus, you don’t have to have Python 3.14.0b1 to try this out.The end result is very close to an example used in PEP 750, which you do need 3.14.0b1 to try out.See also: I’ve written a pytest version, Unravelling t-strings with pytest, if you want to run all the examples with one file. Michael #3: neohtop Blazing-fast system monitoring for your desktopFeatures Real-time process monitoringCPU and Memory usage trackingBeautiful, modern UI with dark/light themesAdvanced process search and filteringPin important processesProcess management (kill processes)Sort by any columnAuto-refresh system stats Brian #4: Introducing Pyrefly: A new type checker and IDE experience for Python From Facebook / MetaAnother Python type checker written in RustBuilt with IDE integration in mind from the beginningPrinciples PerformanceIDE firstInference (inferring types in untyped code)Open sourceI mistakenly tried this on the project I support with the most horrible abuses of the dynamic nature of Python, pytest-check. It didn’t go well. But perhaps the project is ready for some refactoring. I’d like to try it soon on a more well behaved project. Extras Brian: Python: The Documentary Official TrailerTim Hopper added Setting up testing with ptyest and uv to his “Python Developer Tooling Handbook”For a more thorough intro on pytest, check out courses.pythontest.compocket is closing, I’m switching to Raindrop I got one question about code formatting. It’s not highlighted, but otherwise not bad. Michael: New course! Polars for Power Users: Transform Your Data Analysis GameApache Airflow 3.0 ReleasedPaste 5 Joke: Theodore Roosevelt’s Man in the Arena, but for programming
    続きを読む 一部表示
    29 分
  • #432 How To Fix Your Computer
    2025/05/19
    Topics covered in this episode: pre-commit: install with uvPEP 773: A Python Installation Manager for Windows (Accepted)Changes for TextualThe Best Programmers I KnowExtrasJokeWatch on YouTube About the show Sponsored by NordLayer: pythonbytes.fm/nordlayer 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: pre-commit: install with uv Adam Johnsonuv tool works great at keeping tools you use on lots of projects up to date quickly, why not use it for pre-commit.The extension of pre-commit-uv will use uv to create virtual environments and install packages fore pre-commit. This speeds up initial pre-commit cache creation. However, Adam is recommending this flavor of using pre-commit because it’s just plain easier to install pre-commit and dependencies than the official pre-commit install guide.Win-win.Side note: No Adam, I’m not going to pronounce uv “uhv”, I’ll stick with “you vee”, even Astral tells me I’m wrong Michael #2: PEP 773: A Python Installation Manager for Windows (Accepted) via pycoders newsletterOne manager to rule them all – PyManager.PEP 773 replaces all existing Windows installers (.exe “traditional” bundle, per-version Windows Store apps, and the separate py.exe launcher) with a single MSIX app called Python Install Manager (nick-named PyManager).PyManager should be mainstream by CPython 3.15, and the traditional installer disappears no earlier than 3.16 (≈ mid-2027).Simple, predictable commands. python → launches “the best” runtime already present or auto-installs the latest CPython if none is found.py → same launcher as today plus management sub-commands:py install, py uninstall, py list, py exec, py help.Optional python3 and python3.x aliases can be enabled by adding one extra PATH entry. Michael #3: Changes for Textual Bittersweet news: the business experiment ends, but the code lives on.Textual began as a hobby project layered on top of Rich, but it has grown into a mature, “makes-the-terminal-do-the-impossible” TUI framework with an active community and standout documentation.Despite Textual’s technical success, the team couldn’t pinpoint a single pain-point big enough to sustain a business model, so the company will wind down in the coming weeks.The projects themselves aren’t going anywhere: they’re stable, battle-tested, and will continue under the stewardship of the original author and the broader community. Brian #4: The Best Programmers I Know Matthias Endler“I have met a lot of developers in my life. Lately, I asked myself: “What does it take to be one of the best? What do they all have in common?””The list Read the referenceKnow your tools really wellRead the error messageBreak down problemsDon’t be afraid to get your hands dirtyAlways help othersWriteNever stop learningStatus doesn’t matterBuild a reputationHave patienceNever blame the computerDon’t be afraid to say “I don’t know”Don’t guessKeep it simpleEach topic has a short discussion. So don’t just ready the bullet points, check out the article. Extras Brian: I had a great time in Munich last week. I a talk at a company event, met with tons of people, and had a great time. The best part was connecting with people from different divisions working on similar problems.I love the idea of internal conferences to get people to self organize by topic and meet people they wouldn’t otherwise, to share ideas.Also got started working on a second book on the plane trip back. Michael: Talk Python Clips (e.g. mullet)Embrace your cloud firewall (example).Python 3.14.0 beta 1 is hereCongrats to the new PSF Fellows.Cancelled faster CPythonbsky.app/profile/snarky.ca post Joke: How To Fix Your Computer
    続きを読む 一部表示
    26 分

Python Bytesに寄せられたリスナーの声

カスタマーレビュー:以下のタブを選択することで、他のサイトのレビューをご覧になれます。