Python Bytes

By: Michael Kennedy and Brian Okken
  • Summary

  • 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-2024
    Show More Show Less
activate_samplebutton_t1
Episodes
  • #401 We must replace uWSGI with something else
    Sep 17 2024
    Topics covered in this episode: “We must replace uwsgi by something else”Let’s build and optimize a Rust extension for PythonFake recruiter coding tests target devs with malicious Python packagesMonthly PSF Board Office HoursExtrasJokeWatch on YouTube About the show Sponsored by ScoutAPM: pythonbytes.fm/scout Connect with the hosts Michael: @mkennedy@fosstodon.orgBrian: @brianokken@fosstodon.orgShow: @pythonbytes@fosstodon.org 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: “We must replace uwsgi by something else” uWSGI is now in maintenance mode: https://uwsgi-docs.readthedocs.io/en/latest/ The project is in maintenance mode (only bugfixes and updates for new languages apis). Do not expect quick answers on github issues and/or pull requests (sorry for that) A big thanks to all of the users and contributors since 2009.Reasonable options look like: granianuvicornhypercorngunicorn (potentially with uvicorn workers for async) Brian #2: Let’s build and optimize a Rust extension for Python Itamar Turner-TrauringExample: algorithm for approximating the number of unique values in a listComparison to non-approximation non-approx is faster but uses way more memoryRust version Use Maturin and PyO3Pull in Rust dependencies (rand for random numbers)Optimization link-time optimizationfaster randomstore hashes onlyFuture optimizations change algorithm maybepass numpy array instead of Python list (I’d like to see that spedup) Michael #3: Fake recruiter coding tests target devs with malicious Python packages via python weeklyGitHub projects that have been linked to previous, targeted attacks in which developers are lured using fake job interviews.Attackers posing as employees of major financial services firms.This previously happened via other means such as NPMThis analysis revealed that the direct parent of the detected, malicious files is a PythonPYC file, meaning that once again the team encountered malware hidden in a compiled Python file.“The README files tell would-be candidates to make sure the project is running successfully on their system before making modifications.”What can you do (according to Michael)? Try out new packages in a docker containerWork on code and projects using a VM which has snapshotting (to roll back completely after you’re done)Fire up a Windows desktop in the cloud for the project then destroy it Brian #4: Monthly PSF Board Office Hours “The Office Hours will be sessions where you can share with us how we can help your community, express your perspectives, and provide feedback for the PSF.”“Unless we have a dedicated topic for a session, you are not limited to talking with us about the above topics, although the discussions should be focused on Python, the PSF, and our community. If you think there’s something we can help with or we should know, we welcome you to come and talk to us!”Upcoming office hours October 8th, 2024: 9pm UTCNovember 12th, 2024: 2pm UTCDecember 10th, 2024: 9pm UTCJanuary 14th, 2025: 2pm UTCFebruary 11th, 2025: 9pm UTCMarch 11th, 2025: 1pm UTCApril 8th, 2025: 9pm UTCMay 13th, 2025: 1pm UTC (Live from PyCon US!)June 10th, 2025: 9pm UTCJuly 9th, 2025: 1pm UTCAugust 12th, 2025: 9pm UTC Extras Brian: PyCascades CFP closes Friday, Sept 20 PyCascades is in Portland in 2025 (Feb 8 & 9)uv now supports Python 3.13.0rc2 uv self update uv venv -p 3.13 Free threaded is still an open issue Michael: Big Python Humble Bundle with both of our products Get $1,800 worth of Python content and tools for $30 and contribute to charityIncludes 5 Talk Python coursesSeveral of Brian’s and his bookDjangonaut Space Session 3 Applications Open! I interviewed Sarah and Tushar on Talk PythonAltTab: Windows alt-tab on macOS Joke: Election joke
    Show More Show Less
    31 mins
  • #400 Celebrating episode 400
    Sep 9 2024
    Topics covered in this episode: Python 3.13.0RC2, 3.12.6, 3.11.10, 3.10.15, 3.9.20, and 3.8.20 are now available!Docker images using uv's python10 years of sustainable open source - Read the DocshumanizeExtrasJokeWatch on YouTube About the show Sponsored by ScoutAPM: pythonbytes.fm/scout Connect with the hosts Michael: @mkennedy@fosstodon.orgBrian: @brianokken@fosstodon.orgShow: @pythonbytes@fosstodon.org 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. ChatGPT celebrates episode 400! Welcome to the big 4-0-0, Pythonistas! It's hard to believe we're celebrating the 400th episode of Python Bytes! From the early days of byte-sized Python news to becoming the source for all things Python, it’s been a wild ride. We've laughed over code quirks, gasped at new libraries, and said farewell to the GIL together. Whether you're a seasoned developer, a curious learner, or just here for the witty banter, you’ve been an essential part of this journey. To Michael and Brian: You've built a community that turns import this into more than just Zen—it's a family of passionate Pythonistas. Your dedication, insights, and humor make this show more than just tech news. It’s a weekly celebration of what we love about Python and why we keep coming back for more. Here’s to the next 400 episodes—may your code be bug-free, your tests pass on the first run, and your Python version always be up to date. Brian #1: Python 3.13.0RC2, 3.12.6, 3.11.10, 3.10.15, 3.9.20, and 3.8.20 are now available! Łukasz LangaPython 3.13.0RC2 is the final preview release Official 3.13.0 scheduled for Oct 1Call to action “We strongly encourage maintainers of third-party Python projects to prepare their projects for 3.13 compatibilities during this phase, and where necessary publish Python 3.13 wheels on PyPI to be ready for the final release of 3.13.0. Any binary wheels built against Python 3.13.0rc2 will work with future versions of Python 3.13. As always, report any issues to the Python bug tracker .”“Please keep in mind that this is a preview release and while it’s as close to the final release as we can get it, its use is not recommended for production environments.”Note: uv python does not support 3.13 yet see issue 320Security releases for 3.12.6, 3.11.10, 3.10.15, 3.9.20, and 3.8.203.12.6 has binary installers, but for MacOS, only MacOS 10.13 and newer are supported3.11.10, 3.10.15, 3.9.20, and 3.8.20 do NOT include binary installers. 3.8 EOL's in October Michael #2: Docker images using uv's python See #396: uv-ing your way to Python and #398: Open source makes you rich? (and other myths) for the opening discussionsTalk Python episode on uv is outuv venv --python gets Python from python-build-standalone by Gregory SzorcTook our Docker build times from 10 minutes to 8 seconds for the base image and 800ms (!) for our app platforms Brian #3: 10 years of sustainable open source - Read the Docs Eric HolscherRead the Docs has been a company for 10 years “a team of 4 folks working full-time on Read the Docs.”readthedocs.org started in 2010readthedocs.com (for Business) started in 2014Sustainability model .org has a single non-tracking ad .com is a paid service for companiesThings that didn’t work donations and other optional support - led to burnoutconsulting and services- took too much time away from core productgrant funding - nice, but one time thingLessons You don't get extra points for being bootstrapped. Compete by doing things you can do better due to niche and size.Keeping trust in the community is the most important thing.Contribution is easier for less complex parts of the code base.Beign open source means capturing a small percentage of the value you create.You have to be ok doing more with less.Also RtD is not just for Sphinx anymore. Their build system now supports any documentation tool. Michael #4: humanize by Hugo van Kemenade (Python 3.14 & 3.15 release manager & core developer)Not too many variations, but very handy if you need it. Numbers Associated Press style (“seven” and “10”)Clamp (under 1.0 million)Fractional (1/3)Int Word (1.2 Billion)Metric (1.5 kV)Ordinal (112th)scientificTimeFile size Extras Brian: Test & Code is now again Test & Code The two part series on Python imports that started in June is finally complete with episode 222.Transcripts are being added to old episodes gradually starting from most recent Back to ep 203 as of today. AI transcription, so there’s things like .pie, .pi, and dot pie where it should be .py Michael: Final final call for Coding in a Castle event with MichaeliStats MenuAnaconda Code Runner by Ruud van der Ham: With Anaconda Coide we can -at last- run that code locally and import (most) ...
    Show More Show Less
    29 mins
  • #399 C will watch you in silence
    Sep 3 2024
    Topics covered in this episode: Why I Still Use Python Virtual Environments in DockerPython Developer Survey ResultsAnaconda Code add-in for Microsoft ExcelDisabling Scheduled Dependency UpdatesExtrasJokeWatch on YouTube About the show Sponsored by us! Support our work through Our courses at Talk Python TrainingHello, pytest! CoursePatreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.orgBrian: @brianokken@fosstodon.orgShow: @pythonbytes@fosstodon.org 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: Why I Still Use Python Virtual Environments in Docker by Hynek SchlawackI was going to cover Production-ready Docker Containers with uv but decided to take this diversion instead.Spend a lot of time thinking about the secondary effects of what you do.venvs are well known and well documented. Let’s use them. Brian #2: Python Developer Survey Results “… official Python Developers Survey, conducted as a collaborative effort between the Python Software Foundation and JetBrains.”Python w/ Rust rising, but still only 7%““The drop in HTML/CSS/JS might show that data science is increasing its share of Python.” - Paul Everitt37% contribute to open source. Awesome.Favorite Resources: Podcasts Lots of familiar faces there. Awesome. Perhaps I shouldn’t have decided to move “Python Test” back to Test & CodeUsage “Data analysis” down, but I think that’s because “data engineering” is added.Data, Web dev, ML, devops, academic, Testing is down 23%Python Versions Still some 2 out thereMost folks on 3.10-3.12Install from: mostly python.orgFrameworks web: Flask, Django, Requests, FastAPI …testing: pytest, unittest, mock, doctest, tox, hypothesis, nose (2% might be the Python 2 people)Data science 77% use pandas, 72% NumPyOS: Windows still at 55% Packaging: venv up to 55%I imaging uv will be on the list next yearrequirements.txt 63%, pyproject.toml 32%virtual env in containers? 47% say no Michael #3: Anaconda Code add-in for Microsoft Excel Run their Python-powered projects in Excel locally with the Anaconda Code add-inPowered by PyScript, an Anaconda supported open source project that runs Python locally without install and setupFeatures Cells Run IndependentlyRange to Multiple Typesinit.py file is static and cannot be edited, with Anaconda Code, users have the ability to access and edit imports and definitions, allowing you to write top-level functions and classes and reuse them wherever you need. A Customizable Environment Brian #4: Disabling Scheduled Dependency Updates David LordInteresting discussion of as they happen or batching of upsates to dependenciesdependencies come in requirements filesGH Actions in CI workflowspre-commit hooksDavid was seeing 60 PRs per month when set up on monthly updates (3 ecosystems * 20 projects)new tool for updating GH actions: gha-update, allows for local updating of GH dependenciesNew process Run pip-compile, gha-update, and pre-commit locally.Update a project’s dependencies when actively working on the project, not just whenever a dependency updates.Note that this works fine for dev dependencies, less so for security updates from run time dependencies. But for libraries, runtime dependencies are usually not pinned. Extras Brian: Test & Code coming back this week Michael: Code in a Castle eventPython Bytes badge spottingGuido’s post removed for moderation Joke: C will watch in silence
    Show More Show Less
    43 mins

What listeners say about Python Bytes

Average customer ratings

Reviews - Please select the tabs below to change the source of reviews.