Winamp Logo
Python Bytes Cover
Python Bytes Profile

Python Bytes

English, Technology, 1 season, 369 episodes, 1 day, 5 hours, 11 minutes
About
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.
Episode Artwork

#369 The Readability Episode

Topics covered in this episode: Granian pytest 8 is here Assorted Docker Goodies New GitHub Copilot Research Finds 'Downward Pressure on Code Quality' Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: Granian via Andy Shapiro and Bill Crook A Rust HTTP server for Python applications. Granian design goals are: Have a single, correct HTTP implementation, supporting versions 1, 2 (and eventually 3) Provide a single package for several platforms Avoid the usual Gunicorn + uvicorn + http-tools dependency composition on unix systems Provide stable performance when compared to existing alternatives Could use better logging But making my own taught me maybe I prefer that! Originates from the Emmett framework. Brian #2: pytest 8 is here Improved diffs: Very verbose -vv is a colored diff, instead of a big chunk of red. Python code in error reports is now syntax-highlighted as Python. The sections in the error reports are now better separated. Diff for standard library container types are improved. Added more comprehensive set assertion rewrites for comparisons other than equality ==, with the following operations now providing better failure messages: !=, <=, >=, <, and >. Improvements to -r for xfailures and xpasses Report tracebacks for xfailures when -rx is set. Report captured output for xpasses when -rX is set. For xpasses, add - in summary between test name and reason, to match how xfail is displayed. This one was important to me. Massively helps when checking/debugging xfail/xpass outcomes in CI. Thanks to Fabian Sturm, Bruno Oliviera, and Ran Benita for help to get this release. Lots of other improvements See full changelog for all the juicy details. And then upgrade and try it out! pip install -U pytest Michael #3: Assorted Docker Goodies OrbStack Say goodbye to slow, clunky containers and VMs OrbStack is the fast, light, and easy way to run Docker containers and Linux. Develop at lightspeed with our Docker Desktop alternative. Podman Podman is an open source container, pod, and container image management engine. Podman makes it easy to find, run, build, and share containers. Manage containers (not just Podman.) Podman Desktop allows you to list, view, and manage containers from multiple supported container engines* in a single unified view. Gain easy access to a shell inside the container, logs, and basic controls. Works on Podman, Docker, Lima, kind, Red Hat OpenShift, Red Hat OpenShift Developer Sandbox. CasaOS Your Personal Cloud OS. Community-based open source software focused on delivering simple personal cloud experience around Docker ecosystem. Also have the ZimaCube hardware (Personal cloud. Re-invented.) Brian #4: New GitHub Copilot Research Finds 'Downward Pressure on Code Quality' David Ramel Regarding “…the quality and maintainability of AI-assisted code compared to what would have been written by a human.” Q: "Is it more similar to the careful, refined contributions of a Senior Developer, or more akin to the disjointed work of a short-term contractor?" A: "We find disconcerting trends for maintainability. Code churn -- the percentage of lines that are reverted or updated less than two weeks after being authored -- is projected to double in 2024 compared to its 2021, pre-AI baseline. We further find that the percentage of 'added code' and 'copy/pasted code' is increasing in proportion to 'updated,' 'deleted,' and 'moved 'code. In this regard, AI-generated code resembles an itinerant contributor, prone to violate the DRY-ness [don't repeat yourself] of the repos visited." Extras Brian: Did I mention pytest 8? Just pip install -U pytest today And if you want to learn pytest super fast, check out The Complete pytest Course or grab a copy of the book, Python Testing with pytest Michael: I’d like to encourage people to join our mailing list. We have some fun plans and some of them involve our newsletter. It’s super private, no third parties, no spam and is based on my recent Docker and Listmonk work. Big release for Pydantic, 2.6. New essay: Use Custom Search Engines Way More Joke: Pushing to main Junior vs Senior engineer
1/30/202434 minutes, 44 seconds
Episode Artwork

#368 That episode where we just ship open source

Topics covered in this episode: Syntax Error #11: Debugging Python umami and umami-analytics pytest-suite-timeout Listmonk and (py) listmonk Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Brian #1: Syntax Error #11: Debugging Python Juhis Issue 11 of a fun debugging newsletter from Juhis Debugging advice mindeset take a break adopt a process talk to a duck tools & techniques print snoop debuggers Django debug toolbar & Kolo for VS Code Michael #2: umami and umami-analytics Umami makes it easy to collect, analyze, and understand your web data — while maintaining visitor privacy and data ownership. umami-analytics is a client for privacy-preserving, open source Umami analytics platform based on httpx and pydantic. Core features ➕ Add a custom event to your Umami analytics dashboard. 🌐 List all websites with details that you have registered at Umami. 🔀 Both sync and async programming models. ⚒️ Structured data with Pydantic models for API responses. 👩‍💻 Login / authenticate for either a self-hosted or SaaS hosted instance of Umami. 🥇Set a default website for a simplified API going forward. Brian #3: pytest-suite-timeout While recording Python Test 213 : Repeating Tests I noted that pytest-repeat doesn’t have a timeout, but pytest-flakefinder does. And perhaps I should add a timeout to pytest-repeat But also, maybe there’s other places I’d like a timeout, not just with repeat, but often with other parametrizations and even parametrize matrices. So, pytest-suite-timeout is born But Why not pytest-timeout? asks Mike Felder timeout is only timeouts per test, and it isn’t always graceful suite-timeout is for the full suite, and only times out between tests. so, you could use both Michael #4: Listmonk and (py) listmonk Listmonk Self-hosted newsletter and mailing list manager (think mailchimp) Built on Go and Vue Backed by a company charing for this service as SaaS Still requires a mail infrastructure backend (I’m using Sendgrid) listmonk (on PyPI) API Client for Python Created by Yours Truly I tried 4 other options first, they were all bad in their own way. Features: ➕Add a subscriber to your subscribed users. 🙎 Get subscriber details by email, ID, UUID, and more. 📝 Modify subscriber details (including custom attribute collection). 🔍 Search your users based on app and custom attributes. 🏥 Check the health and connectivity of your instance. 👥 Retrieve your segmentation lists, list details, and subscribers. 🙅 Unsubscribe and block users who don't want to be contacted further. 💥 Completely delete a subscriber from your instance. 📧 Send transactional email with template data (e.g. password reset emails). These pair well in my new docker cluster infrastructure Calls to the API from a client app (e.g. Talk Python Training) are basically loopback on the local docker bridge network. Extras Michael: Every github repo that has “releases” has a releases RSS feed, e.g. Umami Kolo Django + VS Code Warp Terminal on linux bpytop and btop - live server monitoring Joke: The cloud, visualized
1/23/202432 minutes, 18 seconds
Episode Artwork

#367 A New Cloud Computing Paradigm at Python Bytes

Topics covered in this episode: Leaving the cloud PEP 723 - Inline script metadata Flet for Android harlequin: The SQL IDE for Your Terminal. Extras Joke Watch on YouTube About the show Sponsored by Bright Data : pythonbytes.fm/brightdata Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: Leaving the cloud Also see Five values guiding our cloud exit We value independence above all else. We serve the internet. We spend our money wisely. We lead the way. We seek adventure. And We stand to save $7m over five years from our cloud exit Slice our new monster 192-thread Dell R7625s into isolated VMs Which added a combined 4,000 vCPUs with 7,680 GB of RAM and 384TB of NVMe storage to our server capacity They created Kamal — Deploy web apps anywhere A lot of these ideas have changed how I run the infrastructure at Talk Python and for Python Bytes. Brian #2: PEP 723 - Inline script metadata Author: Ofek Lev This PEP specifies a metadata format that can be embedded in single-file Python scripts to assist launchers, IDEs and other external tools which may need to interact with such scripts. Example: # /// script # requires-python = ">=3.11" # dependencies = [ # "requests<3", # "rich", # ] # /// import requests from rich.pretty import pprint resp = requests.get("https://peps.python.org/api/peps.json") data = resp.json() pprint([(k, v["title"]) for k, v in data.items()][:10]) Michael #3: Flet for Android via Balázs Remember Flet? Here’s a code sample (scroll down a bit). It’s amazing but has been basically impossible to deploy. Now we have Android. Here’s a good YouTube video showing the build process for APKs. Brian #4: harlequin: The SQL IDE for Your Terminal. Ted Conbeer & other contributors Works with DuckDB and SQLite Speaking of SQLite Jeff Triplett and warnings of using Docker and SQLite in production Anže’s post and and article: Django, SQLite, and the Database is Locked Error Extras Brian: Recent Python People episodes Will Vincent Julian Sequeira Pamela Fox Michael: PageFind and how I’m using it When "Everything" Becomes Too Much: The npm Package Chaos of 2024 Essay: Unsolicited Advice for Mozilla and Firefox SciPy 2024 is coming to Washington Joke: Careful with that bike lock combination code
1/16/202436 minutes, 21 seconds
Episode Artwork

#366 Put It In The Backlog

Topics covered in this episode: Python 3.13 gets a JIT UniDep - Unified Conda and Pip Dependency Management Don’t Start Pull Requests from Your Main Branch instld: The simplest package management Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Brian #1: Python 3.13 gets a JIT Anthony Shaw Great article that walks through JIT concepts with a small example as if you were writing a parser in Python instead of C. Covers What is a JIT? What is a copy-and-patch JIT? and Why? How does the Python JIT work? Is it faster? This is a building block to future improvements Michael #2: UniDep - Unified Conda and Pip Dependency Management 🔄 Single requirements.yaml for both #Conda & #Pip. ⚙️ Works with pyproject.toml & setup.py. 🏢 Perfect for monorepos. 🔒 Create consistent conda-lock files for multiple projects. 🌍 Platform-specific support. 🚀 unidep install for easy setup. Full source page. Brian #3: Don’t Start Pull Requests from Your Main Branch Hynek Schlawack When contributing to other users’ repositories, always start a new branch in your fork. Reasons to not use main Forces you to only have one change in progress Merges will generate conflicts and you can’t pull from that branch anymore. Need to kill the fork and start over If the target repo has branch protection on, then maintainers can’t push to your branch. Hynek also provides a way to fix things if you’ve already started your changes on a main branch fork. Michael #4: instld: The simplest package management Thanks to this package, it is very easy to manage the lifecycle of packages. ⚡ Run your code without installing libraries. ⚡ You can use 2 different versions of the same library in the same program. ⚡ You can use incompatible libraries in the same project, as well as libraries with incompatible/conflicting dependencies. ⚡ It's easy to share written scripts. The script file becomes self-sufficient - the user does not need to install the necessary libraries. ⚡ The library does not leave behind "garbage". After the end of the program, no additional files remain in the system. Extras Brian: The Complete pytest Course is now actually complete Although updates will happen when and if necessary as pytest/Python changes. To celebrate, use code 2024 in January for 10% off any pricing option. More episodes of Python People and Python Test on the way now That course took up a lot of my time in late 2023 Just released an episode with Will Vincent and Python Test will have a new episode this week and for the foreseeable future. Let me know if you want to be on Python People or Python Test Michael: Hatch follow up: Great coverage of Hatch v1.8.0! One small correction: only the binaries for Hatch are signed with the certificate from the PSF. - Ofek PyPI new user registration temporarily suspended Pagefind and how I’m using it Talk Python Live: Data Doodles event coming early Feb New essay: AI Features a Waste of Time? Joke: Put it in the backlog
1/9/202432 minutes, 1 second
Episode Artwork

#365 Inheritance, but not Inheritance!

Topics covered in this episode: * Hatch v1.8* svcs: A Flexible Service Locator for Python Steering Council 2024 Term Election Results Python protocols. When to use them in your projects to abstract and decoupling Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: Hatch v1.8 Hatch now manages installing Python for you. Hatch can build .app and .exe stand-alone binaries for you The macOS ones are signed (signed!) Discussion here Brian #2: svcs : A Flexible Service Locator for Python Hynek A library to help structure and test Python web applications. “svcs (pronounced services) is a dependency container* for Python. It gives you a central place to register factories for types/interfaces and then imperatively acquire instances of those types with automatic cleanup* and **health checks.” “Benefits: Eliminates tons of repetitive boilerplate code, unifies acquisition* and cleanups of services, provides full static type safety for them, simplifies testing through loose coupling, improves live introspection and monitoring* with **health checks.” Hynek has started a YouTube channel, and is starting with an explanation of svcs. Yes, Hynek, we want more videos. I like that it’s not a beginner level. My request for future videos: just past beginner, and also intermediate level. There are plenty of basics videos out there, not as many filling the gaps between beginner and production. Michael #3: Steering Council 2024 Term Election Results The 2024 Term Python Steering Council is: Pablo Galindo Salgado Gregory P. Smith Emily Morehouse Barry Warsaw Thomas Wouters Full results are available in PEP 8105 . How do you become a candidate? Candidates must be nominated by a core team member. If the candidate is a core team member, they may nominate themselves. Brian #4: Python protocols. When to use them in your projects to abstract and decoupling Carlos Vecina “Protocols are an alternative (or a complement) to inheritance, abstract classes and Mixins.” Understanding interactions between ABC, MixIns and Protocols in Python With examples Extras Brian: Donations. It’s a decent time of the year to donate to projects that help you Python Software Foundation Django Software Foundation Python Bytes Also, look for “Sponsor this project” links in GitHub for projects you depend on. Michael: Mastodon guidelines (mine): If you have a picture and description, I’ll probably follow you back If you have posts that seem relevant +1 If you have a verified webpage +1 If your account is private, won’t. I don’t understand really since private group messages already exist and the profile itself is public. Speaking of Mastodon. I had a productive conversation with the PSF and others around masks and conferences. Dropbox spooks users by sending data to OpenAI for AI search features There was a comment in the above article to the effect of “Once you give your data to a third party (even trusted like Dropbox), you no longer control that data.” That sent me searching and thinking… sync.com? proton drive (discount code)? nextcloud? filen.io? icedrive.net? ownCloud’s recent CVE makes me a bit nervous of self-hosted options. Either way, Cryptomator is very interesting. Beyond privacy, this got me thinking, just how many hours of dev time have been diverted to add mediocre-at-best AI features to everything? I’m doing a big digital decluttering and have lots to say on that soon. Not submitting my talks to PyCascades this year. But I did submit 3 talks to PyCon US. 🤞 I will be giving the keynote at PyCon Philippines. Joke: The dream is dead?
12/20/202334 minutes, 29 seconds
Episode Artwork

#364 Holy Match-Cases Batman!

Topics covered in this episode: A Python/Django Advent calendar Dropbase helps you build internal web apps with Python Real-world match/case Extra, extra, extra, so many extras! Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Brian #1: A Python/Django Advent calendar James Bennett’s take on an Advent Calendar “I’m going to try to publish one short blog post each day of Advent 2023, each covering a small but hopefully useful tip or bit of information for Python and/or Django developers” First post also discusses using enums A couple cool testing posts Don’t mock Python’s HTTPX I didn’t know HTTPX had built in transport mocking, very cool Test your documentation doctest discussion Michael #2: Dropbase helps you build internal web apps with Python Build fullstack web apps for your internal teams. Import existing Python scripts Quickly layer UIs and granular permissions on top. Turn any SQL SELECT into an admin panel with Smart Tables. Watch the video for the zen of it. Freemium model Brian #3: Real-world match/case Ned Batchelder Structural pattern matching example taken from a GitHub bot Matching nested dictionaries, pulling out bits of data The examples of not just matching but using case [structure] if [test on component] are neat. Michael #4: Extra, extra, extra, so many extras! WAY better DNS with Bunny.net DNS Terminal Secrets essay Meet the Supporting Developer in Residence (via Pycoders) Songs in Python code BohemianRhapsody.py MoneyForNothing.py PyCascades 2024 Project names blocked on PyPI to avoid name collision for downstream free-threaded Python distributions An Open Letter to the Python Software Foundation PSF’s official mission https://discuss.python.org/t/python-3-12-1-now-available/40603 https://discuss.python.org/t/python-3-11-7-is-available/40778 Obfuscated Python winning (via Johannes Lippmann) Extras Brian: Python for VSCode, Dec 2023 release, rolls out better test discovery to everyone. Forcing pip to use virtualenv Advent of Code Joke: Too many open tabs
12/12/202327 minutes, 9 seconds
Episode Artwork

#363 DNS Again? It's Always DNS.

Topics covered in this episode: Fixit 2: Meta’s next-generation auto-fixing linter FastUI Mail list / newsletter conversation CLIs from type hints Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: Fixit 2: Meta’s next-generation auto-fixing linter via Bart Kappenburg Fixit is dead! Long live Fixit 2 – the latest version of our open-source auto-fixing linter. Fixit provides a highly configurable linting framework with support for auto-fixes, custom “local” lint rules, and hierarchical configuration, built on LibCST. Fixit 2 is available today on PyPI. Created by Meta’s Python Language Foundation team — a hybrid team of both PEs and traditional SWEs — helps own and maintain the infrastructure and tooling for Python. Interesting comments on this article on Hacker News I wonder if ruff format was already a thing when Fixit was adopted, whether it would exist? Brian #2: FastUI Samuel Colvin “FastUI is a new way to build web application user interfaces defined by declarative Python code.” MK: Reminds me of the code matches DOM style of Flutter. See code samples at the end. Michael #3: Mail list / newsletter conversation I’ve been tired of Mailchimp for a long time Raising the prices month over month by $100 several months may be the straw But what are the options? Lets ask Mastodon: emailoctopus.com listmonk.app [self hosted, open source] keila.io [self/saas, open source] mailyherald.org [self hosted, open source] sendportal.io [self hosted, open source] brevo.com buttondown.email [django] zoho.com/campaigns/ sendy.co [use your own bulk emailer (e.g. sendgrid or aws ses) convertkit.com mautic.org [open source] constantcontact.com getresponse.com convertkit.com Brian #4: CLIs from type hints From Sander76 Pydantic Argparse “is a Python package built on top of pydantic which provides declarative typed argument parsing using pydantic models.” Clipstick is a “cli-tool based on Pydantic models.” tyro “is a tool for generating command-line interfaces and configuration objects in Python.” tyro includes support for dataclasses and attrs in place of Pydantic Extras Brian: Django 5.0 has been released vim-keybindings-everywhere-the-ultimate-list - submitted by Paul Barry PythonTest (the podcast formerly known as Test & Code, to be read in an undertone similar to the way one used to say “The artist formerly known as Prince”) has moved form testandcode.com to podcast.pythontest.com Plus more guests are listed now. I think I’ve gone backwards from current to episode 182. I tried to get my kid to help out, unsuccessfully. May have to hire someone to help. grrr. Michael: Essay: Don't Sweat the Ad Blocker Drama A story: my project this weekend, unify my over 20 domains to one host Joke: Honest LinkedIn
12/5/202339 minutes, 1 second
Episode Artwork

#362 You can deprecate a global variable?

Topics covered in this episode: Habits of great software engineers Flask 3.0 Build Conway's Game of Life With Python polars business Extras Joke Watch on YouTube About the show Sponsored by Scout APM Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Brian #1: Habits of great software engineers As we wind up the year, many people are thinking about goals for the new year. Here’s a decent list to think about Focusing beyond the code Efficiency / Antifragility Joy of tinkering Knowing the why Thinking in systems Tech detox The art of approximation Transferring Knowledge to Other Problems Making Hard Things Easy Playing the Long Game Developing a Code Nose Strong Opinions loosely held Michael #2: Flask 3.0 Deprecate the __version__ attribute. Use feature detection, or importlib.metadata.version("flask"), instead. #5230 How do you even do that? This is news to me: [build-system] requires = ["setuptools", "wheel"] build-backend = "setuptools.build_meta" [metadata] name = "your-package-name" version = "0.1.0" Remove previously deprecated code. #5223 Brian #3: Build Conway's Game of Life With Python Leodanis Pozo Ramos CLI curses version Nice walk through of breaking the problem into parts. Michael #4: polars business It's a plugin for Polars, which allows you to do business day arithmetic. The big advantage of using this directly (as opposed to converting to pandas/numpy, using their business day tools, and then converting back) is that polars-business fits right in with the Polars lazy API. This means you'll still be able to get the gains from the Polars query optimiser without having to step into eager execution. All you need to use is it is pip install polars-business Written in Rust, but end-users doesn't need Rust to run it, Python is all you need. Extras Brian: BLACKFRIDAY code still works for 50% off The Complete pytest Course, Full Course + Community Access, through Nov 30 Also Debugging chapter is up, and it includes a small TDD example. Michael: Dear Python Community by Kenneth Reitz Python 3.13a2 out and Major new features of the 3.13 series, compared to 3.12 Thank you Black Friday supporters. Joke: ai vs dev
11/28/202328 minutes, 10 seconds
Episode Artwork

#361 Proper way to comment your code!

Topics covered in this episode: The many shapes and sizes of keyboards appeal - a CLI framework from Larry Hastings Graphinate: Data to Graphs A Disorganized List of Maintainer Tasks Extras Joke Watch on YouTube About the show Sponsored by Scout APM Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: The many shapes and sizes of keyboards Many keyboards discussed Focus on health and safety (as it should!) I swear by Microsoft Sculpt Ergonomic (which wasn’t mentioned) More options still over at Wire Cutter Brian #2: appeal - a CLI framework from Larry Hastings “Give your program APPEAL!” Appeal is a command-line argument processing library for Python, like argparse, optparse, getopt, docopt, Typer, and click. But Appeal takes a refreshing new approach. Hello World example: import appeal app = appeal.Appeal() @app.command() def hello(name): print(f"Hello, {name}!") app.main() looks fun, no idea how to test with it “yet”. But I plan on looking into that. Michael #3: Graphinate: Data to Graphs via Eran Rivlis Graphinate is a python library that aims to simplify the generation of Graph Data Structures from Data Sources. Write a function to definite the edges as a generator, call materialize Based on NetworkX See the github page for visual examples Brian #4: A Disorganized List of Maintainer Tasks David Lord Plus, David Lord, lead maintainer of Flask, Jinja, Click, … on Pallets, also PSF Fellow, has a blog. Neat. TLDR; Next time you want to ask "When's the next release?", instead look at the project and see where you can start getting involved. The more help maintainers have, the more they can get done. Long list of stuff David thinks about when maintaining a project. My list is shorter, but it’s still long, and my projects are tiny in comparison to his Extras Brian: Do you do enough testing? pytest to the Rescue! webinar from this morning The Complete pytest Course will be 16 chapters, 11 are released, the 12th is recorded and almost released, and the 13th should be next week, … I should be done with all 16 by the end of the year. Testing argparse Applications Python Test Podcast episode 109: Testing argparse Applications Blog post on pythontest.com: Testing argparse Applications Black Friday sale on The Complete pytest Course Use code BLACKFRIDAY for 50% off of The Complete pytest Course, Full Course + Full Access Michael: It’s Black Friday at Talk Python Python 3.13.0 alpha 1 is now available Python Developers Survey 2023 Joke: The proper way to comment your code!
11/21/202329 minutes, 39 seconds
Episode Artwork

#360 Happy Birthday!

Topics covered in this episode: exclude_also with coverage.py Writeside Extra, extra, extra Chrome not proceeding with Web Integrity API deemed by many to be DRM Extras Joke Watch on YouTube About the show Sponsored by Scout APM Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Note: No episode next week. Michael will be at Microsoft Ignite in Seattle. Happy Birthday to us (7 years old today)! Brian #1: exclude_also with coverage.py Interesting exchange between Pamela Fox, Hugo van Kemenade, and myself where we all discover exclude_also, even though it’s been there since February This is cool because you can exclude common “should I cover this? It’s just for debugging.” kinda stuff, and other “I don’t wanna test that” places. To exclude code blocks, we can use *# pragma: no cover* in the code. Or we can list lines in coverage setting with exclude_lines, but you have to also list # pragma: no cover, which is weird. exclude_also just just right. It leaves all the inline excludes alone, and adds some regexes, and you can even just have one if that’s all you need, like if __name__ == .__main__.: See coverage docs Michael #2: Writeside An IDE for writing the docs Write, test, build, and publish docs Docs-as-code out of the box Doc quality automation: Ensure documentation quality and integrity with 100+ on-the-fly inspections in the editor as well as tests in Live Preview and during build. Comes as a separate IDE as well as a plugin for PyCharm, etc. Pricing will be free + paid premium version (like PyCharm), fully free for now Brian #3: Extra, extra, extra Welcome Marie Nordin as the new PSF Community Communications Manager Woohoo! Pablo Galindo and Łukasz Langa started a podcast, called core.py Inside look into Python 3.13 Two episodes so far The first core sprint for 3.13 Details on removing the GIL regexcrossword Suggested by Kim van Wyk actually really great for practicing regex rules Michael #4: Chrome not proceeding with Web Integrity API deemed by many to be DRM Google’s premise for the internet: The Internet should be constructed so that users can be identified, tracked, retargeted (and hence resold). — Google And privacy is important. So how do we make both of these work. FLOCs? Privacy Sandboxes? Web Integrity? No, just no. How about you sell us ads the same way you surface search results (by what is on the page, not who is visiting it) Good riddance to this idea you corrupted organization. What was wrong with Web Integrity? Some comments Issue #134 calls the idea "absolutely unethical and against the open web." Issue #113 say they "can't believe this is even proposed." Issue #127 adds: "Have you ever stopped to consider that you're the bad guys?” Extras Brian: Mock chapter of pytest: working with projects, the 2nd course in The Complete pytest Course series, is recorded and hopefully releasing today. At the very least some time this week. PyCharm has sent me a bunch of coupon codes for students of The Complete pytest Course. Sign up for the course and ask me for the code, and I’ll send it to you. Nov 21 webinar with yours truly: Do You Do Enough Testing? pytest to the Rescue! Michael: We Just Gave $500,000 to Open Source Maintainers - Sentry (thank you) ruff format + pycharm follow up JetBrains AI is getting very good a commit messages Add exception handling in background_service.py: Introduced try-except blocks to handle potential exceptions in the 'pending_jobs', 'start_job_processing', and 'run_pending_job' methods in background_service.py. This change enhances error handling and makes the service more robust by preventing crashes if a job or episode cannot be fetched or if an unknown job action is encountered. Add assemblyai to requirements and update ruff version: This commit includes the addition of assemblyai package as part of the requirements.txt file, required to introduce new speech-to-text feature in our application. Ruff version is also updated from 0.1.3 to 0.1.4 due to bug fixes and stability improvements in the new version. Assemblyai also includes dependencies like pydantic and websockets. GPT4All follow up Got some nice feedback on my statement on PyCon 2024’s health and safety policy More I think about it, the more out of touch it seems Comparisons, no mask requirements for any of: GitHub Universe - N,NNN? attendees CES - 180,000 attendees SXSW - 152,000 attendees KubeCon - 12,000 attendees Adobe Summit - 10,000 attendees Mobile World Conference - 109,500 attendees DeveloperWeek - 2,000 attendees Microsoft Ignite - 4,000 attendees WWDC - unkown Joke: The plural of regex is regrets.
11/7/202335 minutes, 44 seconds
Episode Artwork

#359 gil--;

Topics covered in this episode: PyCon 2024 is up? Ruff formatter is production ready gil--; Why is the Django Admin “Ugly”? Extras Joke Watch on YouTube About the show Sponsored by Scout APM Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: PyCon 2024 is up? May 15 - May 23, 2024 - Pittsburgh, Pennsylvania Conference breakdown: Tutorials: May 15 - 16, 2024 Main Conference and Online: May 17 - 19, 2024 Job Fair: May 19, 2024 Sprints: May 20 - May 23, 2024 Tickets aren’t on sale yet Unfortunately, I’m not going (see health and safety guidelines) Attendance numbers over time on Wikipedia Brian #2: Ruff formatter is production ready We reported the alpha release in September It’s fast, 30x faster than Black Provides >99.9% compatibility with Black, with a list of known deviations More configurable Bundled with ruff, ruff format Still in Beta, but considered production-ready Integration extensions for VSCode and PyCharm Michael #3: gil--; The Python Steering Council has now formally accepted PEP 703 ("Making the Global Interpreter Lock Optional in CPython") The global interpreter lock will remain the default for CPython builds and python.org downloads. A new build configuration flag, --disable-gil will be added to the configure script that will build CPython with support for running without the global interpreter lock. "In short, the SC accepts PEP 703, but with clear provisio: that the rollout be gradual and break as little as possible, that we can roll back any changes that turn out to be too disruptive – which includes potentially rolling back all of PEP 703 entirely if necessary (however unlikely or undesirable we expect that to be)." Removing the global interpreter lock requires substantial changes to CPython internals, but relatively few changes to the public Python and C APIs. The implementation changes can be grouped into the following four categories: Reference counting Memory management Container thread-safety Locking and atomic APIs Brian #4: Why is the Django Admin “Ugly”? Vince Salvino Some great quotes from the article: "The Django admin is not ugly, rather, no effort was made to make it a beautiful end-user tool.” - Ken Whitesell “The admin’s recommended use is limited to an organization’s internal management tool. It’s not intended for building your entire front end around.” - Django docs “The Django admin was built for Phil.” - Jacob Kaplan-Moss “Even in the 0.9x days we used to have a image that said “Admin: it’s not your app”.” - Curtis Maloney As Curtis put it, “encouraging people to build their own management interface, and treat admin as a DB admin tool, has saved a lot of people pain... the effort to customise it grows far faster than the payoffs.” Extras Brian: Local Conferences: Big Potential Michael: Data Science Jumpstart with 10 Projects course is out! PSF is X-ed out (or are they?) GPT4All is pretty excellent Fosstodon invites from us (expires Nov 7 2023) Joke: Searching YouTube for bug fixes
11/2/202343 minutes, 4 seconds
Episode Artwork

#358 Collecting Shells

Topics covered in this episode: Django 5.0 beta 1 released git bash, terminals, and Windows Mastering Integration Testing with FastAPI Reuven Learner has been banned for trading in rare animals (Pythons and Pandas) Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Brian #1: Django 5.0 beta 1 released Django 5.0 release notes supports Python 3.10, 3.11, 3.12 Facet filters in the admin Simplified templates for form field rendering Database-computed default values Database generated model field More options for declaring field choices More Django news Djangonaut Space now accepting applications for our next contributor mentorship cohort Take the Django Developers Survey 2023 Michael #2: git bash, terminals, and Windows See the screenshot Requires Windows 10 Install the Windows Terminal from the Microsoft Store Brian #3: Mastering Integration Testing with FastAPI Alex Jacobs Some great integration testing techniques Focused on FastAPI, but relevant to many frameworks. Mocking authentication Mocking external APIs Fun use of parametrize and indirect fixtures for mocking responses. Mocking MongoDB Mocking AWS S3 Michael #4: Reuven Learner has been banned for trading in rare animals (Pythons and Pandas) via Pat Decker Reuven, like us, teaches Python and Data Sci Tried to advertise his courses (Python and Pandas courses) on Meta Got permanently (life-time) banned for selling rare and endangered animals. Sometimes I really hate these big tech companies My recent beefs have been with app store reviewers and surveillance-based capitalism Extras Brian: Where did everyone go? - Ned Batchelder I do feel like we’re more fragmented than before, but I am feeling like we have a community on Mastodon. reminder that Mastodon has text search now On Sunday, I released Ch9, Coverage, as part of The Complete pytest course, specifically part of pytest Working with Projects. It was super fun. I’ve used coverage a lot since writing the book, for example, I demonstrate branch coverage. It’s so much more effective to teach in video than in printed screenshots. Michael: Autin shell enhancer by Ellie Huxtable recommended by recommended by Nik JupyterCon 2023 videos are out More shells follow up from Teemu Hukkanen for “editor like” features Zsh and Bash ruff format and strings, aka format.quote-style = "single" Glyph’s programming your computer talk is up. Joke: this is what the experts do
10/24/202335 minutes, 28 seconds
Episode Artwork

#357 Python 3.7 EOLed, We Hadn't Noticed

Topics covered in this episode: QuickMacHotKey Things I’ve learned about building CLI tools in Python Warp Terminal (referral code) Python 3.7 EOLed, but I hadn’t noticed Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training Python People Podcast Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: QuickMacHotKey This is a set of minimal Python bindings for the undocumented macOS framework APIs that even the most modern, sandboxing-friendly shortcut-binding frameworks use under the hood for actually binding global hotkeys. Thinking of updating my urlify menubar app. Brian #2: Things I’ve learned about building CLI tools in Python Simon Willison A cool Cookiecutter starter project, if you like Click. Conventions and consistency in commands, arguments, options, and flags. The importance of versioning. Your CLI is an API. Include examples in --help Include --help in documentation. Aside, Typer is also cool, and is built on Click. Michael #3: Warp Terminal (referral code) Really nice reimagining of the terminal Currently macOS only but will be Linux, then Windows New command section & output section mode Blocks can be navigated and searched as a single thing (even if it’s 1,000 lines of output) CTRL+R gives a nice history like McFly I’ve discussed before Completions into popular CLIs (i.e. git) Edit like an editor (even you VIM people 🙂 ) Has AI built in too Free for individuals If you’re going to give it a try, use my referral I guess? Brian #4: Python 3.7 EOLed, but I hadn’t noticed EOL was June 27 I’m still supporting 3.7, as are most projects I work with. But I’m not sure when that will change. VS Code is deprecating 3.7 support Why I’m ok with supporting 3.7 for some projects dataclasses came in with 3.7 from __ future__ import annotations allows the use of union types with X|Y. example I’ll probably drop 3.7 as my dependent projects drop it. Extras Brian: pytest-param-scope is an in progress hack to workaround this missing scope. Runs setup before any param test cases, and teardown after the last one. Stop defining people by what they’re not: on “non-code contributors” - Josh Simmons Michael: OpenAI has unveiled the Beta version of its Python SDK (via Mark Little) StackOverflow lays off 28% of its staff Weird follow up of their “what to do if you’re laid off” post from 6 months ago? Is AI eating into their traffic? ArsTechnica has thoughts too Joke: Define hot New Zoo exhibit
10/17/202329 minutes, 6 seconds
Episode Artwork

#356 Ripping from PyPY

Topics covered in this episode: Psycopg 3 dacite RIP: Fast, barebones pip implementation in Rust Flaky Tests follow up Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Brian #1: Psycopg 3 Psycopg folks recommend starting with 3 for new projects 2 is still actively maintained, but no new features are planned recommend staying with 2 for legacy projects Psycopg 3 project 2 vs 3 feature comparison A few Psycopg 3 highlights native asyncio support native support for more Python types (such as Enums) and PostgreSQL types (such as multirange) Default server-side parameters binding Allows binary parameters and query results (and text, of course) Pipeline/batch mode support Static typing support Michael #2: dacite via Raymond Peck Simple creation of data classes from dictionaries Dacite supports following features: nested structures (basic) types checking optional fields (i.e. typing.Optional) unions forward references collections custom type hooks It's important to mention that dacite is not a data validation library. Type hooks are interesting too. Brian #3: RIP: Fast, barebones pip implementation in Rust list of current and planned features of RIP, the biggest are listed below: Downloading and aggressive caching of PyPI metadata. (done) Resolving of PyPI packages using Resolvo. (done) Installation of wheel files (planned) Support sdist files (planned) new project, just a couple weeks old. … “We would love to have you contribute!” Michael #4: Flaky Tests follow up by Marwan Sarieddine I was inspired by the Talk Python podcast on "Taming flaky tests" with Gregory Kapfhammer and Owain Parry so I wrote up an article on my blog titled "How not to footgun yourself when writing tests - a showcase of flaky tests” Extras Brian: Just wrapping up some personal projects, which means… Python People episodes soon Python Test episodes soon (but later) More course chapters coming Michael: PyBay 2023 was fun Switched to Spark Mail, recommended Dust (what science fiction story telling should be), try: FTL Oceanus Joke: There are more hydrogen atoms in a single molecule of water than there are stars in the entire Solar System. - mas.to/@SmudgeTheInsultCat/111174610011921264 The Big Rewrite
10/10/202324 minutes, 13 seconds
Episode Artwork

#355 Python 3.12 is Out!

Topics covered in this episode: 3.12 is out! Trouble with virtualenv caching, a tale of 3.12 update Python Developers Survey 2022 Results Scientific Python Library Development Guide Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: 3.12 is out! What’s new PEP 695, type parameter syntax and the type statement PEP 692, using TypedDict to annotate **kwargs PEP 698, typing.override() decorator PEP 701, f-strings in the grammar PEP 684, a unique per-interpreter GIL PEP 669, low impact monitoring Improved ‘Did you mean …’ suggestions for NameError, ImportError, and SyntaxError exceptions PEP 688, using the buffer protocol from Python The pathlib.Path class now supports subclassing The os module received several improvements for Windows support A command-line interface has been added to the sqlite3 module isinstance() checks against runtime-checkable protocols enjoy a speed up of between two and 20 times The asyncio package has had a number of performance improvements, with some benchmarks showing a 75% speed up. A command-line interface has been added to the uuid module Due to the changes in PEP 701, producing tokens via the tokenize module is up to up to 64% faster. PEP 683, immortal objects PEP 709, comprehension inlining Brian #2: Trouble with virtualenv caching, a tale of 3.12 update Michael #3: Python Developers Survey 2022 Results I did a “first reactions” video too Brian #4:Scientific Python Library Development Guide Announcement and Overview by Henry Schreiner Extras Brian: The Complete pytest Course is now at courses.pythontest.com Still on Teachable, just with a custom domain Also, just released Chapter 8 today. Michael: Moving to Mona App (was using Ivory) for Mastodon Making bank on .ai Vivaldi on iOS Joke: Thought it would be easy
10/3/202335 minutes, 15 seconds
Episode Artwork

#354 Python 3.12 is Coming!

Topics covered in this episode: logmerger The third and final Python 3.12 RC is out now The Python dictionary dispatch pattern Visualizing the CPython Release Process Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training Python People Podcast Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Brian #1: logmerger Paul McGuire logmerger is a TUI for viewing a merged display of multiple log files, merged by timestamp. Built on textual Awesome flags: --output - to send the merged logs to stdout --start START and --end END start and end time to select time window for merging logs Caveats: new. no pip install yet. so clone the code or download perhaps I jumped the gun on covering this, but it’s cool Michael #2: The third and final Python 3.12 RC is out now Get your final bugs fixed before the full release Call to action: We strongly encourage maintainers of third-party Python projects to prepare their projects for 3.12 compatibilities during this phase How to test. Discussion on the issue. Count down until October 2nd, 2023. Brian #3: The Python dictionary dispatch pattern I kinda love (and hate) jump tables in C We don’t talk about dictionary dispatch much in Python, so this is nice, if not dangerous. Short story: you can store lambdas or functions in dictionaries, then look them up and call them at the same time. Also, I gotta shout out to the first blogroll I’ve seen in a very long time. Should we bring back blogrolls? Michael #4: Visualizing the CPython Release Process by Seth Larson Here’s the deal (you should see the image in the article 😉 ) Freeze the python/cpython release branch. This is done using GitHub Branch Protections. Update the Release Manager's fork of python/cpython. Run Python release tools (release-tool, blurb, sphinx, etc). Push diffs and signed tag to Release Manager's fork. Git tag is made available to experts for Windows and macOS binary installers. Source tarballs, Windows, and macOS binary installers built and tested concurrently. 6a: Release manager builds the tgz and tar.xz source files for the Python release. This includes building the updates documentation. 6b: Windows expert starts the Azure Pipelines configured to build Python. 6c: macOS Expert builds the macOS installers. All artifacts (source and binary) are tested on their platforms. Release manager signs all artifacts using Sigstore and GPG. All artifacts are made available on python.org. After artifacts are published to python.org, the git commit and tag from the Release Manager's fork is pushed to the release branch. Extras Brian: The Complete pytest Course, part 2, Ch 7 Testing Strategy went up this weekend. Only 9 more chapters to go “Test & Code” → “Python Test” Full version: “The Python Test Podcast” → “Test & Code” → “Python Test” Also: “Python (Bytes | People | Test)” Michael: If you’re at PyBay, come say “hi” EuroPython 2023 Videos up Django + HTMX has a few days of early-bird discount left Joke: Are you sleeping?
9/26/202321 minutes, 26 seconds
Episode Artwork

#353 Hatching Another Episode

Topics covered in this episode: OverflowAI Switching to Hatch Alpha release of the Ruff formatter What is wrong with TOML? Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training Python Testing with pytest, full course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: OverflowAI Integration of generative AI into our public platform, Stack Overflow for Teams, and brand new product areas, like an IDE integration. Have a conversation about the search results and proposed answer with GenAI Coming with IDE integration too. Check out the video on their page for some more detail than the article. Brian #2: Switching to Hatch Oliver Andrich Hatch has some interesting features Template built from hatch new myproject includes isolating dev, test, lint virtual environments. Each env can have scripts Test matrix ala tox, but possibly easier to express complex matrices. May not even need tox then, but then now you have hatch. A way to specify which optional dependencies needed for default environment. Notes from Brian One premise is that lots of projects are now using hatch. I don’t know if that’s true. A quick spot check of a few projects include projects that use hatchling. While hatchling is the back end to hatch, they are not the same. I use hatchling a lot now, but haven’t picked up using hatch. But I do want to try it more after reading this article. Michael #3: Alpha release of the Ruff formatter vis Sky Kasko Charlie Marsh announced that an alpha version of a Ruff formatter has been released in Ruff v0.0.289. The formatter is designed to be a drop-in replacement for Black, but with an excessive focus on performance and direct integration with Ruff. Sky says: I can't find any benchmarks that have been released yet, but I did some extremely unscientific testing and found the Ruff formatter to be around 5 to 10 times faster than Black when running on already-formatted code or in a small codebase, and 75 times faster when running on a large codebase of unformatted code. (The second outcome probably isn't very important since most people would not often be formatting thousands of lines of completely unformatted code.) For more info, see the README: https://github.com/astral-sh/ruff/blob/main/crates/ruff_python_formatter/README.md Brian #4: What is wrong with TOML? Colm O'Connor Suggested by Will McGugan This is a comparison of TOML vs StrictYAML under the use case of “readable story tests”. TLDR; For smallish things like pyproject.toml, toml is fine. For huge files, something like StrictYAML may be less horrible. from Brian: Short answer: Nothing, unless you’re doing crazy things with it. Re “readable story tests”: WTF? Neither of these are something I’d like to maintain. Extras Brian: Python Testing with pytest, the course New intro video to explain what the course is about Using Teachable video like notes, mini-viewer, and speed controls Chapter on “Testing Strategy” is next Michael: HTMX + Django: Modern Python Web Apps, Hold the JavaScript Course Coding in Rust? Here's a New IDE by JetBrains Delightful Machine Learning Apps with Gradio out on Talk Python Joke: The 5 stages of debugging
9/19/202329 minutes, 27 seconds
Episode Artwork

#352 Helicopter Time Comes to Python

Topics covered in this episode: Heliclockter - Like datetime, but more timezone-aware Wagtail 5 Git log customization MiniJinja template engine Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training Python People Podcast Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Brian #1: Heliclockter - Like datetime, but more timezone-aware Suggested by Peter Nilsson The library exposes 3 classes: datetime_tz, a datetime ensured to be timezone-aware. datetime_local, a datetime ensured to be timezone-aware in the local timezone. datetime_utc, a datetime ensured to be timezone-aware in the UTC+0 timezone. Michael #2: Wagtail 5 Wagtail is the leading open-source Python CMS, based on Django. Anything you can do in Python or Django, you can do in Wagtail. Wagtail 5.0 provides even more options for your content creation experience Dark mode has arrived SVG support Enhanced accessibility checker Delete more safely Some breaking changes in it because this release removes some of the old code paths that were maintained to give people more time to adapt their code to the new upgrades Add custom validation logic to your Wagtail projects. You can now attach errors to specific child blocks in StreamField. Brian #3: Git log customization Justin Joyce Just a simple git log --oneline makes the log so much more readable, but don’t stop there. --graph helps to show different branches -10 shows the last 10 commits. And this beauty in .gitconfig makes git lg mostly do what you want most of the time: [alias] lg = log --graph -10 --format='%C(yellow)%h%Creset %s %Cgreen(%cr) %C(bold blue)[HTML_REMOVED]%Creset' Michael #4: MiniJinja template engine MiniJinja is a powerful but minimal dependency template engine for Rust compatible with Jinja/Jinja2 Comes with integration back into Python via minijinja-py package. MiniJinja has a stronger sandbox than Jinja2 and might perform ever so slightly better in some situations. However you should be aware that due to the marshalling that needs to happen in either direction there is a certain amount of loss of information. Compiles to WebAssembly Extras Brian: The pytest Primary Power course is ready. To celebrate wrapping up the first course, pytest Primary Power is $49, the bundle is $99. Bundle: This + next 2 courses + access to repo, discussion forum, Slack, and Discord Michael: New HTMX, language course, and data science course coming at Talk Python. Add your name here to get notified. I’ll be at PyBay 2023 on Oct 8, 2023 Use "friendofspeaker" with for a 20% discount on the regular tickets. Follow up from docstrings: From Rhet John Hagen: You can certainly omit the type information from the docstring when you are using typehints. This is the way I've seen almost all modern usages of Google style docstrings nowadays. They still have some examples that include the type information because the original standard pre-dated Python 3 type annotations. Here is a simple example: https://github.com/johnthagen/python-blueprint/blob/main/src/fact/lib.py#L5 This also shows off the next point that you brought up: can I document all of the exceptions that a function could raise. Google docstrings have the "Raises:" block for this, and I find it pretty nice and concise for when this is needed. Also, PyCharm can be configured to autocomplete and render Google style docstrings https://www.jetbrains.com/help/pycharm/settings-tools-python-integrated-tools.html Tools | Python Integrated Tools | Docstrings | Docstring Format: Google What's nice about this, is that then PyCharm will render the google style docstrings in the Quick Doc function (Ctrl+Q), making the headers bold and larger and lists look nice so it's easy to read. Joke: Fully optimized my algorithm
9/12/202322 minutes, 20 seconds
Episode Artwork

#351 A Python Empire (or MPIRE?)

Topics covered in this episode: mpire mopup - the macOS Python.org Updater Immortal Objects for Python Common Docstring Formats in Python Extras Joke Watch on YouTube About the show Sponsored by Sentry: pythonbytes.fm/sentry Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: mpire A Python package for easy multiprocessing, but faster than multiprocessing MPIRE is faster in most scenarios, packs more features, and is generally more user-friendly than the default multiprocessing package. Tons of features. Nice intro article with benchmarks. Brian #2: mopup - the macOS Python.org Updater Glyph Lefkowitz On a mac, install Python with the standard Python.org installer. Then, periodically, update with python3 -m mopup I just did it and went from Python 3.11.4 to 3.11.5 See also Get Your Mac Python From Python.org for reasons to use python.org over other ways, also from Glyph. Michael #3: Immortal Objects for Python Instagram has introduced Immortal Objects – PEP-683 – to Python. Brian #4: Common Docstring Formats in Python Scott Robinson I don’t mean to disrespect Scott, but I’m honestly curious if this is really common. I like docstrings for the “why” of a function. And prefer type hints for types. Let me know what you use, at @brianokken@fosstodon.org Extras Brian: In search for a working retro Lunar Lander in Python Michael: Releases follow up North Korean hackers behind malicious VMConnect PyPI campaign Joke: It’s Bingo Time!
9/6/202335 minutes, 23 seconds
Episode Artwork

#350 You've Got The Stamina For This Episode

Topics covered in this episode: Make Each Line Count, Keeping Things Simple in Python Parsel A Comprehensive Guide to Python Logging with Structlog Stamina Extras Joke Watch on YouTube About the show Sponsored by Sentry: pythonbytes.fm/sentry Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Brian #1: Make Each Line Count, Keeping Things Simple in Python Bob Belderbos Some great tips to help you simplify your Python code to make it more understandable and maintainable. Michael #2: Parsel Parsel is a BSD-licensed Python library to extract data from HTML, JSON, and XML documents. Parsel lets you extract data from XML/HTML documents using XPath or CSS selectors. It supports: CSS and XPath expressions for HTML and XML documents JMESPath expressions for JSON documents Regular expressions # Want a RSS feed detail from a website standard HTML? selector = parsel.Selector(text=html_text) for link in selector.css('head > link'): rel = link.xpath('.//@rel').get() rel_type = link.xpath('.//@type').get() href = link.xpath('.//@href').get() Brian #3: A Comprehensive Guide to Python Logging with Structlog Stanley Ulili structlog is an awesome logging tool, and already has great documentation. However, this article is a great starting point, highlighting: how easy it is to get started using structlog configuring the default log level changing the formatting customizing the time stamp adding custom fields adding contextual data filtering async … Michael #4: Stamina via Matthias Bach, by Hynek Production-grade Retries Made Easy stamina is an opinionated wrapper around the great-but-unopinionated Tenacity package. Its goal is to be as ergonomic as possible, while doing the right thing by default, while minimizing potential for misuse. General additions on top of Tenacity Retry only on certain exceptions. Exponential backoff with jitter between retries. Limit the number of retries and total time. Automatic async support. Preserve type hints of the decorated callable. Count (Prometheus) and log (structlog) retries with basic metadata, if they’re installed. Easy global deactivation for testing. Extras Brian: The “pytest fixtures” chapter of the pytest course is available now. Also, the PYTHONBYTES 20% discount still active for bundle through the end of August. Michael: Python 3.12.0 release candidate 1 released PyCon UK: The conference takes place from the 22nd to the 25th of September in Cardiff, Wales. The schedule is available at 2023.pyconuk.org/schedule/ and tickets are available at 2023.pyconuk.org/tickets/. PyData Eindhoven 2023, Nov 30 CFP open PyData Seattle Language Creators Charity Fundraiser: Adele Goldberg - Smalltalk, Guido Van Rossum, Anders Hejlsberg, C#, and James Gosling - Java. September 19, 2023: 12:00 - 4:00 PM, in person only. Joke: Librarian chatgpt-failures
8/29/202330 minutes, 55 seconds
Episode Artwork

#349 Djangonauts: Ready for Takeoff!

Topics covered in this episode: Omnivore app Djangonaut.space Server-side hot reload Python in Excel Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training Python People Podcast Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: Omnivore app Omnivore is the free, open source, read-it-later app for serious readers. Distraction free. Privacy focused. Open source. Designed for knowledge workers and lifelong learners. Save articles, newsletters, and documents and read them later — focused and distraction free. Add notes and highlights. Organize your reading list the way you want and sync it across all your devices. Syncs with popular Personal Knowledge Management systems including Logseq and Obsidian Wait, what’s Logseq? :) A privacy-first, open-source platform for knowledge management and collaboration. Kinda like Notion? Brian #2: Djangonaut.space “Where contributors launch” This is a group mentoring program where individuals will work self-paced in a semi-structured learning environment over the course of three months. Djangonauts are members of the community who wish to level up their current Django code contributions and potentially take on leadership roles in Django in the future. Michael #3: Server-side hot reload Thanks to Alex Riviere for some improvements Bill Mill suggests websockets and Adam Johnson points he built something like this for Django (sorta) with django-browser-reload To make it work just: Include this script in your web projects for dev-time auto reloading of web browser when any change is detected in content. Works across all web technologies, built out on a FastAPI / Tailwind project. General workflow looks like: Edit the source CSS file Tailwind watcher generates a built CSS file Built CSS file is included the Python web HTML template Template appends a hash ID for the state of the CSS file Changes to the source CSS thus trigger a change in the final ID New ID means the page contents change and the script does a reload Even works for static resources if you put a “version” indicator on them: [HTML_REMOVED] [HTML_REMOVED] Brian #4: Python in Excel Anaconda working with Microsoft to have Python built in to Excel. “Python in Excel is currently in preview and is subject to change based on feedback. To use this feature, join the Microsoft 365 Insider Program and choose the Beta Channel Insider level.” from Microsoft Support article: Getting started with Python in Excel Extras Brian: Working on videos for “Ch3 : pytest Fixtures” for the Python Testing with pytest Course Bundle Adding some drawings and some more bonus videos. Thanks to everyone who’s signed up already. I’ve pushed the 20% discount out till the end of August. I also finally listed it on pythontest.com/courses Also lots of new interviews for pythonpeople.fm, and I’m expecting at least one new episode of testandcode.com this week. It’s going to be a busy week. Michael: PyCon Sweden CFP is open Be on Talk Python around Mobile Apps? Joke: The Password Game KennyLog-in.com - secure password generator
8/22/202331 minutes, 6 seconds
Episode Artwork

#348 JavaScript in Your Python

Topics covered in this episode: Differentiating between writing down dependencies to use packages and for packages themselves PythonMonkey Quirks of Python package versioning bear-type Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training Python People Podcast Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Brian #1: Differentiating between writing down dependencies to use packages and for packages themselves Brett Cannon Why can’t we just use pyproject.toml and stop using requirements.txt? Nope. At least not yet. They’re currently for different things. pyproject.toml There’s project.dependencies and project.optional-dependencies.tests that kinda would work for listing dependencies for an app. But you can’t say pip install -r pyproject.toml. It doesn’t work. And that’s weird. project is intended for packaged projects. requirements.txt for applications and other non-packaged projects It has specific versions works great with pip What then? Either we stick with requirements.txt Or we invent some other file, maybe requirements.toml? Or maybe (Brian’s comment), add something like [application] and application.dependencies and application.optional-dependencies.tests to pyproject.toml Michael #2: PythonMonkey PythonMonkey is a Mozilla SpiderMonkey JavaScript engine embedded into the Python VM, using the Python engine to provide the JS host environment. This product is in an early stage, approximately 80% to MVP as of July 2023. It is under active development by Distributive. External contributions and feedback are welcome and encouraged. It will enable JavaScript libraries to be used seamlessly in Python code and vice versa — without any significant performance penalties. Call Python packages like NumPy from within a JavaScript library, or use NPM packages like [crypto-js](https://www.npmjs.com/package/crypto-js) directly from Python. Executing WebAssembly modules in Python becomes trivial using the WebAssembly API and engine from SpiderMonkey. More details in Will Pringle’s article. Brian #3: Quirks of Python package versioning Seth Larson Yes, we have SemVer, 1.2.3, and CalVer, 2023.6.1, and suffixes for pre-release, 1.2.3pre1. But it gets way more fun than that, if you get creative Here’s a few v is an optional prefix, like v.1.0 You can include an “Epoch” and separate it from the version with a !, like 20!1.2.3 Local versions with alphanumerics, periods, dashes, underscores, like 1.0.0+ubuntu-1. PyPI rejects those. That’s probably good. Long versions. There’s no max length for a version number. How about 1.2.3.4000000000000000001? Pre, post, dev aren’t mutually exclusive: 1.0.0-pre0-post0-dev0 More craziness in article - Michael #4: bear-type Beartype is an open-source PEP-compliant near-real-time pure-Python runtime type-checker emphasizing efficiency, usability, and thrilling puns. Annotate @beartype-decorated classes and callables with type hints. Call those callables with valid parameters: Transparent Call those callables with invalid parameters: Boom Traceback: raise exception_cls( beartype.roar.BeartypeCallHintParamViolation: @beartyped quote_wiggum() parameter lines=[b'Oh, my God! A horrible plane crash!', b'Hey, everybody! Get a load of thi...'] violates type hint list[str], as list item 0 value b'Oh, my God! A horrible plane crash!' not str. Extras Brian: Python Testing with Pytest Course Bundle: Limited Pre-Release Beta Use code PYTHONBYTES now through Aug 31for 20% discount (discount extended through the end of the month) What’s a pre-release beta? There’s a video. Check out the link. Error-tolerant pytest discovery in VSCode Finally! But you gotta turn it on. Also, I gotta talk to them about the proper non-capitalization of pytest. We’re at RC1 for Python 3.12.0 Hard to believe it’s that time of year again Michael: PyPI hires a Safety & Security Engineer, welcome Mike Fiedler PackagingCon October 26-28 Cloud Builders: Python Conf (born in Ukraine): September 6, 2023 | online Joke: Learning JavaScript
8/15/202333 minutes, 14 seconds
Episode Artwork

#347 The One About Context Mangers

Topics covered in this episode: async-timeout PyPI Project URLs Cheatsheet httpx-sse Creating a context manager in Python Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training Python People Podcast Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: async-timeout An asyncio-compatible timeout context manager. The context manager is useful in cases when you want to apply timeout logic around block of code or in cases when asyncio.wait_for() is not suitable. Not finished yet timeout can be rescheduled by shift_by() or shift_to() methods Brian #2: PyPI Project URLs Cheatsheet Daniel Roy Greenfield There’s some cool icons available under “Project Links” on pypi.org project pages. How do you get those? And which ones are available. Daniel has found out where to look, and built us a cheat sheet. Nice. Michael #3: httpx-sse Consume Server-Sent Event (SSE) messages with HTTPX. SSE are super lightweight, server → client only subscriptions. Like websockets but less overhead (especially for iot and mobile devices) httpx-sse provides the connect_sse and aconnect_sse helpers for connecting to an SSE endpoint. The resulting EventSource object exposes the .iter_sse() and .aiter_sse() methods to iterate over the server-sent events. Brian #4: Creating a context manager in Python Trey Hunner Context managers are those things you use in a with block. There’s a bunch of cool built in ones. Building your own is a handy skill to have to clean up your code, and they’re pretty easy, with Trey’s tutorial. Shown is a great example of temporarily modifying an environmental variable. Then he gets into what you need to know about as, __enter__, and __exit__. Extras Brian: I think I’ll nix the intro music to Python People. I didn’t know what music to use, so I re-used the music from Test & Code. And I got some very honest feedback that it just doesn’t fit and was better without it. So I’ll rip it out soon. BTW, next episode to be released is with Bob Belderbos from PyBites. Should be later this week. Michael: Facebook and Instagram start blocking news in Canada Joke: day 1 and I hate it
8/8/202336 minutes, 1 second
Episode Artwork

#346 Have you lost your GIL?

Topics covered in this episode: A Steering Council notice about PEP 703 (Making the Global Interpreter Lock Optional in CPython) Google's post-cookie world could turn into DRM for the internet How ruff changed my Python programming habits pathlib api extended to use fsspec backends Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training Python People Podcast Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Brian #1: A Steering Council notice about PEP 703 (Making the Global Interpreter Lock Optional in CPython) Thomas Wouters Suggested by John Hagen “We intend to accept PEP 703, although we’re still working on the acceptance details.” Moving forward in 3 stages short-term, no-GIL experimental build in 3.13 or 3.14 mid-term, declare support for no-GIL version long-term, no-GIL becomes default and remove any vestiges of the GIL No commitment and timeframe is nebuous long-term means 5+ years Need community support “We want to be able to change our mind if it turns out, any time before we make no-GIL the default, that it’s just going to be too disruptive for too little gain.” Michael #2: Google's post-cookie world could turn into DRM for the internet A new authentication system could let websites block extensions or jailbroken devices. Google has been trying to implement plans to move beyond cookies for years without denying its partners the means to sell targeted ads. One recent proposal to guarantee user privacy and security could come at the cost of freedom of functionality. Comments are somewhat interesting. More info in a second article. Vivaldi has a response here. Brave won’t ship with it. Brian #3: How ruff changed my Python programming habits Matthias Kestenholz “…there’s always a trade off between development speed (waiting on git commit is very boring) and strictness. “ “ruff is so fast that enabling additional rules is practically free in terms of speed...” ruff has way more rules since last I checked. They are just mostly turned off by default. The article suggests a bunch to try turning on. See also ruff config settings turn on flake8-bugbear while leaving on defaults with select = ["E", "F", "B"] lots of rules to choose from ruff-pre-commit to run these with pre-commit Michael #4: pathlib api extended to use fsspec backends via Justin Flannery Expanding on the capabilities of fsspec, the same GitHub organization also supports another powerful library called universal_pathlib. universal_pathlib is a python library that aims to extend Python's built-in pathlib.Path api to use a variety of backend filesystems using fsspec. This seamless replacement allows developers to leverage the familiar and powerful pathlib API on any type of filesystem. upath.Path is a drop-in replacement for pathlib.Path and is an excellent addition to your toolkit. Joke: Understanding pointers
8/2/202328 minutes, 9 seconds
Episode Artwork

#345 Some Big Time Releases

Topics covered in this episode: Cython 3.0 Reading code : An important but seldom-discussed skill Major new version of MicroPython: v1.20.0 Advanced Python Tips for Development Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Python People Podcast Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: Cython 3.0 Long in development, the new major release of the Python-to-C compiler sheds legacy Python support and readies Cython developers for big changes in Python. Cython 3 cleans up and modernizes Cython. Pure Python mode allows Python developers to use their existing Python linting and code analysis tools on Cython. Brian #2: Reading code : An important but seldom-discussed skill Eric Matthes A cool walk through of several techniques to read code Strategies Ignore function definitions And in the example, also ignore comments Simplify repetitive blocks Examples shows mentally lumping a bunch of print statements into “print message” Utilize IDE tools, like folding to hide functions your not looking at Also includes a note about writing readable code. Notes: People believe your function and variable names, they should be descriptive, and they should not be deceptive. Michael #3: Major new version of MicroPython: v1.20.0 via Matt Trentini >10 months, >1000 mainline commits from >100 contributors This release of MicroPython introduces a new lightweight package manager called mip. In the MicroPython runtime, core/built-in types have been compressed by only including in the C-level type struct as many slots for C function pointers as is needed for a given type → Any third-party C extensions will need to be updated to work with this change. Massive list of detailed changes. Brian #4: Advanced Python Tips for Development Scofield Idehen There’s 15 in the article, here’s a few 1 & 2. Use List Comprehensions and Generator Expressions. It’s cool to see them side by side enumerate() is fun Embrace zip(). It’s weird, but very useful. Utilize slots to Reduce Memory Usage Extras Brian: Hear the story behind the quote “I came for the language, but I stayed for the community.” and learn about fountain pens, tea, and a Murderbot, on this week‘s Python People. Michael: Search (LLM like) Talk Python: explore-talk-python-to-me.streamlit.app by Aguss Joke: You’re full stack now Seriously, take the HTMX course :)
7/26/202335 minutes, 52 seconds
Episode Artwork

#344 AMA: Ask Us Anything

Topics covered in this episode: Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training Test & Code Podcast Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Main topic: AMA questions from the audience. Use the transcript search to find timestamps if you want to locate a particular one. Extras Michael: Deputy CPython Developer in Residence position accepting applications. My Make Your Python Web App Fly Around the World with CDNs talk at PWC 2023 is online. “Joke”: Ode to Python recommended by FelixTheCat
7/18/202348 minutes, 2 seconds
Episode Artwork

#343 So Much Pydantic!

Topics covered in this episode: Pydantic v2 released Two Ways to Turbo-Charge tox Awesome Pydantic CLI tools hidden in the Python standard library Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training Test & Code Podcast Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: Pydantic v2 released Pydantic V2 is compatible with Python 3.7 and above. There is a migration guide. Check out the bump-pydantic tool to auto upgrade your classes Brian #2: Two Ways to Turbo-Charge tox Hynek Not just tox run-parallel or tox -p or tox --``parallel , but you should know about that also. The 2 ways Build one wheel instead of N sdists Run pytest in parallel tox builds source distributions, sdists, for each environment before running tests. that’s not really what we want, especially if we have a test matrix. It’d be better to build a wheel once, and use that for all the environments. Add this to your tox.ini and now we get one wheel build [testenv] package = wheel wheel_build_env = .pkg It will save time. And a lot if you have a lengthy build. Run pytest in parallel, instead of tox in parallel, with pytest -n auto Requires the pytest-xdist plugin. Can slow down tests if your tests are pretty fast anyway. If you’re using hypothesis, you probably want to try this. There are some gotchas and workarounds (like getting coverage to work) in the article. Michael #3: Awesome Pydantic A curated list of awesome things related to Pydantic! 🌪️ Notable items for me: ML: spaCy 🌟(26575) - spaCy is a free open-source library for Natural Language Processing in Python. It features NER, POS tagging, dependency parsing, word vectors and more. ray 🌟(26496) - Ray provides a simple, universal API for building distributed applications. jina 🌟(18734) - Jina is geared towards building search systems for any kind of data, including text, images, audio, video and many more. With the modular design & multi-layer abstraction, you can leverage the efficient patterns to build the system by parts, or chaining them into a Flow for an end-to-end experience. Data Beanie 🌟(1287) - Beanie - is an Asynchronous Python object-document mapper (ODM) for MongoDB, based on Motor and Pydantic. Utilities datamodel-code-generator 🌟(1694) - Pydantic model generator for easy conversion of JSON, OpenAPI, JSON Schema, and YAML data sources. Goodconf 🌟(99) - A thin wrapper over Pydantic's settings management. Allows you to define configuration variables and load them from environment or JSON/YAML file. Also generates initial configuration files and documentation for your defined configuration. Brian #4: CLI tools hidden in the Python standard library Simon Willison (and hat tip to Seth Larson) Simon looked for all of the command line goodies in the standard library. I knew about python -m http.server to run a server at port 8000 from the local directory, but there’s so much more. Here are a few python -m gzip --decompress pypi.db.gz as a gzip utility. Especially handy on Windows as it doesn’t come with gzip by default python -m base64 with -d decode, -e encode, and -t encode and decode python -m asyncio for an asyncio REPL Tokenize a Python file with python -m tokenize somefile.py View the AST with python -m ast somefile.py Pretty print JSON with python -m json.tool Extras Brian: Congrats to Seth Larson, PSFs first Security Developer-in-Residence Announcing Our New Security Developer in Residence! - PSF announcement I am the first PSF Security Developer-in-Residence - Seth’s announcement PythonPeople.fm is live "The NEW podcast about the people who make the Python community awesome.” I’m focusing more on the people, and less on the tech. First episode is with Michael Kennedy Upcoming episodes in the works with Paul Everitt, Paul McGuire, and Steve Holden. More people scheduled, many asked, and many more to be asked. Michael: MongoDB with Async Python course is out! (talkpython.fm/async-mongodb) Meta commits to dedicate three engineer-years to implement the removal of the GIL from Python PyPI has a blog Joke: Containers, that’ll fix it Bonus dad joke: 5 ants rent an apartment. Invite 5 other ants to share the rent. Now there are tenants.
7/11/202335 minutes, 51 seconds
Episode Artwork

#342 Don't Believe Those Old Blogging Myths

Topics covered in this episode: Plumbum: Shell Combinators and More Our plan for Python 3.13 Some blogging myths Jupyter AI Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training Test & Code Podcast Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Brian #1: Plumbum: Shell Combinators and More Suggested by Henry Schreiner last week. (Also, thanks Michael for the awesome search tool on PythonBytes.fm that includes transcripts, so I can find stuff discussed and not just stuff listed in the show notes.) Plumbum is “ a small yet feature-rich library for shell script-like programs in Python. The motto of the library is “Never write shell scripts again”, and thus it attempts to mimic the shell syntax (shell combinators) where it makes sense, while keeping it all Pythonic and cross-platform.” Supports local commands piping redirection working directory changes in a with block. So cool. lots more fun features Michael #2: Our plan for Python 3.13 The big difference is that we have now finished the foundational work that we need: Low impact monitoring (PEP 669) is implemented. The bytecode compiler is a much better state. The interpreter generator is working. Experiments on the register machine are complete. We have a viable approach to create a low-overhead maintainable machine code generator, based on copy-and-patch. We plan three parallelizable pieces of work for 3.13: The tier 2 optimizer Enabling subinterpreters from Python code (PEP 554). Memory management Details on superblocks Brian #3: Some blogging myths Julia Evans <from Brian: I’m not sure if I’m including this to convince all of you to blog more, or to convince myself. Hopefully both happens.> myths (more info of each in the blog post): you need to be original you need to be an expert posts need to be 100% correct writing boring posts is bad you need to explain every concept page views matter more material is always better everyone should blog I’d add Write posts to help yourself remember something. Write posts to help future prospective employers know what topics you care about. You know when you find a post that is outdated and now wrong, and the code doesn’t work, but the topic is interesting to you. Go ahead and try to write a better post with code that works. Michael #4: Jupyter AI A generative AI extension for JupyterLab An %%ai magic that turns the Jupyter notebook into a reproducible generative AI playground. This works anywhere the IPython kernel runs (JupyterLab, Jupyter Notebook, Google Colab, VSCode, etc.). A native chat UI in JupyterLab that enables you to work with generative AI as a conversational assistant. Support for a wide range of generative model providers and models (AI21, Anthropic, Cohere, Hugging Face, OpenAI, SageMaker, etc.). Official project from Jupyter Provides code insights Debug failing code Provides a general interface for interaction and experimentation with currently available LLMs Lets you collaborate with peers and an Al in JupyterLab Lets you ask questions about local files Video presentation: David Qiu - Jupyter AI — Bringing Generative AI to Jupyter | PyData Seattle 2023 Extras Brian: Textual has some fun releases recently Textualize youtube channel with 3 tutorials so far trogon to turn Click based command line apps into TUIs video example of it working with sqlite-utils. Python in VSCode June Release includes revamped test discovery and execution. You have to turn it on though, as the changes are experimental: "python.experiments.optInto": [ "pythonTestAdapter", ] I just turned it on, so I haven’t formed an opinion yet. Michael: Michael’s take on the MacBook Air 15” (black one) Joke: Phishing
6/26/202341 minutes, 47 seconds
Episode Artwork

#341 Shhh - For Secrets and Shells

Topics covered in this episode: Pydantic roadmap The Right Way to Run Shell Commands From Python US: Yep, We're Buying Your Data, Including Your Embarrassing Secrets Pro-Tip – pytest fixtures are magic! Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training Test & Code Podcast Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org Brian: @brianokken@fosstodon.org Show: @pythonbytes@fosstodon.org Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 11am PT. Older video versions available there too. Michael #1: Pydantic roadmap via Mario Munoz Back in February [Samuel] [announced](https://pydantic.dev/announcement/) Pydantic Inc., but I didn't explain what services we were building. The problem is that even with Pydantic in your corner, working with data when it leaves Python often still sucks. We want to build a data platform to make working with data quick, easy, and enjoyable — where developer experience is our north star. There are five key components to the Pydantic Data Platform that we're thinking of building. Python Analytics/Observability — a logging and metrics platform with tight Python and Pydantic integration, designed to make the data flowing through your application more readily usable for both engineering and business analytics. More info... Data Gateway for object stores — Add validation, transformation and cataloguing in front of object stores like S3, with a schema defined in Pydantic models then validated by our Rust service. More info... Data Gateway for data warehouses — the same service as above, but integrated with your existing data warehouse. More info... Schema Catalog — for many, Pydantic already holds the highest fidelity representation of their data schemas. Our Schema Catalog will take this to the next level, serving as an organization-wide single source of truth for those schemas, tracking their changes, and integrating with our other tools and your wider platform. More info... Dashboards and UI powered by Pydantic models — a managed platform to deploy and control dashboards, auxiliary apps and internal tools where everything from UI components (like forms and tables) to database schema would be defined in Python using Pydantic models. More info... Tell them what you think with their survey Brian #2: The Right Way to Run Shell Commands From Python Martin Heinz Should have a tagline of “especially if you’re on Mac or Linux”. Includes discussion of Python native tools - recommended a few os module functions - but otherwise avoid relying too much on os. subprocess.run() - stick with run() if you can. sh third party package - should be second choice if on Linux or Mac Michael #3: US: Yep, We're Buying Your Data, Including Your Embarrassing Secrets Digital information can be purchased from commercial data brokers and 'deanonymized' to ID the person it's tied to, including US citizens, the Office of the Director of National Intelligence says. The Office of the Director of National Intelligence (ODNI) on Friday declassified(Opens in a new window) a report from January 2022 that outlines the US government’s approach to using Commercially Available Information (CAI), which can come from data brokers working in the internet ad and analytics industries. The purchased information includes details from users' smartphones and social media accounts. To all the “please disable your ad blockers” companies out there 1) It’s not just about supporting your website 2) Ad blockers are not just avoiding ads. 3) It’s not even necessary (our ads are not blocked on the podcast or the website) Consider browser != Chrome and/or nextdns.io for your whole network Brian #4: Pro-Tip – pytest fixtures are magic! Frank Wiles “The magic of pytest fixtures is how they are injected into your tests for you to use and their composability. When done well, writing tests is considerably easier and actually fun.” Setup code is often the biggest headache of test writing. pytest fixtures help solve the setup problem. Fixtures are used by just including them in a tests parameter list can build on top of each other can be used in any test in the project, if you put it in a central conftest.py can return all kinds of things: static data, instantiated objects, callables to make other things, Frank includes an interesting way to organize fixtures such that they are defined in local test directories but usable across a project, under “Organizing Your Fixtures”. Plugins with fixtures: A shoutout to pytest-django and a Revsys plugin called django-test-plus. Built-in fixtures. See also tmp_path. autouse One bit of incorrect info: autouse doesn’t work like that. The value of global_thing cannot be grabbed unless you list it in the parameter list. It will run before every function (since it’s scope=``"``function``" by default), but you gotta list it to get the value. To be fair, it’s really hard to come up with good autouse examples. Partly because there are so few good reasons to use autouse. Extras Brian: Porting Python projects to Rust International Obfuscated Python Code Competition Michael: Remember the AMA (submit your question). “Scheduled” on July 11th at 11am. Joke: Marked as duplicate
6/20/202335 minutes, 8 seconds
Episode Artwork

#340 Snorkel not included

Topics covered in this episode: PythonGUIS JupyterLab 4.0 is Here Proposing a struct syntax for Python Python 3.13 Removes 20 Stdlib Modules Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/340
6/13/202331 minutes, 9 seconds
Episode Artwork

#339 Actual Technical People

Topics covered in this episode: pystack Securing PyPI accounts via Two-Factor Authentication Propan - a declarative Python MQ framework Makefile tricks for Python projects Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/339
6/7/202330 minutes, 43 seconds
Episode Artwork

#338 Scripting iOS with Python

Topics covered in this episode: The Basics of Python Packaging in Early 2023 vecs Introducing Grasshopper - An Open Source Python Library for Load Testing memocast Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/338
5/30/202330 minutes, 20 seconds
Episode Artwork

#337 Backtracking For a Package

Topics covered in this episode: Ruff PyCharm plugin Writing Python like it's Rust Pip 23.1 Released - Massive improvement to backtracking Markdown Code Runner Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/337
5/23/202332 minutes, 18 seconds
Episode Artwork

#336 We found one of your batteries

Topics covered in this episode: Python's Missing Batteries: Essential Libraries You're Missing Out On awesome-polars Running Headless Selenium in Python (2023) Gracy Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/336
5/16/202328 minutes, 28 seconds
Episode Artwork

#335 Should you get your mojo on?

Topics covered in this episode: Introducing 'Trusted Publishers’ Mojo: a new programming language for all AI developers. django-prose pylyzer is a static code analyzer / language server for Python, written in Rust. Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/335
5/11/202325 minutes, 37 seconds
Episode Artwork

#334 Packaging Organizations

Topics covered in this episode: rye - Python workflow tool PyPI Organizations 5 tips to learn any new Python library faster Python gets down to (the) Metal Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/334
5/5/202332 minutes, 22 seconds
Episode Artwork

#333 Live From PyCon

Topics covered in this episode: Introducing Microsoft Security Copilot PEP 695 – Type Parameter Syntax Auto-GPT Astral: Ruff is now a company Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/333
4/22/202322 minutes, 38 seconds
Episode Artwork

#332 A Python, a Slurpee, and Some Chaos

Topics covered in this episode: huak - A Python package manager written in Rust. Inspired by Cargo PSF expresses concerns about a proposed EU law that may make it impossible to continue providing Python and PyPI to the European public ChaosToolkit PEP 711 – PyBI: a standard format for distributing Python Binaries Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/332
4/18/202336 minutes, 56 seconds
Episode Artwork

#331 Python From the Future

Topics covered in this episode: makeapp Looking forward to Python 3.12 Python 3.11.3 is out How to Make a Great Conference Talk Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/331
4/12/202335 minutes, 57 seconds
Episode Artwork

#330 Your data, validated 5x-50x faster, coming soon

Topics covered in this episode: Pydantic V2 Pre Release microdot The impossibly small web framework for Python and MicroPython GitHub Actions Tools: watchgha, build and inspect, and pytest annotate failures PEP 709 – Inlined comprehensions Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/330
4/6/202334 minutes, 25 seconds
Episode Artwork

#329 Creating very old Python code

Topics covered in this episode: Prefix-cache NiceGUI flask-ngrok No-async async with Python Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/329
3/30/202328 minutes, 52 seconds
Episode Artwork

#328 We are going to need some context here

Topics covered in this episode: zipapp Reverse engineering the Apple News app with #python and #nerd power What is a context manager? nox-poetry: Use Poetry inside Nox sessions Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/328
3/21/202324 minutes, 48 seconds
Episode Artwork

#327 Untangling XML with Pydantic

Topics covered in this episode: pydantic-xml extension How virtual environments work DbDeclare Testing multiple Python versions with nox and pyenv Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/327
3/13/202331 minutes, 37 seconds
Episode Artwork

#326 Let's Go for a PyGWalk

Topics covered in this episode: Data Classification: Does Python still have a need for class without @dataclass? PyGWalker An opinionated Python boilerplate Front Matter VS Code Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/326
3/8/202333 minutes, 26 seconds
Episode Artwork

#325 It's called a merge conflict

Topics covered in this episode: Python Parquet and Arrow: Using PyArrow With Pandas FastAPI-Filter 12 Python Decorators to Take Your Code to the Next Level PyHamcrest Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/325
2/28/202339 minutes, 32 seconds
Episode Artwork

#324 JSON in My DB?

Topics covered in this episode: Use TOML for .env files? Pydantic gets serious funding f-strings with pandas and Jupyter keyboard shortcuts BioGPT Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/324
2/21/202344 minutes, 53 seconds
Episode Artwork

#323 AI search wars have begun

Topics covered in this episode: camply hatch-fancy-pypi-readme EU hates open source? So, Single (‘) or Double (“) Quotes in Python? Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/323
2/14/202350 minutes, 5 seconds
Episode Artwork

#322 Python Packages, Let Me Count The Ways

Topics covered in this episode: Packaging Python Projects untangle xml Thoughts on the Python packaging ecosystem Top PyPI Packages Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/322
2/7/202346 minutes, 40 seconds
Episode Artwork

#321 A Memorial To Apps Past

Topics covered in this episode: git-sim Why I Like Nox I scanned every package on PyPi and found 57 live AWS keys Getting Started With Property-Based Testing in Python With Hypothesis and pytest Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/321
1/30/202336 minutes, 30 seconds
Episode Artwork

#320 The Bug Is In The JavaScript

Topics covered in this episode: markdown-it-py Sketch Fixing Circular Imports in Python with Protocol unrepl Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/320
1/24/202328 minutes, 26 seconds
Episode Artwork

#319 CSS-Style Queries for... JSON?

Topics covered in this episode: Secure maintainer workflow Tools for parsing HTML and JSON git-sizer Dataclasses without type annotations Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/319
1/18/202332 minutes, 44 seconds
Episode Artwork

#318 GIL, How We Will Miss You

Topics covered in this episode: PEP 703 - Making the GIL Optional in CPython FerretDB Four tips for structuring your research group’s Python packages Quibbler Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/318
1/10/202339 minutes, 38 seconds
Episode Artwork

#317 Most loved and most dreaded dev tools of 2022

Topics covered in this episode: StackOverflow 2022 Developer Survey PePy.tech - PyPI download stats with package version breakdown Codon Python Compiler 8 Levels of Using Type Hints in Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/317
1/3/202348 minutes, 31 seconds
Episode Artwork

#316 Python 3.11 is here and it's fast (crossover)

See the full show notes for this episode on the website at pythonbytes.fm/316
12/30/20221 hour, 4 minutes, 12 seconds
Episode Artwork

#315 Some Stickers!

Topics covered in this episode: Jupyter Server 2.0 is released! Converting to pyproject.toml aws-lambda-powertools-python How to create a self updating GitHub Readme Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/315
12/20/202229 minutes, 56 seconds
Episode Artwork

#314 What are you, a wise guy? Sort it out!

Topics covered in this episode: FAQtory Kagi search "live with it” report Tools for rewriting Python code Socketify Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/314
12/13/202237 minutes, 24 seconds
Episode Artwork

#313 Programming Robots With a Marker

Topics covered in this episode: How do you say that number? The Origins of Python setproctitle Looking forward to Python 3.12 Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/313
12/6/202246 minutes
Episode Artwork

#312 AI Goes on Trial For Writing Code

Topics covered in this episode: Coping strategies for the serial project hoarder GitHub copilot lawsuit Use Windows Dialog Boxes from Python with no extra libraries Extra Extra Extra Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/312
11/29/202235 minutes, 26 seconds
Episode Artwork

#311 Catching Memory Leaks with ... pytest?

Topics covered in this episode: Latexify prefixed dbt Memray pytest plugin Stealing Open Source code from Textual Shed Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/311
11/24/202249 minutes, 50 seconds
Episode Artwork

#310 Calling All Tools for Readmes

Topics covered in this episode: Tips for clean code in Python Mastodon is picking up speed Some FastAPI news, and some great READMEs. Closevember Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/310
11/15/202253 minutes, 44 seconds
Episode Artwork

#309 When Malware PoC's are Themselves Malware

Topics covered in this episode: Malicious proof-of-concepts are exposing GitHub users to malware and more The great Mastodon experiment Gitpod and the traveling dev Color in the terminal Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/309
11/9/202235 minutes, 1 second
Episode Artwork

#308 Conference season is heating up

Topics covered in this episode: It’s PyCon US 2023 CFP time Any.io How to propose a winning conference talk Sanic release adds background workers Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/308
11/1/202234 minutes, 37 seconds
Episode Artwork

#307 Your Python just got faster (3.11 is out!)

Topics covered in this episode: Python 3.11 is released Installing Python 3.11 on Mac or Windows Bossie 2022 Awards Textual 0.2.0 Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/307
10/26/202244 minutes, 54 seconds
Episode Artwork

#306 Some Fun pytesting Tools

Topics covered in this episode: Awesome pytest speedup Strive to travel without a laptop Some fun tools from the previous testing article Refurb Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/306
10/19/202246 minutes, 22 seconds
Episode Artwork

#305 Decorators need love too

Topics covered in this episode: Pyscript 2022.09.1 is out Decorator shortcuts Panel (of Holoviz) on Pyscript auto-walrus Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/305
10/13/202232 minutes, 58 seconds
Episode Artwork

#304 Build your own text adventure language in Python

Topics covered in this episode: Ten tasty ingredients for a delicious pull request textX Reasoning about asyncio.Semaphore Turnstile Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/304
10/5/202238 minutes, 24 seconds
Episode Artwork

#303 This title is required or is it optional?

Topics covered in this episode: Human regular expressions revisited Implicit Optional Types Will Be Disabled by Default cython-lint difftastic - structural diff Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/303
9/29/202237 minutes, 56 seconds
Episode Artwork

#302 The Blue Shirt Episode

Topics covered in this episode: Can Amazon’s CodeWhisperer write better Python than you? Related and worth listening to: * Stable Diffusion breaks the internet w/ Simon Willison* Apache Superset Recipes from Python SQLite docs -ffast-math and indirect changes Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/302
9/20/202233 minutes, 2 seconds
Episode Artwork

#301 PyTorch Grows Up and Moves Out

Topics covered in this episode: PythonAnywhere: Our Commitment to Providing Free Accounts ruff: An extremely fast Python linter, written in Rust. Meta spins off PyTorch Foundation to make AI framework vendor neutral Two string resources Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/301
9/15/202231 minutes, 10 seconds
Episode Artwork

#300 A Jupyter merge driver for git

Topics covered in this episode: Test your packages and wheels The Jupyter+git problem is now solved Help us test system trust stores in Python Making plots in your terminal with plotext jinja2-fragments SLSA 3 Generic Builder for GitHub Actions GA Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/300
9/6/202255 minutes, 21 seconds
Episode Artwork

#299 Will McGugan drops by

Topics covered in this episode: Careful with that PyPI email IEEE Top Programming Languages 2022: Python’s still No. 1, but employers love to see SQL skills Django 4.1 You Should Be Using Python's Walrus Operator - Here’s Why Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/299
9/3/202246 minutes, 7 seconds
Episode Artwork

#298 "Unstoppable" Python

Topics covered in this episode: Uncommon Uses of Python in Commonly Used Libraries Skyplane Cloud Transfers 7 things I've learned building a modern TUI framework ‘Unstoppable’ Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/298
8/24/202232 minutes, 22 seconds
Episode Artwork

#297 I AM the documentation

Topics covered in this episode: SQLCodeGen The death of setup.py*, long live pyproject.toml aiocache Hatch: a modern, extensible Python project manager Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/297
8/16/202222 minutes, 36 seconds
Episode Artwork

#296 pip: Constrain your excitement

Topics covered in this episode: Pip constraints files async-cache Organize Python code like a PRO keyring Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/296
8/9/202232 minutes, 31 seconds
Episode Artwork

#295 Flutter + Python GUI Apps?

Topics covered in this episode: Faster routing for Flask & Quart Quarto: an open-source scientific and technical publishing system built on Pandoc Flet UI Building an authenticated Python CLI Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/295
8/4/202236 minutes, 16 seconds
Episode Artwork

#294 Specializing Adaptive Interpreters in Full Color

Topics covered in this episode: Specialist: Python 3.11 perf highlighter tomli “A lil’ TOML parser” Pydantic V2 Plan pikepdf Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/294
7/26/202235 minutes, 26 seconds
Episode Artwork

#293 And if I pull this open source Jenga block...

Topics covered in this episode: PSF security key giveaway for critical package maintainers PyLeft-Pad FastAPI Filter AutoRegEx Anaconda Acquires PythonAnywhere Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/293
7/20/202247 minutes, 34 seconds
Episode Artwork

#292 Thursday, it's always a Thursday

Topics covered in this episode: rich-codex Pydastic 3 Things to Know Before Building with PyScript disnake Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/292
7/11/202228 minutes, 36 seconds
Episode Artwork

#291 Wait, you have how many licenses?!?

Topics covered in this episode: Python License tracker undataclass Qutebrowser asyncio and web applications Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/291
7/6/202232 minutes, 27 seconds
Episode Artwork

#290 Sentient AI? If so, then what?

Topics covered in this episode: picologging CheekyKeys richbench typeguard Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/290
6/28/202249 minutes, 34 seconds
Episode Artwork

#289 Textinator is coming for your text, wherever it is

Topics covered in this episode: beanita The Good Research Code Handbook Textinator Handling Concurrency Without Locks Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/289
6/21/202246 minutes, 14 seconds
Episode Artwork

#288 Performance benchmarks for Python 3.11 are amazing

Topics covered in this episode: Polars: Lightning-fast DataFrame library for Rust and Python PSF Survey is out Gin Config: a lightweight configuration framework for Python Performance benchmarks for Python 3.11 are amazing Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/288
6/14/202233 minutes, 5 seconds
Episode Artwork

#287 Surprising ways to use Jupyter Notebooks

Topics covered in this episode: auto-py-to-exe 8 surprising ways how to use Jupyter Notebook piptrends Is it a class or a function? It's a callable! Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/287
6/7/202227 minutes, 22 seconds
Episode Artwork

#286 Unreasonable f-strings

Topics covered in this episode: The Python GIL: Past, Present, and Future Announcing the PyOxy Python Runner The unreasonable effectiveness of f-strings and re.VERBOSE PyCharm PR Management Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/286
6/3/202226 minutes, 22 seconds
Episode Artwork

#285 Where we talk about UIs and Python

Topics covered in this episode: libgravatar JSON to Pydantic Converter PEP 690 – Lazy Imports Two small items Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/285
5/25/202250 minutes, 54 seconds
Episode Artwork

#284 Spicy git for Engineers

Topics covered in this episode: distinctipy Soda SQL Python in Nature Supercharging GitHub Actions with Job Summaries Language Summit is write up out AllSpice is Git for EEs Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/284
5/18/202241 minutes, 12 seconds
Episode Artwork

#283 The sports episode

Topics covered in this episode: Pathy: a Path interface for local and cloud bucket storage Robyn Termshot When Python can’t thread: a deep-dive into the GIL’s impact Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/283
5/12/202232 minutes, 58 seconds
Episode Artwork

#282 Don't Embarrass Me in Front of The Wizards

Topics covered in this episode: pyscript Memray from Bloomberg pytest-parallel Pooch: A friend for data files Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/282
5/3/202228 minutes, 32 seconds
Episode Artwork

#281 ohmyzsh + ohmyposh + mcfly + pls + nerdfonts = wow

Topics covered in this episode: Take Your Github Repository To The Next Level 🚀️ Fastero Watchfiles Slipcover: Near Zero-Overhead Python Code Coverage Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/281
4/28/202246 minutes, 34 seconds
Episode Artwork

#280 Easy terminal scripts by sourcing your Py

Topics covered in this episode: BTW, don’t make a public repo private The counter-intuitive rise of Python in scientific computing Dashboards in Python sourcepy Xonsh Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/280
4/21/202237 minutes, 36 seconds
Episode Artwork

#279 Autocorrect and other Git Tricks

Topics covered in this episode: OpenBB wants to be an open source challenger to Bloomberg Terminal Python f-strings JSON Web Tokens @ jwt.io Autocorrect and other Git Tricks Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/279
4/15/202241 minutes, 52 seconds
Episode Artwork

#278 Multi-tenant Python applications

Topics covered in this episode: dunk - a prettier git diff Is your Python code vulnerable to log injection? Building multi tenant applications with Django Should you pre-allocate lists in Python? mockaroo and tonic Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/278
4/8/202233 minutes, 34 seconds
Episode Artwork

#277 It's a Python package showdown!

Topics covered in this episode: March Package Madness nbpreview strenum Code Review Guidelines for Data Science Teams Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/277
4/2/202245 minutes, 1 second
Episode Artwork

#276 Tracking cyber intruders with Jupyter and Python

Topics covered in this episode: gensim.parsing.preprocessing DevDocs The Right Way To Compare Floats in Python Pypyr Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/276
3/23/202245 minutes, 4 seconds
Episode Artwork

#275 Airspeed velocity of an unladen astropy

Topics covered in this episode: Async and await with subprocesses Typesplainer ASV perflint Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/275
3/16/202242 minutes, 43 seconds
Episode Artwork

#274 12 Questions You Should Be Asking of Your Dependencies

Topics covered in this episode: The Adam Test: 12 Questions for New Dependencies Validate emails with email-validator The Python on Microcontrollers Newsletter Git Organized: A Better Git Flow CPython issues moving to GitHub soon * MicroPython, CircuitPython and GitHub* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/274
3/9/202239 minutes, 54 seconds
Episode Artwork

#273 Getting dirty with __eq__(self, other)

Topics covered in this episode: Physics Breakthrough as AI Successfully Controls Plasma in Nuclear Fusion Experiment PEP 680 -- tomllib: Support for Parsing TOML in the Standard Library What is a generator function? dirty-equals Commitizen Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/273
3/4/202237 minutes, 5 seconds
Episode Artwork

#272 The tools episode

Topics covered in this episode: Why your mock still doesn’t work pls Kitty Futures and easy parallelisation pgMustard bpytop Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/272
2/24/202248 minutes, 9 seconds
Episode Artwork

#271 CPython: Async Task Groups in Python 3.11

Topics covered in this episode: fastapi-events Ways I Use Testing as a Data Scientist py-overload Next-generation seaborn interface Compile CPython to Web Assembly Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/271
2/16/202257 minutes, 21 seconds
Episode Artwork

#270 Can errors really be beautiful?

Topics covered in this episode: A Better Pygame Mainloop awesome sqlalchemy ThreadPoolExecutor in Python: The Complete Guide Chaining comparison operators Create Beautiful Tracebacks with Python’s Exception Hooks Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/270
2/10/202247 minutes, 25 seconds
Episode Artwork

#269 Get Rich and replace your cat

Topics covered in this episode: rich-cli Documentation unit tests Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/269
2/3/202240 minutes, 35 seconds
Episode Artwork

#268 Wait, you can Google that?

Topics covered in this episode: (draft) PEP 679 -- Allow parentheses in assert statements Everything I googled as a dev PyCascades 2022! Strict Python function parameters mureq - vendored requests Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/268
1/27/202245 minutes, 9 seconds
Episode Artwork

#267 Python on the beach

Topics covered in this episode: Box: Python dictionaries with advanced dot notation access Reading tracebacks in Python Raspberry Pi: These two new devices just went live on the International Space Station Make Simple Mocks With SimpleNamespace * Extra, extra, exta* 3 Things You Might Not Know About Numbers in Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/267
1/21/202232 minutes, 50 seconds
Episode Artwork

#266 Python has a glossary?

Topics covered in this episode: Python glossary and FAQ Any.io Vaex : a high performance Python library for lazy Out-of-Core DataFrames Django Community Survey Results * Extra, Extra, Extra, Extra:* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/266
1/13/202226 minutes, 46 seconds
Episode Artwork

#265 Get asizeof pympler and muppy

Topics covered in this episode: * Survey results* Modern attrs API Yamele - A schema and validator for YAML pympler Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/265
1/5/202247 minutes, 46 seconds
Episode Artwork

#264 We're just playing games with Jupyter at this point

Topics covered in this episode: Jupyter Games Canary Tokens A reverse chronology of some Python features Hyperactive GCs and ORMs/ODMs Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/264
12/22/202153 minutes, 2 seconds
Episode Artwork

#263 It’s time to stop using Python 3.6

Topics covered in this episode: Django 4.0 released python-minifier It’s time to stop using Python 3.6 How to Visualize the Formula 1 Championship in Python nbdime: Jupyter Notebook Diff and Merge tools Using AI to analyse and recommend software stacks for Python apps Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/263
12/15/202150 minutes, 7 seconds
Episode Artwork

#262 So many bots up in your documentation

Topics covered in this episode: pytest 7.0.0rc1 PandasTutor * Apache Airflow* textwrap.dedent pip-audit Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/262
12/9/202143 minutes, 6 seconds
Episode Artwork

#261 Please re-enable spacebar heating

Topics covered in this episode: rClone check-wheel-contents xarray JetBrains Remote Development The XY Problem kerchunk - Making data access fast and invisible Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/261
12/3/202142 minutes, 21 seconds
Episode Artwork

#260 It's brutally simple: made just from pickle and zip

Topics covered in this episode: Using cog to update --help in a Markdown README file An oral history of Bank Python C Pyxel How to Ditch Codecov for Python Projects tiptop (like glances) pyc64 Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/260
11/23/202148 minutes, 49 seconds
Episode Artwork

#259 That argument is a little late-bound

Topics covered in this episode: pypi-changes Late-bound argument defaults for Python pandas.read_sql pyjion Tips for debugging with print() SHAP (and beeswarm plot) Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/259
11/17/202147 minutes, 24 seconds
Episode Artwork

#258 Python built us an anime dog!

Topics covered in this episode: stale: github bot to “Close Stale Issues and PRs” jut - JUpyter notebook Terminal viewer JupyterLyte Feature comparison of ack, ag, git-grep, GNU grep and ripgrep Python Client for Airtable: pyairtable Black can now format notebooks Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/258
11/11/202143 minutes, 9 seconds
Episode Artwork

#257 Python Launcher - Launching Python Everywhere

Topics covered in this episode: Django 4.0 beta 1 released * py - The Python launcher* Model bakery Coverage goals, goals.py Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/257
11/4/202140 minutes, 25 seconds
Episode Artwork

#256 And the best open source project prize goes to ...

Topics covered in this episode: * It’s episode 2^8 (nearly 5 years of podcasting)* Where does all the effort go?: Looking at Python core developer activity Why you shouldn't invoke setup.py directly By Paul Ganssle (from Talk Unlock the mysteries of time, Python's datetime that is!) OpenTelemetry is going stable soon Understanding all of Python, through its builtins FastAPI, Dask, and more Python goodies win best open source titles Notes From the Meeting On Python GIL Removal Between Python Core and Sam Gross Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/256
10/29/202159 minutes, 36 seconds
Episode Artwork

#255 Closember eve, the cure for Hacktoberfest?

Topics covered in this episode: Wrapping C++ with Cython tbump : bump software releases Closember by Matthias Bussonnier scikit learn goes 1.0 Using devpi as an offline PyPI cache PyPi command line Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/255
10/20/202146 minutes, 49 seconds
Episode Artwork

#254 Do Excel things, get notebook Python code with Mito

Topics covered in this episode: yaml, GH Actions, and Python 3.10 Beating C and Java, Python Becomes the #1 Most Popular Programming Language, Says TIOBE Newspaper3k: Article scraping & curation PEP 660, pip 21.3, flit 3.4 -> easy editable installs Mito - a JupterLab Extension - generates Python code while you work on your analysis troposphere Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/254
10/13/202131 minutes, 2 seconds
Episode Artwork

#253 A new Python for you, and for everyone!

Topics covered in this episode: awesome-htmx Python 3.10 is here !!!! Prospector (almost) All Python analysis tools together Rich Pandas DataFrames Union types, baby! Make your code darker - Improving Python code incrementally Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/253
10/7/202144 minutes, 57 seconds
Episode Artwork

#252 Jupyter is now a desktop app!

Topics covered in this episode: * Changing themes to DIY* SQLFluff JupyterLab Desktop Requests Cache pypi-rename Django 4 coming with Redis Adapter PEP 612 Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/252
9/29/202144 minutes, 25 seconds
Episode Artwork

#251 A 95% complete episode (wait for it)

Topics covered in this episode: auto-optional Making World-Class Docs Takes Effort Starship JMESPath pedalboard - audio effects library PEP 665 (and the journey so far) Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/251
9/22/202155 minutes, 33 seconds
Episode Artwork

#250 skorch your scikit-learn together with PyTorch

Topics covered in this episode: Exciting New Ways To Be Told That Your Python Code is Bad GitHub Readme Stats Nox Two tools for dealing with text MPIRE (MultiProcessing Is Really Easy) skorch Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/250
9/15/202141 minutes, 52 seconds
Episode Artwork

#249 All of Linux as a Python API

Topics covered in this episode: Fickling Python Project-Local Virtualenv Management Testcontainers jc What is Python's Ellipsis Object? PyTorch Forecasting Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/249
9/9/202137 minutes, 12 seconds
Episode Artwork

#248 while True: stand up, sit down

Topics covered in this episode: Why I use attrs instead of pydantic mclfy * Textual and* boilerplate removal xdoctest Automate the standing desk with python Hypermodern Python Cookiecutter Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/248
9/2/202152 minutes, 9 seconds
Episode Artwork

#247 Do you dare to press "."?

Topics covered in this episode: Keep your computer awake during long processing How to write a great Stack Overflow question Github.dev - press ‘.’ to edit code in any GitHub repo Log analyzer (minus google analytics) KMK: Clackety Keyboards Powered by Python SQLModel - use the same models for SQL and FastAPI Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/247
8/26/202146 minutes, 12 seconds
Episode Artwork

#246 Love your crashes, use Rich to beautify tracebacks

Topics covered in this episode: mktestdocs Redis powered queues (QR3) 25 Pandas Functions You Didn’t Know Existed FastAPI and Rich Tracebacks in Development Dev in Residence Dagster Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/246
8/11/202146 minutes, 19 seconds
Episode Artwork

#245 Fire up your Python time machine (and test some code)

Topics covered in this episode: State of the community (via Jet Brains) Cornell - record & replay mock server pyinstrument Python 3.10 is now in Release Candidate phase. RC1 just released. Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/245
8/4/202141 minutes, 56 seconds
Episode Artwork

#244 vendorizing your Python podcast

Topics covered in this episode: pip Environmental Variables * Extra, Extra, 6x Extra, hear all about it* Building and testing Python with GitHub Actions python-vendorize Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/244
7/30/202134 minutes, 43 seconds
Episode Artwork

#243 Django unicorns and multi-region PostgreSQL

Topics covered in this episode: MongoDB 5 Python 3.11: Enhanced error locations in tracebacks fly.io multi-region PostgreSQL and last mile Redis django-unicorn Blue: The somewhat less uncompromising code formatter than black Organize and Index Your Screenshots (OCR) on macOS Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/243
7/21/202142 minutes, 19 seconds
Episode Artwork

#242 from lib import * but less

Topics covered in this episode: just Strong Typing testbook auto-all Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/242
7/15/202139 minutes, 18 seconds
Episode Artwork

#241 f-yes we want some f-string tricks!

Topics covered in this episode: Autosync all branches of a fork Measuring memory usage in Python: it’s tricky! Python f-strings can do more than you thought. f'{val=}', f'{val!r}', f'{dt:%Y-%m-%d}' 10 Tips and Tools You Can Adopt in 15 minutes or Less To Level Up Your Dev Productivity How to Start a Production-Ready Django Project Bunch Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/241
7/7/202139 minutes, 53 seconds
Episode Artwork

#240 This is GitHub, your pilot speaking...

Topics covered in this episode: Subclassing in Python Redux * Extra, Extra, Extra7, Hear all about it!** klib Don’t forget about functools GitHub Copilot Kats Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/240
7/2/202151 minutes, 58 seconds
Episode Artwork

#239 No module named pythonbytes

Topics covered in this episode: ormar: an async mini ORM for Python, with support for Postgres, MySQL, and SQLite. No module named JupyterLite Lot of plots Monty, Mongo tinified. MongoDB implemented in Python Exhaustiveness Checking with Mypy Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/239
6/23/202143 minutes, 9 seconds
Episode Artwork

#238 A cloud-based file system for Python and a new GUI!

Topics covered in this episode: Practical SQL for Data Analysis Git Blame in your Python Tracebacks fsspec: a unified file system library The need for slimmer containers PandasGUI: A GUI for analyzing Pandas DataFrames xarray: pandas-like API for labeled N-dimensional data Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/238
6/15/202147 minutes, 7 seconds
Episode Artwork

#237 Separate your SQL and Python, asynchronously with aiosql

Topics covered in this episode: Textual Pinning application dependencies with pip-tools compile Pynguin Python Advisory DB Function Overloading with singledispatch and multipledispatch Aiosql Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/237
6/9/202139 minutes, 41 seconds
Episode Artwork

#236 Fuzzy wuzzy wazzy fuzzy was faster

Topics covered in this episode: Using accessible colors, monolens & CMasher rapidfuzz: Rapid fuzzy string matching in Python and C++ Structlog to improve your logs xfail now works with pytest-subtests BaseSettings in Pydantic Take care of the documentation on your team will thank you later Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/236
6/2/202137 minutes, 24 seconds
Episode Artwork

#235 Flask 2.0 Articles and Reactions

Topics covered in this episode: Flask 2.0 articles and reactions Python 3.11 will be 2x faster? 3 Tools to Track and Visualize the Execution of your Python Code DuckDB + Pandas Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/235
5/26/202146 minutes, 5 seconds
Episode Artwork

#234 The Astronomy-filled edition with Dr. Becky

Topics covered in this episode: Powering the Python Package Index in 2021 The Leuven Star Atlas TI-84 Plus CE Python graphing calculator Python Package CI/CD with GitHub Actions SpaceX is using Python for prototyping their Starlink satellite software : A beginner’s guide to working with astronomical data Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/234
5/19/202149 minutes, 36 seconds
Episode Artwork

#233 RaaS: Readme as a Service

Topics covered in this episode: readme.so Wafer-scale Python datefinder and dateutil Cinder - Instagram's performance oriented fork of CPython PyCon US 2021 Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/233
5/12/202150 minutes, 58 seconds
Episode Artwork

#232 PyPI in a box and a revolutionary keyboard

Topics covered in this episode: Sphinx Themes Gallery update Mongita - Like SQLite but for MongoDB World Plone Day 2021 - Over 50 Videos from 16 Countries The social contract of open source: view every commit as a gift PyPI in a box Film simulations from scratch using Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/232
5/5/202138 minutes, 16 seconds
Episode Artwork

#231 Go Python, Go!

Topics covered in this episode: For-Else: A Weird but Useful Feature in Python Tortoise ORM Faster Python with Go Shared objects Learn by reading code: Python standard library design decisions explained (for advanced beginners) Gradio: Create UIs for prototyping your machine learning model in 3 minutes Use basketball stats to optimize game play with Visual Studio Code Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/231
4/28/202144 minutes, 13 seconds
Episode Artwork

#230 PyMars? Yes! FLoC? No!

Topics covered in this episode: calmcode.io Natural sort (aka natsort) Python controlling a helicopter on Mars. Pydantic, FastAPI, Typer will all run on 3.10, 3.11, and into the future * Extra, Extra, Extra, Extra hear all about it* Build Python books with Jupyter-Book Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/230
4/21/202145 minutes, 30 seconds
Episode Artwork

#229 Has one of your dependencies died?

Topics covered in this episode: Coverage.py (5.6b1) and third-party code So you want your own PaaS? Piku! Web3.py Deadpendency All The Important Features and Changes in Python 3.10 freeCodeCamp’s Python Curriculum Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/229
4/15/202142 minutes, 55 seconds
Episode Artwork

#228 Supreme Court decides API copyright battle

Topics covered in this episode: How to make an awesome Python package in 2021 Kubestriker wasmtime Depend-a-lot-bot Supreme Court sides with Google in API copyright battle with Oracle RedisAI Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/228
4/7/202143 minutes, 34 seconds
Episode Artwork

#227 No more awaiting, async comes to SQLAlchemy

Topics covered in this episode: Number One, that's "retract plank," not "remove plank." SQLAlchemy 1.4.0 Released django-tenants pre-commit ci Snyk (Python) Package Advisor PyWebIO Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/227
3/31/202133 minutes, 8 seconds
Episode Artwork

#226 Teaching Python podcast on the podcast!

Topics covered in this episode: DataClass vs NamedTuple vs Object: A Battle of Performance in Python Can My Water Cooled Raspberry Pi Cluster Beat My MacBook? There is an app for that! New packaging security funding & NYU * Extra x8, hear all about it* Using Development Containers with VS Code for Students Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/226
3/25/202146 minutes, 3 seconds
Episode Artwork

#225 SELECT Pydantic FROM MongoDB

Topics covered in this episode: Raspberry Pi Pico New MongoDB ODM: Beanie Sourcery Neomodel Conference radar Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/225
3/17/202139 minutes, 18 seconds
Episode Artwork

#224 Join us on a Python adventure back to 1977

Topics covered in this episode: AWSimple coverage and installed packages Finding Mona Lisa in the Game of Life with JAX Python Package Index nukes 3,653 malicious libraries uploaded soon after security shortcoming highlighted python-adventure Exciting New Features in Django 3.2 Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/224
3/10/202137 minutes, 58 seconds
Episode Artwork

#223 Beware: A ninja is shadowing Sebastian from FastAPI

Topics covered in this episode: Python Developers Survey 2020 Results Django Ninja - Fast Django REST Framework Pydantic 1.8 Google, Microsoft back Python and Rust programming languages Semantic Versioning Will Not Save You OpenAPI 3.1.0 Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/223
3/3/202150 minutes, 48 seconds
Episode Artwork

#222 Autocomplete with type annotations for AWS and boto3

Topics covered in this episode: boto type annotations How to have your code reviewer appreciate you REPODASH - Quality Metrics for Github repositories * Extra, extra, extra, extra, hear all about it* testcontainers-python The Python Ecosystem is relentlessly improving price-performance every day Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/222
2/24/202138 minutes, 21 seconds
Episode Artwork

#221 Pattern matching and accepting change in Python with Brett Cannon

Topics covered in this episode: Keeping up with Rich 12 requests per second Python Launcher for Unix reaches RC (probably 😉) Build a text editor with Python and curses Pattern matching and accepting change in Python A Quick Intro to Structural Pattern Matching in Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/221
2/19/202159 minutes, 5 seconds
Episode Artwork

#220 What, why, and where of friendly errors in Python

Topics covered in this episode: We Downloaded 10,000,000 Jupyter Notebooks From Github – This Is What We Learned pytest-pythonpath Thinking in Pandas Quickle what(), why(), where(), explain(), more() from friendly-traceback console Bandit Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/220
2/11/202147 minutes, 27 seconds
Episode Artwork

#219 HTMX: Dynamic and live HTML without JavaScript

Topics covered in this episode: Do you really need a virtualenv? Copier - like cookiecutter * Pandarallel - run pandas apply in parallel!* Stop Using Print to Debug in Python. Use icecream Instead HTMX: Dynamic and live HTML without JavaScript * PyLDAvis - Interactive Topic Model Visualisation* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/219
2/3/202139 minutes, 12 seconds
Episode Artwork

#218 Keyboards for developers, Python, and some history

Topics covered in this episode: Constant Folding in Python Update All Packages With pip-review Quantum Mechanical Keyboard Firmware Reinventing the Python Logo Private PyPI with Serverless Computing Beyond the Basic Stuff w/Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/218
1/27/202143 minutes, 34 seconds
Episode Artwork

#217 Use your cloud SSD for fast, cross-process caching

Topics covered in this episode: diskcache TOML is 1.0.0 now. * pyqtgraph* Parler + Python = Insurrection in public Best-of Web Development with Python * Assorted* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/217
1/19/202138 minutes, 38 seconds
Episode Artwork

#216 Container: Sort thyself!

Topics covered in this episode: pip search. Just don’t. QPython - Scripting for Android with Python Thesis: Deep Learning assistant for designers/engineers sortedcontainers Łukasz Langa Typed Twitter Thread Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/216
1/13/202135 minutes, 33 seconds
Episode Artwork

#215 A Visual Introduction to NumPy

Topics covered in this episode: 5 ways I use code as an astrophysicist A Visual Intro to NumPy and Data Representation Qt 6 release (including PySide2) Is your GC hyper active? Tame it! Top 10 Python libraries of 2020 Adoption of pyproject.toml — why is this so darned controversial? Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/215
1/6/202143 minutes, 25 seconds
Episode Artwork

#214 Python year in review (2020 edition)

See the full show notes for this episode on the website at pythonbytes.fm/214
12/28/20201 hour, 10 minutes, 28 seconds
Episode Artwork

#213 Uh oh, Vulcans have infiltrated Flask

Topics covered in this episode: Django Ledger Project Flask-Meld: simple JavaScript interactive features without all of the JavaScript. Bitwise operators in Python (RealPython) Why should you use an ORM (Object Relational Mapper)? sqlite-utils: a Python library and CLI tool for building SQLite databases Online conferences are not working for me. But this was a good talk, Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/213
12/23/202045 minutes
Episode Artwork

#212 SQLite as a file format (like docx)

Topics covered in this episode: pytest 6.2 is out SQLite as a file format (like docx) A Day in Code: Python – A picture book written in code PythonLabs is now hosted by Azure. and “Yes, Barry, there is a PythonLabs” * Extra, extra, extra, extra, extra, extra, hear all about it* OpenMV Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/212
12/16/202036 minutes, 16 seconds
Episode Artwork

#211 Will a black hole devour this episode?

Topics covered in this episode: Introducing FARM Stack - FastAPI, React, and MongoDB py-applescript airspeed velocity visidata Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/211
12/7/202044 minutes, 32 seconds
Episode Artwork

#210 Analyzing Kickstarter Campaigns with Python

Topics covered in this episode: Analyzing Kickstarter Campaigns with Python Data Science Tools GPU Accelerated Python for Machine Learning on Cross-Vendor Graphics Cards Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/210
12/3/202031 minutes, 8 seconds
Episode Artwork

#209 JITing Python with .NET, no irons in sight

Topics covered in this episode: Running Python on .NET 5 PEP 621 -- Storing project metadata in pyproject.toml GitHub revamps copyright takedown policy after restoring YouTube-dl Install & Configure MongoDB on the Raspberry Pi * Extra! extra! extra!, hear all about it!* A Python driven AI Stylist Inspired by Social Media Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/209
11/27/202033 minutes, 13 seconds
Episode Artwork

#208 Dependencies out of control? Just pip chill.

Topics covered in this episode: pip-chill - Make requirements with only the packages you need Windows update broke NumPy Build Plugins with Pluggy LINQ in Python Klio: a framework for processing audio files or any binary files, at large scale Collapsing code cells in Jupyter Notebooks Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/208
11/19/202030 minutes, 6 seconds
Episode Artwork

#207 FastAPI as a web platform (not just APIs)

Topics covered in this episode: fastapi-chameleon (and fastapi-jinja) Django REST API in a single file, without using DRF 2020 StackOverflow survey results A Visual Guide to Regular Expression Taking credit Raspberry Pi 400 Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/207
11/13/202033 minutes, 27 seconds
Episode Artwork

#206 Python dropping old operating systems is normal!

Topics covered in this episode: Making Enums (as always, arguably) more Pythonic Python 3.10 will be up to 10% faster Python 3.9 and no more Windows 7 Writing Robust Bash Shell Scripts Ideas for 5x faster CPython CPython core developer sprints Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/206
11/8/202042 minutes, 56 seconds
Episode Artwork

#205 This is going to be a little bit awkward

Topics covered in this episode: Awkward arrays Ordered dict surprises jupyter lab autocomplete and more Open Source Tools & Data for Music Source Separation Pass by Reference in Python: Background and Best Practices Visualizing Git Concepts Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/205
10/31/202034 minutes, 18 seconds
Episode Artwork

#204 Take the PSF survey and Will & Carlton drop by

Topics covered in this episode: nbQA: Quality Assurance for Jupyter Notebooks The PSF yearly survey is out, go take it now! From Prototype to Production in Django Deployment: Getting your app online All Contributors MovingPandas Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/204
10/23/202040 minutes, 2 seconds
Episode Artwork

#203 Scripting a masterpiece for Python web automation

Topics covered in this episode: Introducing DigitalOcean App Platform Announcing Playwright for Python Asynchronously Opening and Closing Files in asyncio Excel: Why using Microsoft's tool caused Covid-19 results to be lost locust.io Fixing Hacktoberfest Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/203
10/16/202040 minutes, 45 seconds
Episode Artwork

#202 Jupyter is back in black!

Topics covered in this episode: New in Python 3.9 jupyter-black Understanding and preventing DoS in web applications bbox-visualizer How to NEVER use lambdas. Uncommon Contributions: Making impact without touching the core of a library Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/202
10/9/202033 minutes, 24 seconds
Episode Artwork

#201 Understand git by rebuilding it in Python

Topics covered in this episode: Under the hood of calling C/C++ from Python * ugit: DIY Git in Python* Things I Learned to Become a Senior Software Engineer Profiling Django Views Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/201
10/2/202040 minutes, 26 seconds
Episode Artwork

#200 No dog-piling please (it's episode 200!)

Topics covered in this episode: How to be helpful online * blackcellmagic* Test smarter, not harder US: The Greatest Package in the World Think Like A Coder Costs of running a Python web app for 55k monthly users Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/200
9/25/202032 minutes, 19 seconds
Episode Artwork

#199 Big news for a very small Python runtime

Topics covered in this episode: micropython updated respx: A utility for mocking out the Python HTTPX library GetPy - A Vectorized Python Dict/Set isort and black now play nice together easily Scientists rename human genes to stop Microsoft Excel from misreading them as dates Never Run ‘python’ In Your Downloads Folder Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/199
9/17/202029 minutes, 28 seconds
Episode Artwork

#198 There's a beaver in your database and Anna-Lena drops by

Topics covered in this episode: Easily create Python scripts using argparse DBeaver Database UI Tool Anna- pdp++ debugger Markdown toys Python Malware and obfuscation Anna- attrs package Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/198
9/11/202034 minutes, 42 seconds
Episode Artwork

#197 Structured concurrency in Python

Topics covered in this episode: Structured concurrency in Python with AnyIO The Consortium for Python Data API Standards Ask for Forgiveness or Look Before You Leap? myrepos A deep dive into the official Docker image for Python “Only in a Pandemic” section Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/197
9/5/202036 minutes, 8 seconds
Episode Artwork

#196 Version your SQL schemas with git + automatically migrate them

Topics covered in this episode: Surviving Django (if you care about databases) * Python Numbers and the Flyweight design pattern* What Are Python Wheels and Why Should You Care? * Pandas_Alive* How To Use the Python Map Function Version your SQL schemas with git + automatically migrate them Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/196
8/27/202031 minutes, 5 seconds
Episode Artwork

#195 Runtime type checking for Python type hints

Topics covered in this episode: watchdog Status code 418 pydantic’s new Validation decorator Building Python Extension Modules in Assembly easy property Non Blocking Assertion Failures with pytest-check Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/195
8/18/202033 minutes, 7 seconds
Episode Artwork

#194 Events and callbacks in the Python language!

Topics covered in this episode: An introduction to mutation testing in Python asynq redis: Beyond the Cache LittleTable pytest-timeout Events Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/194
8/10/202028 minutes, 30 seconds
Episode Artwork

#193 Break out the Django testing toolbox

Topics covered in this episode: * Start using pip install --use-feature=2020-resolver if you aren’t already* Profiling Python import statements Django Testing Toolbox Pandas-profiling Interfaces, Mixins and Building Powerful Custom Data Structures in Python Pickle’s 9 flaws Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/193
8/6/202034 minutes, 10 seconds
Episode Artwork

#192 Calculations by hand, but in the compter, with Handcalcs

Topics covered in this episode: Building a self-updating profile README for GitHub Handcalcs The (non-)return of the Python print statement FastAPI for Flask Users Tweet deleting with tweepy Clinging to memory: how Python function calls can increase your memory usage * No local variable at all* * Re-use the local variable* * Transfer object ownership* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/192
8/2/202030 minutes, 29 seconds
Episode Artwork

#191 Live from the Manning Python Conference

Topics covered in this episode: VS Code Device Simulator pytest 6.0.0rc1 What is the core of the Python programming language? Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/191
7/22/202052 minutes, 33 seconds
Episode Artwork

#190 You will now be notified if the Python zipper is broken

Topics covered in this episode: Python async frameworks - Beyond developer tribalism commitizen International PyCons go online (kind of) PEP 618 -- Add Optional Length-Checking To zip * timedelta and division?* Pylance released for Microsoft VS Code Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/190
7/16/202043 minutes, 34 seconds
Episode Artwork

#189 What does str.strip() do? Are you sure?

Topics covered in this episode: Improving Python exception chaining with raise-from Create and publish interactive reports in Python Pickle’s nine flaws PEP 602 -- Annual Release Cycle for Python More git Resources: PEP 616 -- String methods to remove prefixes and suffixes Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/189
7/9/202031 minutes, 57 seconds
Episode Artwork

#188 Will there be a "switch" in Python the language?

Topics covered in this episode: Making a trading bot asynchronous using Python’s “unsync” library Fruit salad scrum estimation scale Math to Code PEP 622 -- Structural Pattern Matching CodeArtifact from AWS invoke Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/188
7/3/202031 minutes, 30 seconds
Episode Artwork

#187 Ready to find out if you're git famous?

Topics covered in this episode: LEGO Mindstorms Robot Inventor supports Python Step-by-step guide to contributing on GitHub sneklang Oh sh*t git Why I don't like SemVer anymore git fame Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/187
6/26/202029 minutes, 25 seconds
Episode Artwork

#186 The treebeard will guard your notebook

Topics covered in this episode: sidetable - Create Simple Summary Tables in Pandas tabulate treebeard - ci for notebooks Upcoming features in venv/virtualenv PEP 582 now! awesome pyproject.toml projects Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/186
6/18/202024 minutes, 51 seconds
Episode Artwork

#185 This code is snooping on you (a good thing!)

Topics covered in this episode: MyST - Markedly Structured Text direnv Convert a Python Enum to JSON Pendulum: Python datetimes made easy PySnooper - Never use print for debugging again Fil: A New Python Memory Profiler for Data Scientists and Scientists Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/185
6/12/202024 minutes, 39 seconds
Episode Artwork

#184 Too many ways to wait with await?

Topics covered in this episode: Waiting in asyncio virtualenv is faster than venv Latency in Asynchronous Python How to Deprecate a PyPI Package Another progress bar library: Enlighten Code Ocean Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/184
6/5/202036 minutes, 2 seconds
Episode Artwork

#183 Need a beautiful database editor? Look to the Bees!

Topics covered in this episode: fastpages: An easy to use blogging platform, with enhanced support for Jupyter Notebooks. BeeKeeper Studio Open Source SQL Editor and Database Manager 2nd Annual Python Web Conference Mimesis - Fake Data Generator Schemathesis Finding secrets by decompiling Python bytecode in public repositories Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/183
5/29/202031 minutes, 51 seconds
Episode Artwork

#182 PSF Survey is out!

Topics covered in this episode: PSF / JetBrains Survey Hypermodern Python Open AI Jukebox The Curious Case of Python's Context Manager nbstripout Write ups for The 2020 Python Language Summit Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/182
5/19/202025 minutes, 52 seconds
Episode Artwork

#181 It's time to interrogate your Python code

Topics covered in this episode: interrogate: checks your code base for missing docstrings Streamlit: Turn Python Scripts into Beautiful ML Tools Why You Should Document Your Tests HoloViz project A cool new progress bar for python Awesome Panel Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/181
5/14/202031 minutes, 2 seconds
Episode Artwork

#180 Transactional file IO with Python and safer

Topics covered in this episode: Ubuntu 20.04 is out! Working with warnings in Python Safer file writer codespell Austin profiler Numbers in Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/180
5/8/202032 minutes, 58 seconds
Episode Artwork

#179 Guido van Rossum drops in on Python Bytes

Topics covered in this episode: New governance model for the Django project missingno Announcements from the language summit. Codes of Conduct and Enforcement Myths about Indentation Parsers and LibCST Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/179
4/30/202044 minutes, 54 seconds
Episode Artwork

#178 Build a PyPI package from a Jupyter notebook

Topics covered in this episode: Pandas-Bokeh Stop naming your python modules “utils” From 1 to 10,000 test cases in under an hour: A beginner's guide to property-based testing Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/178
4/22/202038 minutes, 18 seconds
Episode Artwork

#177 Coding is 90% Google searching or is it?

Topics covered in this episode: Announcing a new Sponsorship Program for Python Packaging energy-usage Coding is 90% Google Searching — A Brief Note for Beginners Using WSL to Build a Python Development Environment on Windows A Pythonic Guide to SOLID Design Principles Types for Python HTTP APIs: An Instagram Story Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/177
4/16/202041 minutes, 43 seconds
Episode Artwork

#176 How python implements super long integers

Topics covered in this episode: * Quick chat about COVID 19* What the heck is pyproject.toml? Awesome Python Bytes Awesome List Publishing package distribution releases using GitHub Actions CI/CD workflows Rich text for terminals psutil: Cross-platform lib for process and system monitoring in Python How python implements super long integers Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/176
4/7/202029 minutes, 32 seconds
Episode Artwork

#175 Python string theory with superstring.py

Topics covered in this episode: * Quick chat about COVID 19.* Dictionary Merging and Updating in Python 3.9 superstring New pip resolver to roll out this year Why does all() return True if the iterable is empty? pytest-monitor Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/175
4/1/202032 minutes, 43 seconds
Episode Artwork

#174 Happy developers use Python 3

Topics covered in this episode: * Quick chat about COVID 19.* Documentation as a way to build Community The Django Speed Handbook: making a Django app faster dacite: simplifies creation of data classes from dictionaries How we retired Python 2 and improved developer happiness The Troublesome Active Record Pattern Types at the edges in Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/174
3/26/202047 minutes, 44 seconds
Episode Artwork

#173 Your test deserves a fluent flavor

Topics covered in this episode: Advanced usage of Python requests - timeouts, retries, hooks Fluent Assertions Python in GitHub Actions VCR.py 8 Coolest Python Programming Language Features Bento Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/173
3/19/202028 minutes, 38 seconds
Episode Artwork

#172 Floating high above the web with Helium

Topics covered in this episode: Python in Production Hynek * How to cheat at unit tests with pytest and Black* Goodbye Microservices: From 100s of problem children to 1 superstar Helium makes Selenium-Python 50% easier uncertainties package Personalize your python prompt Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/172
3/13/202032 minutes, 54 seconds
Episode Artwork

#171 Chilled out Python decorators with PEP 614

Topics covered in this episode: PEP 614 – Relaxing Grammar Restrictions on Decorators Create a macOS Menu Bar App with Python (Pomodoro Timer) Conditional Coverage Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/171
3/5/202034 minutes, 34 seconds
Episode Artwork

#170 Visualize this: Visualizing Python's visualization ecosystem

Topics covered in this episode: Python visualization graph Awesome Zen of Python Jupytext Tour of Python Itertools justpy.io Modularity for Maintenance Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/170
2/25/202029 minutes, 5 seconds
Episode Artwork

#169 Jupyter Notebooks natively on your iPad

Topics covered in this episode: D-Tale Carnets BeeWare Podium pytest-mock-resources How James Bennet is testing in 2020 Python and PyQt: Building a GUI Desktop Calculator Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/169
2/19/202025 minutes, 44 seconds
Episode Artwork

#168 Race your donkey car with Python

Topics covered in this episode: donkeycar RIP Pipenv: Tried Too Hard. Do what you need with pip-tools. str.casefold() Virtualenv Property-based tests for the Python standard library (and builtins) PyCon US Tutorial Schedule & Registration Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/168
2/11/202033 minutes, 34 seconds
Episode Artwork

#167 Cheating at Kaggle and uWSGI in prod

Topics covered in this episode: clize: Turn functions into command-line interfaces How to cheat at Kaggle AI contests * Configuring uWSGI for Production Deployment* * Thinc: A functional take on deep learning, compatible with Tensorflow, PyTorch, and MXNet* * pandas-vet* * NumPy beginner documentation* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/167
2/3/202028 minutes, 30 seconds
Episode Artwork

#166 Misunderstanding software clocks and time

Topics covered in this episode: Amazon is now offering quantum computing as a service A quick-and-dirty guide on how to install packages for Python Say No to the no code movement What I learned going from prison to Python A real QUICK → Qt5 based gUI generator for ClicK Falsehoods programmers believe about time Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/166
1/27/202028 minutes, 21 seconds
Episode Artwork

#165 Ranges as dictionary keys - oh my!

Topics covered in this episode: iterators, generators, coroutines requests-toolbelt Pandas Validation qtpy pylightxl python-ranges Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/165
1/21/202028 minutes, 45 seconds
Episode Artwork

#164 Use type hints to build your next CLI app

Topics covered in this episode: * Data driven journalism via* cjworkbench remi: A Platform-independent Python GUI library for your applications. Typer Effectively using Matplotlib Django Simple Task PyPI Stats at pypistats.org Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/164
1/16/202029 minutes, 2 seconds
Episode Artwork

#163 Meditations on the Zen of Python

Topics covered in this episode: Meditations on the Zen of Python * nginx raided by Russian police* I'm not feeling the async pressure codetiming from Real Python Making Python Programs Blazingly Fast LocalStack Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/163
1/9/202023 minutes, 49 seconds
Episode Artwork

#162 Retrofitting async and await into Django

See the full show notes for this episode on the website at pythonbytes.fm/162
1/3/202023 minutes, 9 seconds
Episode Artwork

#161 Sloppy Python can mean fast answers!

Topics covered in this episode: Larry Hastings - Solve Your Problem With Sloppy Python - PyCon 2018 Introduction to ASGI: Emergence of an Async Python Web Ecosystem Python Insights Assembly Building a Standalone GPS Logger with CircuitPython using @Adafruit and particle hardware 10 reasons python is good to learn Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/161
12/18/201930 minutes, 15 seconds
Episode Artwork

#160 Your JSON shall be streamed

Topics covered in this episode: Type Hints for Busy Python Programmers auto-py-to-exe How to document Python code with Sphinx Snek is a cross-platform PowerShell module for integrating with Python How to use Pandas to access databases ijson — Iterative JSON parser with a standard Python iterator interface Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/160
12/12/201928 minutes, 43 seconds
Episode Artwork

#159 Brian's PR is merged, the src will flow

Topics covered in this episode: Final type flit 2 Pint 8 great pytest plugins * 11 new web frameworks* Raise Better Exceptions in Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/159
12/3/201933 minutes, 18 seconds
Episode Artwork

#158 There's a bounty on your open-source bugs!

Topics covered in this episode: GitHub launches 'Security Lab' to help secure open source ecosystem pybit.es now has some test challenges pyhttptest - a command-line tool for HTTP tests over RESTful APIs xarray Animated SVG Terminals Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/158
11/27/201926 minutes, 5 seconds
Episode Artwork

#157 Oh hai Pandas, hold my hand?

Topics covered in this episode: pydantic Coverage.py 5.0 beta 1 adds context support * PSF is seeking developers for paid contract improving pip* dovpanda - Directions OVer PANDAs removestar pytest-quarantine : Save the list of failing tests, so that they can be automatically marked as expected failures on future test runs. Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/157
11/20/201923 minutes, 32 seconds
Episode Artwork

#156 All the programming LOLs

Topics covered in this episode: * Why You Should Use* python -m pip Visual Studio Online: Web-Based IDE & Collaborative Code Editor Black 19.10b0 Released — stable release coming soon Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/156
11/15/201928 minutes, 27 seconds
Episode Artwork

#155 Guido van Rossum retires

Topics covered in this episode: Guido retires SeleniumBase Reimplementing a Solaris command in Python gained 17x performance improvement from C 20 useful Python tips and tricks you should know * Complexity Waterfall* Plynth Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/155
11/6/201932 minutes, 6 seconds
Episode Artwork

#154 Code, frozen in carbon, on display for all

Topics covered in this episode: Lesser Known Coding Fonts Django Admin Handbook Your Guide to the CPython Source Code Six Django template tags not often used in tutorials Beautiful code snippets with Carbon Researchers find bug in Python script may have affected hundreds of studies Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/154
10/29/201932 minutes, 19 seconds
Episode Artwork

#153 Auto format my Python please!

Topics covered in this episode: Building a Python C Extension Module What’s New in Python 3.8 - docs.python.org UK National Cyber Security Centre (NCSC) is warning developers of the risks of sticking with Python 2.7, particularly for library writers Pythonic News Deep Learning Workstations, Servers, Laptops, and GPU Cloud * Auto formatters for Python* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/153
10/23/201926 minutes, 57 seconds
Episode Artwork

#152 You have 35 million lines of Python 2, now what?

Topics covered in this episode: JPMorgan’s Athena Has 35 Million Lines of Python 2 Code, and Won’t Be Updated to Python 3 in Time organize PEP 589 – TypedDict: Type Hints for Dictionaries With a Fixed Set of Keys gazpacho How pip install Works daily pandas tricks Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/152
10/15/201926 minutes, 1 second
Episode Artwork

#151 Certified! It works on my machine

Topics covered in this episode: Python alternative to Docker How to support open-source software and stay sane MATLAB vs Python: Why and How to Make the Switch Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/151
10/10/201925 minutes, 47 seconds
Episode Artwork

#150 Winning the Python software interview

Topics covered in this episode: How to Stand Out in a Python Coding Interview The Python Software Foundation has updated its Code of Conduct The Interview Study Guide For Software Engineers re-assert : “show where your regex match assertion failed” awesome-python-typing Developer Advocacy: Frequently Asked Questions Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/150
10/5/201923 minutes, 57 seconds
Episode Artwork

#149 Python's small object allocator and other memory features

Topics covered in this episode: Dropbox: Our journey to type checking 4 million lines of Python Setting Up a Flask Application in Visual Studio Code Multiprocessing vs. Threading in Python: What Every Data Scientist Needs to Know ORM - async ORM Getting Started with APIs Memory management in Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/149
9/25/201937 minutes, 18 seconds
Episode Artwork

#148 The ASGI revolution is upon us!

Topics covered in this episode: Annual Release Cycle for Python - PEP 602 awesome-asgi Asynchronous Django Sunsetting Python 2 Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/148
9/18/201924 minutes, 3 seconds
Episode Artwork

#147 Mocking out AWS APIs

Topics covered in this episode: rapidtables Quick and dirty mock service with Starlette Mocking out AWS APIs Single Responsibility Principle in Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/147
9/11/201925 minutes, 19 seconds
Episode Artwork

#146 Slay the dragon, learn the Python

Topics covered in this episode: Positional-only arguments in Python django-stubs CodeCombat Four Use Cases for When to Use Celery in a Flask Application pytest-steps docassemble Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/146
9/8/201923 minutes, 35 seconds
Episode Artwork

#145 The Python 3 “Y2K” problem

Topics covered in this episode: friendly-traceback * Pandas Users Survey* * python3 “Y2K” problem (python3.10 / python4.0)* pypi research * DaPy* python-remote-pdb Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/145
8/31/201934 minutes, 24 seconds
Episode Artwork

#144 Are you mocking me? It won't work!

Topics covered in this episode: Why your mock doesn’t work The nonlocal statement in Python twitter.com/brettsky/status/1163860672762933249 pre-commit now has a quick start guide Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/144
8/23/201925 minutes, 46 seconds
Episode Artwork

#143 Spike the robot, powered by Python!

Topics covered in this episode: Keynote: Python 2020 - Łukasz Langa - PyLondinium19 My oh my, flake8-mypy and pytest-mypy Python 3 at Mozilla Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/143
8/14/201933 minutes, 19 seconds
Episode Artwork

#142 There's a bandit in the Python space

Topics covered in this episode: Writing sustainable Python scripts Static Analysis and Bandit jupyter-black Report Generation workflow with papermill, jupyter, rclone, nbconvert, … How — and why — you should use Python Generators Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/142
8/6/201930 minutes, 31 seconds
Episode Artwork

#141 Debugging with f-strings coming in Python 3.8

Topics covered in this episode: Debugging with f-strings in Python 3.8 Am I "real" software developer yet? Debugging with local variables and snoop New home for Humans The Backwards Commercial License Switching Python Parsers? Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/141
7/29/201930 minutes, 45 seconds
Episode Artwork

#140 Becoming a 10x Developer (sorta)

Topics covered in this episode: Becoming a 10x Developer: 10 ways to be a better teammate quasar & vue.py Regular Expressions 101 python-diskcache The Python Help System Python Architecture Graphs Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/140
7/23/201924 minutes, 39 seconds
Episode Artwork

#139 f"Yes!" for the f-strings

Topics covered in this episode: Simplify Your Python Developer Environment New fast.ai course: A Code-First Introduction to Natural Language Processing Cloning the human voice Ab(using) pyproject.toml and stuffing pytest.ini and mypy.ini content into it Polyaxon Flynt for f-strings Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/139
7/18/201938 minutes, 42 seconds
Episode Artwork

#138 Will PyOxidizer weld shut one of Python's major gaps?

Topics covered in this episode: flake8-comprehensions PyOxidizer (again) Using changedir to avoid the need for src WebRTC and ORTC implementation for Python using asyncio Apprise - Push Notifications that work with just about every platform! Websauna web framework Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/138
7/8/201929 minutes, 39 seconds
Episode Artwork

#137 Advanced Python testing and big-time diffs

Topics covered in this episode: Comparing the Same Project in Rust, Haskell, C++, Python, Scala and OCaml MongoDB 4.2 Deep Difference and search of any Python object/data Advanced Python Testing Understanding Python's del Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/137
7/2/201928 minutes, 5 seconds
Episode Artwork

#136 A Python kernel rather than cleaning the batteries?

Topics covered in this episode: Voilà! Toward a “Kernel Python” Use _main_.py The CPython Bytecode Compiler is Dumb You can play with EdgeDB now, maybe 16 Python libraries that helped a healthcare startup grow Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/136
6/25/201930 minutes, 27 seconds
Episode Artwork

#135 macOS deprecates Python 2, will stop shipping it (eventually)

Topics covered in this episode: Why do Python lists let you += a tuple, when you can’t + a tuple? macOS deprecates Python 2, will stop shipping it (eventually) Pythonic Ways to Use Dictionaries Things you are probably not using in Python 3 But Should Have a time machine? C++ would get the Python 2 → 3 treatment too Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/135
6/20/201932 minutes, 24 seconds
Episode Artwork

#134 Python proves Mercury is the closest planet to Earth

Topics covered in this episode: Three scientists publish a paper proving that Mercury, not Venus, is the closest planet to Earth. using Python Github semantics flake8-black Python Preview for VS Code Create and Publish a Python Package with Poetry Pointers in Python: What's the Point? Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/134
6/12/201921 minutes, 10 seconds
Episode Artwork

#133 Github sponsors - The model open source has been waiting for?

Topics covered in this episode: Python built-ins worth learning Github sponsors and match Build a REST API in 30 minutes with Django REST Framework Dependabot has been acquired by GitHub spoof “New features planned for Python 4.0” BlackSheep web framework Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/133
6/5/201927 minutes, 29 seconds
Episode Artwork

#132 Algorithms as objects

Topics covered in this episode: History of CircuitPython Algorithms as objects pico-pytest An Introduction to Cython, the Secret Python Extension with Superpowers Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/132
5/30/201930 minutes, 19 seconds
Episode Artwork

#131 Python 3 has issues (over on GitHub)

Topics covered in this episode: * PEP 581 (Using GitHub issues for CPython) is accepted* Things you’re probably not using in Python 3 – but should The Python Arcade Library Teaching a kid to code with Pygame Zero Follow up on GIL / PEP 554 Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/131
5/21/201927 minutes, 15 seconds
Episode Artwork

#130 Python.exe now shipping with Windows 10

Topics covered in this episode: pgcli Papermill Python Language Summit Python in Windows 10 Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/130
5/14/201924 minutes, 7 seconds
Episode Artwork

#129 Maintaining a Python Project when it’s not your job

Topics covered in this episode: * Maintaining a Python Project when it’s not your job* * Python in 1994* * Textblob* Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/129
5/6/201916 minutes, 40 seconds
Episode Artwork

#128 Will the GIL be obsolete with PEP 554?

Topics covered in this episode: Solving Algorithmic Problems in Python with pytest * DepHell -- project management for Python* Dask Animations with Matplotlib PEP 554 -- Multiple Interpreters in the Stdlib Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/128
5/2/201923 minutes, 1 second
Episode Artwork

#127 That Python code is on fire!

Topics covered in this episode: inline_python (for rust) * Requests3: Under Way!* * 🔥 Pyflame: *A Ptracing Profiler For Python * flit + src* cheat.sh Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/127
4/25/201924 minutes, 55 seconds
Episode Artwork

#126 WebAssembly comes to Python

Topics covered in this episode: Python Used to Take Photo of Black Hole Wasmer - Python Library for executing WebAssembly binaries Cooked Input JetBrains and PyCharm officially collaborating with Anaconda Building a Serverless IoT Solution with Python Azure Functions and SignalR multiprocessing.shared_memory — Provides shared memory for direct access across processes Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/126
4/19/201930 minutes, 10 seconds
Episode Artwork

#125 Will you conquer the deadlock empire?

Topics covered in this episode: My How and Why: pyproject.toml & the 'src' Project Structure The Deadlock Empire: Slay dragons, master concurrency! Cog 3.0 StackOverflow 2019 Developer Survey Results Cuv’ner “A commanding view of your test-coverage" Mobile apps launched Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/125
4/13/201931 minutes, 46 seconds
Episode Artwork

#124 This is not the None you're looking for

Topics covered in this episode: [play:0:29] [pytest 4.4.0](https://docs.pytest.org/en/latest/changelog.html#pytest-4-4-0-2019-03-29) [play:3:47] [requests-async](https://github.com/encode/requests-async) [play:7:10] Reasons why PyPI should not be a service [play:12:35]* Jupyter in the cloud* [play:16:57] Jupyter Notebook tutorials [play:19:28]* Unique sentinel values, identity checks, and when to use object() instead of None* Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/124
4/5/201927 minutes, 41 seconds
Episode Artwork

#123 Time to right the py-wrongs

Topics covered in this episode: [play:0:34] [Deconstructing xkcd.com/1987/](https://snarky.ca/deconstructing-xkcd-com-1987/) [play:3:12] [Python package as a CLI option](https://gehrcke.de/2014/02/distributing-a-python-command-line-application/) [play:10:29] Refactoring Python Applications for Simplicity [play:14:15] [FastAPI](https://fastapi.tiangolo.com/) [play:17:48] Bleach: stepping down as maintainer Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/123
3/29/201925 minutes, 31 seconds
Episode Artwork

#122 Give Me Back My Monolith

Topics covered in this episode: [play:0:55] Combining and separating dictionaries [play:3:02] [Why I Avoid Slack](https://matthewrocklin.com/blog/2019/02/28/slack-github) [play:7:57] [Hunting for Memory Leaks in Python applications](https://medium.com/zendesk-engineering/hunting-for-memory-leaks-in-python-applications-6824d0518774) [play:13:06] [Give Me Back My Monolith](http://www.craigkerstiens.com/2019/03/13/give-me-back-my-monolith/) [play:18:23] [Famous Laws Of Software Development](https://www.timsommer.be/famous-laws-of-software-development/) [play:20:54] [Beer Garden Plugins](https://beer-garden.io/) Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/122
3/22/201929 minutes, 6 seconds
Episode Artwork

#121 python2 becomes self-aware, enters fifth stage of grief

Topics covered in this episode: [play:0:40] [Futurize](https://python-future.org/automatic_conversion.html) and Auto-Futurize [play:3:42] [Tech blog writing live stream](https://www.youtube.com/watch?v=vtlaNShM_s0&feature=youtu.be) [play:8:50] [bullet: Beautiful Python Prompts Made Simple](https://github.com/Mckinsey666/bullet) [play:11:15] [Hosting private pip packages using Azure Artifacts](https://zerowithdot.com/private-pip-azure/) [play:13:15] [Async/await for wxPython](https://medium.com/@abulka/async-await-for-wxpython-c78c667e0872) Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/121
3/16/201923 minutes, 34 seconds
Episode Artwork

#120 AWS, MongoDB, and the Economic Realities of Open Source and more

Topics covered in this episode: [play:0:53] [The Ultimate Guide To Memorable Tech Talks](https://medium.com/@nnja/the-ultimate-guide-to-memorable-tech-talks-e7c350778d4b) [play:3:56] [Running Flask on Kubernetes](https://testdriven.io/blog/running-flask-on-kubernetes/?source=4320ef6a6395) [play:10:51] [Python server setup for macOS 🍎](https://github.com/zachvalenta/nginx-wsgi) [play:12:52] [Learn Enough Python to be Useful: argparse](https://towardsdatascience.com/learn-enough-python-to-be-useful-argparse-e482e1764e05) [play:14:56] [AWS, MongoDB, and the Economic Realities of Open Source](https://stratechery.com/2019/aws-mongodb-and-the-economic-realities-of-open-source/) Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/120
3/5/201925 minutes, 25 seconds
Episode Artwork

#119 Assorted files as Django ORM backends with Alkali

Topics covered in this episode: [play:0:52] [Incrementally migrating over one million lines of code from Python 2 to Python 3](https://blogs.dropbox.com/tech/2019/02/incrementally-migrating-over-one-million-lines-of-code-from-python-2-to-python-3/) [play:3:42] Network Automation Development with Python (for fun and for profit) [play:9:59] [Carnegie Mellon Launches Undergraduate Degree in Artificial Intelligence](https://www.cs.cmu.edu/news/carnegie-mellon-launches-undergraduate-degree-artificial-intelligence) [play:11:37] [asyncio + PyQt5/PySide2](https://github.com/gmarull/asyncqt) [play:13:02] [4 things I want to see in Python 4.0](https://hackernoon.com/4-things-i-want-to-see-in-python-4-0-85b853e86a88) Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/119
2/26/201922 minutes, 13 seconds
Episode Artwork

#118 Better Python executable management with pipx

Topics covered in this episode: [play:7:52] [Data science is different now](https://veekaybee.github.io/2019/02/13/data-science-is-different/) Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/118
2/22/201925 minutes, 54 seconds
Episode Artwork

#117 Is this the end of Python virtual environments?

See the full show notes for this episode on the website at pythonbytes.fm/117
2/14/201928 minutes, 20 seconds
Episode Artwork

#116 So you want Python in a 3D graphics engine?

Topics covered in this episode: [play:0:25] [Inside python dict — an explorable explanation](https://just-taking-a-ride.com/insidepythondict/chapter1.html) [play:2:37] Embed Python in Unreal Engine 4 [play:4:32]* Redirecting stdout with contextlib* [play:7:56] [Panda3D](https://www.panda3d.org/) [play:10:32] [Why PyPI Doesn't Know Your Projects Dependencies](https://dustingram.com/articles/2018/03/05/why-pypi-doesnt-know-dependencies/) [play:13:58]* PyGame series* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/116
2/6/201917 minutes, 56 seconds
Episode Artwork

#115 Dataclass CSV reader and Nina drops by

Topics covered in this episode: [play:1:03] [Great Expectations](https://great-expectations.readthedocs.io/en/latest/) [play:5:01] Using CircuitPython and MicroPython to write Python for wearable electronics and embedded platforms [play:11:58] [How to Rock Python Packaging with Poetry and Briefcase](https://dan.yeaw.me/posts/python-packaging-with-poetry-and-briefcase/) [play:14:59] [awesome-python-security](https://github.com/guardrailsio/awesome-python-security) 🕶🐍🔐, a collection of tools, techniques, and resources to make your Python more secure [play:18:20]* pydbg* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/115
2/2/201928 minutes, 58 seconds
Episode Artwork

#114 What should be in the Python standard library?

Topics covered in this episode: [play:0:37] [What should be in the Python standard library?](https://lwn.net/Articles/776239/) [play:9:00] [Data Science portal for Home Assistant launched](https://data.home-assistant.io/) [play:12:17] [What's the future of the pandas library?](https://www.dataschool.io/future-of-pandas/) [play:16:17] [PyOxidizer](https://github.com/indygreg/PyOxidizer) [play:19:31] [Working With Files in Python](https://realpython.com/working-with-files-in-python/) [play:22:06] [$ python == $ python3?](https://github.com/python/peps/pull/630) Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/114
1/26/201928 minutes, 33 seconds
Episode Artwork

#113 Python Lands on the Windows 10 App Store

Topics covered in this episode: [play:1:01] [Advent of Code 2018 Solutions](https://www.michaelfogleman.com/aoc18/) [play:2:37] [Python Lands on the Windows 10 App Store](https://www.thurrott.com/windows/windows-10/196830/python-lands-on-the-windows-10-app-store#) [play:7:06] [How I Built A Python Web Framework And Became An Open Source Maintainer](https://blog.florimondmanca.com/how-i-built-a-web-framework-and-became-an-open-source-maintainer) [play:11:46]* Python maintainability score via* Wily [play:13:03] A couple fun awesome lists [play:16:32] [fastlogging](https://brmmm3.github.io/posts/2019/01/08/fastlogging/) Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/113
1/18/201923 minutes, 22 seconds
Episode Artwork

#112 Don't use the greater than sign in programming

Topics covered in this episode: [play:0:56] [nbgrader](https://github.com/jupyter/nbgrader) [play:3:22]* profanity-check* [play:9:05]* Python Dependencies and IoC* [play:16:59] [A Gentle Introduction to Pandas](https://medium.com/@wbusaka/a-gentle-introduction-to-pandas-5ed17421a59d) [play:18:38] [Don't use the greater than sign in programming](http://llewellynfalco.blogspot.com/2016/02/dont-use-greater-than-sign-in.html) Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/112
1/11/201928 minutes, 47 seconds
Episode Artwork

#111 loguru: Python logging made simple

Topics covered in this episode: [play:0:46] [loguru:](https://github.com/Delgan/loguru) Python logging made (stupidly) simple [play:6:08] [Python gets a new governance model](https://mail.python.org/pipermail/python-committers/2018-December/006479.html) [play:12:16] [Why you should be using pathlib](https://treyhunner.com/2018/12/why-you-should-be-using-pathlib/) [play:16:00] [Altair](https://github.com/altair-viz/altair) and Altair Recipes [play:19:43] A couple fun pytest plugins [play:23:23] [Secure 🔒 headers and cookies for Python web frameworks](https://github.com/cakinney/secure.py) Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/111
1/5/201934 minutes, 16 seconds
Episode Artwork

#110 Python Year in Review 2018 Edition

See the full show notes for this episode on the website at pythonbytes.fm/110
12/26/201856 minutes, 54 seconds
Episode Artwork

#109 CPython byte code explorer

Topics covered in this episode: [play:1:01] [Python Descriptors Are Magical Creatures](https://pabloariasal.github.io/2018/11/25/python-descriptors/) [play:3:38] [Data Science Survey 2018 JetBrains](https://www.jetbrains.com/research/data-science-2018/) [play:8:04] [cache.py](https://github.com/bwasti/cache.py) [play:11:54] [Setting up the data science tools](https://www.youtube.com/watch?v=Ksu5zZIdfH0) [play:14:03] [chartify](https://github.com/spotify/chartify) [play:15:23] [CPython byte code explorer](https://github.com/jtpio/jupyterlab-python-bytecode) Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/109
12/18/201820 minutes, 45 seconds
Episode Artwork

#108 Spilled data? Call the PyJanitor

Topics covered in this episode: [play:0:45] [pyjanitor](https://pyjanitor.readthedocs.io/) - for cleaning data [play:3:12] [What Does It Take To Be An Expert At Python?](https://www.youtube.com/watch?v=7lmCu8wz8ro) [play:5:38] [Awesome Python Applications](https://github.com/mahmoud/awesome-python-applications) [play:8:26] [Django Core no more](https://www.b-list.org/weblog/2018/nov/20/core/) [play:12:06] [wemake django template](https://github.com/wemake-services/wemake-django-template) [play:15:16] Django Hunter Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/108
12/11/201821 minutes, 51 seconds
Episode Artwork

#107 Restructuring and searching data, the Python way

Topics covered in this episode: [play:0:52] [glom: restructuring data, the Python way](https://glom.readthedocs.io/en/latest/index.html) [play:5:31] [Scientific GUI apps with TraitsUI](http://docs.enthought.com/traitsui/) [play:7:49] [Pampy: The Pattern Matching for Python you always dreamed of](https://github.com/santinic/pampy) [play:11:28] [Google AI better than doctors at detecting breast cancer](https://www.sciencefocus.com/news/google-ai-better-than-doctors-at-detecting-breast-cancer/) [play:15:37] [2018 Advent of Code](https://adventofcode.com/2018/about) [play:16:56] [Red Hat Linux 8.0 Beta released, now (finally) updated to use Python 3.6 as default instead of 2.7](https://www.reddit.com/r/Python/comments/9xms3u/redhatlinux80betareleasednow_finally/) Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/107
12/7/201822 minutes, 50 seconds
Episode Artwork

#106 Fluent query APIs on Python collections

Topics covered in this episode: [play:0:49] Dependency Management through a DevOps Lens [play:5:25] [Plugins made simple with](https://github.com/Rockhopper-Technologies/pluginlib) pluginlib [play:8:00] [How to Test Your Django App with Selenium and pytest](https://pybit.es/selenium-pytest-and-django.html) [play:12:40]* Fluent collection APIs (flupy and asq)* [play:16:41] Guido blogging again [play:21:33]* Web apps in pure Python apps with Anvil* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/106
12/1/201826 minutes, 21 seconds
Episode Artwork

#105 Colorizing and Restoring Old Images with Deep Learning

Topics covered in this episode: [play:1:32] [Colorizing and Restoring Old Images with Deep Learning](https://blog.floydhub.com/colorizing-and-restoring-old-images-with-deep-learning/) [play:4:25] [PlatformIO IDE for VSCode](https://platformio.org/platformio-ide) [play:7:35] [Python Data Visualization 2018: Why So Many Libraries?](https://www.anaconda.com/blog/developer-blog/python-data-visualization-2018-why-so-many-libraries/) [play: 11:21] [coder.com - VS Code in the cloud](https://coder.com/) [play:14:20] [By Welcoming Women, Python’s Founder Overcomes Closed Minds In Open Source](https://www.forbes.com/sites/oracle/2018/11/20/by-welcoming-women-pythons-founder-overcomes-closed-minds-in-open-source/) [play:19:40] [Machine Learning Basics](http://alpopkes.com/portfolio/portfolio-2/) Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/105
11/23/201824 minutes, 15 seconds
Episode Artwork

#104 API Evolution the Right Way

Topics covered in this episode: [play:4:32] [wily: A Python application for tracking, reporting on timing and complexity in tests and applications.](https://github.com/tonybaloney/wily) [play:8:00] [Latest VS Code has Juypter support](https://blogs.msdn.microsoft.com/pythonengineering/2018/11/08/python-in-visual-studio-code-october-2018-release/) [play:11:17] API Evolution the Right Way [play:16:10] [PySimpleGUI now on Qt](https://github.com/MikeTheWatchGuy/PySimpleGUI/tree/master/PySimpleGUIQt) [play:19:57] [Comparison of the 7 governance PEPs](https://discuss.python.org/t/comparison-of-the-7-governance-peps/392) [play:23:54] [Shiboken](http://doc.qt.io/qtforpython/shiboken2/) (from Qt for Python project) Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/104
11/17/201830 minutes, 7 seconds
Episode Artwork

#103 Getting to 10x (results for developers)

Topics covered in this episode: [play:1:11] [FEniCS](https://fenicsproject.org/) [play:5:13] [cursivere](https://github.com/Bogdanp/cursivere) [play:8:33] pyimagesearch [play:11:52] [Visualization of Python development up till 2012](https://www.youtube.com/watch?v=cNBtDstOTmA) [play:14:37] [Getting to 10x (Results): What Any Developer Can Learn from the Best](https://medium.com/javascript-scene/getting-to-10x-results-what-any-developer-can-learn-from-the-best-54b6c296a5ef) [play:19:55] [Chaos Toolkit](https://chaostoolkit.org) Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/103
11/8/201827 minutes, 6 seconds
Episode Artwork

#102 Structure of a Flask Project

Topics covered in this episode: QuantEcon Structure of a Flask Project Overusing lambda expressions in Python Asyncio in Python 3.7 * Giving thanks with* **pip thank** Getting Started With Testing in Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/102
10/31/201826 minutes, 52 seconds
Episode Artwork

#101 Nobel Prize awarded to a Python convert

Topics covered in this episode: Asterisks in Python: what they are and how to use them responder web framework * Python Example resource:* pythonprogramming.in More in depth TensorFlow MAKERphone - an educational DIY mobile phone Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/101
10/24/201821 minutes, 34 seconds
Episode Artwork

#100 The big 100 with special guests

Topics covered in this episode: poetry Anthony * pylama *and radon Nina * *Tools for teaching Python Dan My favorite tool of 2018: “Black” code formatter by Łukasz Langa Brett * A Web without JavaScript*: Russell Keith-Magee at PyCon AU Async WebDriver implementation for asyncio and asyncio-compatible frameworks Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/100
10/19/201842 minutes
Episode Artwork

#99 parse - the regex antidote in Python

Topics covered in this episode: parse fman Build System fastjsonschema IPython 7.0, Async REPL molten A Python love letter Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/99
10/16/201821 minutes, 18 seconds
Episode Artwork

#98 Python-Electron as a Python GUI

Topics covered in this episode: Making Etch-a-Sketch Art With Python Dropbox moves to Python 3 * Resources for PyCon that relate to really any talk venue* Electron as GUI of Python Applications pluggy: A minimalist production ready plugin system How China Used a Tiny Chip to Infiltrate U.S. Companies Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/98
10/8/201826 minutes, 58 seconds
Episode Artwork

#97 Java goes paid

Topics covered in this episode: Making a PyPI-friendly README Java goes paid Absolute vs Relative Imports in Python pyxel - A retro game engine for Python Click 7.0 Released How we spent 30k USD in Firebase in less than 72 hours Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/97
9/28/201824 minutes, 36 seconds
Episode Artwork

#96 Python Language Summit 2018

Topics covered in this episode: Plumbum: Shell Combinators and More Windows 10 Linux subsystem for Python developers Type hints cheat sheet (Python 3) Python driving new languages asyncio documentation rewritten from scratch The 2018 Python Language Summit Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/96
9/22/201826 minutes, 33 seconds
Episode Artwork

#95 Unleash the py-spy!

Topics covered in this episode: dataset: databases for lazy people CuPy GPU NumPy Automate Python workflow using pre-commits py-spy SymPy is a Python library for symbolic mathematics Starlette ASGI web framework Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/95
9/15/201823 minutes, 33 seconds
Episode Artwork

#94 Why don't you like notebooks?

Topics covered in this episode: Python Patterns Arctic: Millions of rows a sec (time data) PyCon Australia videos GAE: Introducing App Engine Second Generation runtimes and Python 3.7 I don’t like notebooks PEP 8000 -- Python Language Governance Proposal Overview TIOBE jump https://www.tiobe.com/tiobe-index/ Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/94
9/6/201823 minutes, 49 seconds
Episode Artwork

#93 Looking like there will be a PyBlazor!

Topics covered in this episode: Replacing Bash Scripting with Python. pyodide The subset of reStructuredText worth committing to memory bandit Learn Python 3 within Jupyter Notebooks detect-secrets Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/93
8/31/201824 minutes, 15 seconds
Episode Artwork

#92 Will your Python be compiled?

Topics covered in this episode: IEEE Survey Ranks Programming Languages MyPyC Beyond Interactive: Notebook Innovation at Netflix How to create a Windows Service in Python An Overview of Packaging for Python PEP 505 -- None-aware operators Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/92
8/25/201826 minutes, 57 seconds
Episode Artwork

#91 Will there be a PyBlazor?

Topics covered in this episode: What makes the Python Cool Django 2.1 released Awesome Python Features Explained Using Harry Potter Executing Encrypted Python with no Performance Penalty icdiff and pytest-icdiff * Will there be a PyBlazor?* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/91
8/15/201820 minutes, 28 seconds
Episode Artwork

#90 A Django Async Roadmap

Topics covered in this episode: Reproducible Data Analysis in Jupyter PySimpleGUI - For simple Python GUIs Useful tricks you might not know about Git stash A Django Async Roadmap pydub Molten: Modern API framework Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/90
8/7/201825 minutes, 18 seconds
Episode Artwork

#89 A tenacious episode that won't give up

Topics covered in this episode: tenacity Why is Python so slow? A multi-core Python HTTP server (much) faster than Go (spoiler: Cython) Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/89
8/4/201828 minutes, 50 seconds
Episode Artwork

#88 Python has brought computer programming to a vast new audience

Topics covered in this episode: Documenting Python Code: A Complete Guide * Security vulnerability alerts for Python at Github* How virtual environment libraries work in Python Learning (not) to Handle Exceptions Python has brought computer programming to a vast new audience Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/88
7/27/201823 minutes, 8 seconds
Episode Artwork

#87 Guido van Rossum steps down

See the full show notes for this episode on the website at pythonbytes.fm/87
7/17/201833 minutes, 20 seconds
Episode Artwork

#86 Make your NoSQL async and await-able with uMongo

Topics covered in this episode: responses 29 common beginner Python errors on one page μMongo Basic Statistics in Python: Descriptive Statistics Strings and Character Data in Python PEP 572: Assignment expressions accepted Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/86
7/13/201826 minutes, 4 seconds
Episode Artwork

#85 Visually debugging your Jupyter notebook

Topics covered in this episode: the state of type hints in Python Flaskerizer PixieDebugger Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/85
7/3/201824 minutes, 40 seconds
Episode Artwork

#84 Vibora web framework: It's fast, async, and means viper

Topics covered in this episode: Correcting Documentation for a Deployed Python Package Flask Mega Tutorial pre-commit * Python 3.7 release and PSF board members* Vibora web framework Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/84
6/28/201826 minutes, 29 seconds
Episode Artwork

#83 from __future__ import braces

Topics covered in this episode: Code with Mu: a simple Python editor for beginner programmers. Python parenthesis primer Python for Qt Released Itertools in Python 3, By Example Python Sets and Set Theory Python 3.7 is coming soon! Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/83
6/22/201829 minutes, 22 seconds
Episode Artwork

#82 Let's make a clear Python 3 statement

Topics covered in this episode: Building and Documenting Python REST APIs With Flask and Connexion MyPy + PyCharm * Automatic code/doc conversion* python3statement Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/82
6/15/201825 minutes, 55 seconds
Episode Artwork

#81 Making your C library callable from Python by wrapping it with Cython

Topics covered in this episode: * Learning about Machine Learning* Making your C library callable from Python by wrapping it with Cython Taming Irreversibility with Feature Flags (in Python) pretend: a stubbing library The official Flask tutorial An introduction to Python bytecode Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/81
6/5/201817 minutes
Episode Artwork

#80 Dan Bader drops by and we found 30 new Python projects

Topics covered in this episode: Packaging Python Projects gidgethub — An async library for calling GitHub’s API pystemd PyCharm 2018.2 EAP 1 includes improved pytest support 30 amazing Python projects (2018 edition) Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/80
5/29/201830 minutes, 45 seconds
Episode Artwork

#79 15 Tips to Enhance your Github Flow

Topics covered in this episode: pytest 3.6.0 * Hello* Qt for Python MongoDB 4.0.0-rc0 available Pipenv review, after using it in production Pandas goes Python 3 only Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/79
5/25/201827 minutes, 31 seconds
Episode Artwork

#78 Setting Expectations for Open Source Participation

Topics covered in this episode: The Forgotten Optional else in Python Loops libraries.io The other (great) benefit of Python type annotations Setting Expectations for Open Source Participation ngrok Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/78
5/18/201826 minutes, 7 seconds
Episode Artwork

#77 You Don't Have To Be a Workaholic To Win

Topics covered in this episode: Why Senior Devs Write Dumb Code GeoAlchemy 2 You Don't Have To Be a Workaholic To Win: 13 Alternative Ways To Stand Out Project Beeware AppStore Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/77
5/12/201821 minutes, 4 seconds
Episode Artwork

#76 Goodbye zero-versioning

Topics covered in this episode: Unlearning toxic behaviors in a code review culture Flask 1.0 Released How to have a great first PyCon Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/76
5/4/201830 minutes, 40 seconds
Episode Artwork

#75 pypi.org officially launches

Topics covered in this episode: numba pip 10 is out! * Pandas only like modern Python* Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/75
4/28/201819 minutes, 51 seconds
Episode Artwork

#74 Contributing to Open Source effectively

Topics covered in this episode: * Contributing to Open Source effectively* Jupyter, Mathematica, and the Future of the Research Paper Depression AI Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/74
4/19/201824 minutes, 51 seconds
Episode Artwork

#73 This podcast comes in any color you want, as long as it's black

Topics covered in this episode: Set Theory and Python Trio: async programming for humans and snake people black: The uncompromising Python code formatter gain: Web crawling framework based on asyncio Generic Function in Python with Singledispatch Unsync: Unsynchronizing async/await in Python 3.6 Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/73
4/12/201818 minutes, 35 seconds
Episode Artwork

#72 New versioning: Episode 0.0.7.2 (with 72 releases)

Topics covered in this episode: ZeroVer: 0-based Versioning GitHub Security Alerts Detected over Four Million Vulnerabilities Markdown Descriptions on PyPI Concurrency comparison between NGINX-unit and uWSGI Loop better: A deeper look at iteration in Python Misconfigured Django Apps Are Exposing Secret API Keys, Database Passwords Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/72
4/5/201822 minutes, 54 seconds
Episode Artwork

#71 We can migrate to Python 3, careful please

Topics covered in this episode: The Conservative Python 3 Porting Guide World-Class Software Companies That Use Python Stop Writing Classes PyPi.org is alive pygame on pypy usable Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/71
3/28/201824 minutes, 1 second
Episode Artwork

#70 Have you seen my log? It's cute!

Topics covered in this episode: Online CookieCutter Generator cutelog – GUI for Python's logging module wagtail 2.0 peewee 3.0 is out Machine Learning Basics Cerberus Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/70
3/23/201815 minutes, 51 seconds
Episode Artwork

#69 Digging into StackOverflow's 2018 survey results

Topics covered in this episode: pynb: Jupyter Notebooks as plain Python code with embedded Markdown text Microsoft’s quantum computing language is now available for macOS * pytest talk in Spanish* StackOverflow Developer Survey Results 2018 demoshell * Clear statement on Python 2 EOL* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/69
3/18/201824 minutes
Episode Artwork

#68 Python notebooks galore!

Topics covered in this episode: dumb-pypi Requests-HTML: HTML Parsing for Humans A phone number proxy * Notebooks galore part 1:* Datalore bellybutton Notebooks galore part 2 Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/68
3/6/201819 minutes, 9 seconds
Episode Artwork

#67 Result of moving Python to Github

Topics covered in this episode: Building a blog with Pelican Notifiers Using Makefiles in Python projects Result of moving Python to Github Self-Deprecation Needs to Stop 5 speed improvements in Python 3.7 Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/67
3/1/201821 minutes, 56 seconds
Episode Artwork

#66 Wait, NoSQL with ACID and transactions?

Topics covered in this episode: Object-Oriented Programming (OOP) in Python 3 ScriptedForms MongoDB to add multi-document transactions and ACID Python packaging pitfalls Blogging principles pipenv is officially official Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/66
2/23/201821 minutes, 43 seconds
Episode Artwork

#65 Speed of your import statements affecting performance?

Topics covered in this episode: pygal : Simple Python Charting Thoughts on becoming a self-taught programming How to speed up Python application startup time (timing imports in 3.7) AnPyLar - The Python web front-end framework Migrating to Python 3 with pleasure Moving to Python 3 Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/65
2/14/201827 minutes, 7 seconds
Episode Artwork

#64 The GUI phoenix rises with wxPython

Topics covered in this episode: * wxPython 4,* Pheonix is now live and supports Python 3 typeshed Coverage 4.5 adds configurator plug-ins Python integrated into Unreal Engine Python 3.7.0b1 : Beta means we should be testing it!!! * Releases abound!* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/64
2/9/201821 minutes, 1 second
Episode Artwork

#63 We're still on a desktop GUI kick

Topics covered in this episode: A brief tour of Python 3.7 data classes SQLite [The Databaseology Lectures - CMU Fall 2015] dryable : a useful dry-run decorator for python PEP Explorer - Explore Python Enhancement Proposals TKInter Tutorial Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/63
2/1/201821 minutes, 12 seconds
Episode Artwork

#62 Wooey and Gooey are simple Python GUIs

Topics covered in this episode: Dan Bader takes over Real Python * Still more Python GUIs* Python’s misleading readability warp2 access Help! My tests can’t see my code! Cement - Framework for CLI Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/62
1/26/201828 minutes, 41 seconds
Episode Artwork

#61 On Being a Senior Engineer

Topics covered in this episode: PEP 412's dict key sharing for classes Python Hunter Ten Things I Wish I’d Known About bash Snakefooding Python Code For Complexity Visualization On Being a Senior Engineer * Python UI frameworks* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/61
1/16/201822 minutes, 22 seconds
Episode Artwork

#60 Don't dismiss SQLite as just a starter DB

Topics covered in this episode: Who's at nine? Retiring Python as a teaching language Don't dismiss SQLite as just a starter DB Chalice: Python Serverless Microframework for AWS Fastest way to uniquely a list in Python >=3.6 * PyTexas and PyCon AU vidoes are up* Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/60
1/11/201826 minutes, 29 seconds
Episode Artwork

#59 Instagram disregards Python's GC (again)

Topics covered in this episode: gc.freeze() and Copy-on-write friendly Python garbage collection SpeechPy - A Library for Speech Processing and Recognition PyBites Code Challenges: Bites of Py How big is the Python Family Dramatiq: simple task processing Controlling Python Async Creep Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/59
1/5/201825 minutes, 39 seconds
Episode Artwork

#58 Better cache decorators and another take on type hints

Topics covered in this episode: Instagram open sources MonkeyType cachetools Going Fast with SQLite and Python * The graphing calculator that makes learning math easier.* Installing Python Packages from a Jupyter Notebook Videos from PyConDE 2017 are online Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/58
12/26/201715 minutes, 27 seconds
Episode Artwork

#57 Our take on Excel and Python

Topics covered in this episode: Testing Python 3 and 2 simultaneously with retox Robo 3T / RoboMongo regular expressions MongoEngine Introducing PrettyPrinter for Python Excel and Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/57
12/21/201715 minutes, 48 seconds
Episode Artwork

#56 The pendulum of time swings beautifully in PyPI

Topics covered in this episode: Pendulum for datetimes Flask asynchronous background tasks with Celery and Redis Building a Simple Web App With Bottle, SQLAlchemy, and the Twitter API Python extension for VSCode updated, now brought to you by Microsoft A Comprehensive Guide To Web Design Requestium Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/56
12/14/201716 minutes, 29 seconds
Episode Artwork

#55 Flask, Flask, Flask, 3x Flask

Topics covered in this episode: Django 2.0 Released The Big Ol' List of Rules requests-staticmock PEP 557 -- Data Classes have been approved Quart: 3x faster Flask Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/55
12/7/201720 minutes, 18 seconds
Episode Artwork

#54 PyAnnotate your way to the future

Topics covered in this episode: The PSF awarded $170,000 grant from Mozilla Open Source Program to improve sustainability of PyPI Dropbox releases PyAnnotate pytest-annotate is now open-source! Run Python script as systemd service pytest 3.3.0 released Why d = {} is faster than d = dict() Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/54
11/29/201718 minutes, 51 seconds
Episode Artwork

#53 Getting started with devpi and Git Virtual FS

Topics covered in this episode: Exploring Line Lengths in Python Packages NumPy: Plan for dropping Python 2.7 support How to Learn Pandas Microsoft and GitHub team up to take Git virtual file system to macOS, Linux Getting started with devpi Marketing-for-Engineers Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/53
11/22/201722 minutes, 10 seconds
Episode Artwork

#52 Call your APIs with uplink and test them in the tavern

Topics covered in this episode: Restful API testing with Tavern Uplink Using json-schema for REST API endpoint tests Live coding to music! Weekly Python Chat 10 common beginner mistakes in Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/52
11/16/201721 minutes, 40 seconds
Episode Artwork

#51 How to make your code 80 times faster

Topics covered in this episode: Exploring United States Policing Data with Python How to make your code 80 times faster Giving Open-Source Projects Life After a Developer's Death Solar Powered Internet Connected Lawn Sprinkler Project Talk MicroPython and Open Source Hardware at Adafruit: https://talkpython.fm/108 Some New Python Books Anaconda Distribution 5.0 released Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/51
11/9/201721 minutes, 33 seconds
Episode Artwork

#50 Bundling , shipping, and protecting Python applications

Topics covered in this episode: Think Like a Pythonista Serpent.AI - Game Agent Framework MkDocs PyInstaller 3.3 released PEX: A library and tool for generating .pex (Python EXecutable) files Using Cython to protect a Python codebase Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/50
11/2/201719 minutes, 17 seconds
Episode Artwork

#49 Your technical skills are obsolete: now what?

Topics covered in this episode: * Conference videos for DjangoCon 2017 and PyGotham 2017* * Python 3.6.3 released on Tue. All machines at FB are already running it (3 days)* Your technical skills are obsolete: now what? Visualizing Garbage Collection Algorithms pathlib — Filesystem Paths as Objects LUMINOTH: Open source Computer Vision toolkit Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/49
10/25/201725 minutes, 57 seconds
Episode Artwork

#48 Garbage collection and memory management in Python

Topics covered in this episode: The Python Graph Gallery pynesis Things you need to know about garbage collection in Python * WSGI Is Not Enough Anymore,* part 1 and part 2 Queues in Python Using Reflection: A Podcast About Humans Engineering Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/48
10/19/201717 minutes, 50 seconds
Episode Artwork

#47 PyPy now works with way more C-extensions and parking your package safely

Topics covered in this episode: WTF Python? Python Exercises Exploiting misuse of Python's "pickle" A Complete Beginner's Guide to Django pypi-parker Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/47
10/12/201716 minutes, 44 seconds
Episode Artwork

#46 Spicy lecture notes and unicorn console spinners

Topics covered in this episode: Scipy lecture notes Building a desktop notification tool for Linux using python Alice in Python projectland How to teach technical concepts with cartoons Halo: Beautiful terminal spinners in Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/46
10/5/201716 minutes, 51 seconds
Episode Artwork

#45 A really small web API and OS-level machine learning

Topics covered in this episode: pico High Sierra ships, first major OS with machine learning built in? A guide to logging in Python Let me introduce: slots pipenv revisited Stack Overflow gives an even closer look at developer salaries Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/45
9/29/201719 minutes, 33 seconds
Episode Artwork

#44 pip install malicious-code

Topics covered in this episode: Ten Malicious Libraries Found on PyPI * PyPI migration to Warehouse is in progress* Live coding in a presentation * Notable REST / Web Frameworks* tox * flake8-tidy-imports* deprecated imports Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/44
9/20/201726 minutes, 35 seconds
Episode Artwork

#43 Python string theory, v2

Topics covered in this episode: future-fstrings The Fun of Reinvention Sound Pattern Recognition with Python PEP 550: Execution Context Intro to Threads and Processes in Python Alternative filesystems for Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/43
9/14/201718 minutes, 48 seconds
Episode Artwork

#42 Behold: The Python 2 death clock

Topics covered in this episode: What Kenneth Did Last Week (well, recently) Python 2 Death Clock Small Functions considered Harmful Why Python 3 EANABs The Incredible Growth of Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/42
9/8/201723 minutes, 52 seconds
Episode Artwork

#41 Python Concurrency From the Ground Up and Caring for our Community

Topics covered in this episode: lolviz Odo for data transforms Python Concurrency From the Ground Up FAT Python: the next chapter in Python optimization sshuttle Node.js forks again – this time it's a war of words over codes of conducts Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/41
8/31/201723 minutes, 21 seconds
Episode Artwork

#40 Packet Manipulation with Scapy

Topics covered in this episode: DevOps Automation Tool: Ansible Python Practices for Efficient Code: Performance, Memory, and Usability Packet Manipulation Program: Scapy Using Headless Chrome with Selenium Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/40
8/24/201722 minutes, 59 seconds
Episode Artwork

#39 The new PyPI

Topics covered in this episode: [more] [The New PyPI](https://pypi.org/) CircuitPython Snakes its Way onto Adafruit Hardware Dataclasses Pandas in a Nutshell Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/39
8/17/201743 minutes, 6 seconds
Episode Artwork

#38 Hacking Classic Nintendo Games with Python

Topics covered in this episode: [more]* Hacking Classic Nintendo Games with Python * Bokeh Mosh (mobile shell) (bonus) Twilio Voices Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/38
8/9/201724 minutes, 57 seconds
Episode Artwork

#37 Rule over the shells with Sultan

Topics covered in this episode: [more] [New URL for Python Developer’s Guide](https://devguide.python.org/) Sultan: Command and Rule Over Your Shell Flake8Lint Magic Wormhole Python Virtual Environments Primer How Rust can replace C, with Python's help Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/37
8/2/201718 minutes, 15 seconds
Episode Artwork

#36 Craft Your Python Like Poetry and Other Musings

Topics covered in this episode: Craft Your Python Like Poetry The Fedora Python Classroom Lab How a VC-funded company is undermining the open-source community Newspaper Python Package IEEE Spectrum: The Top Programming Languages 2017 SciPy 2017 videos are out Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/36
7/28/201722 minutes, 34 seconds
Episode Artwork

#35 How developers change programming languages over time

Topics covered in this episode: [more] [Python Quirks](https://medium.com/@PhilipTrauner/python-quirks-comments-324bbf88612c) : Comments Python 3.6.2 is out! Contributing to Open Source Projects: Imposter Syndrome Disclaimer The Dark Secret at the Heart of AI Arrange Act Assert pattern for Python developers Analyzing GitHub, how developers change programming languages over time Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/35
7/19/201724 minutes, 44 seconds
Episode Artwork

#34 The Real Threat of Artificial Intelligence

Topics covered in this episode: Easy Python logging with daiquiri The Real Threat of Artificial Intelligence The three laws of config dynamics Five Tips To Get You Started With Jupyter Notebook Cost of Coupling Versus Cost of De-coupling 100 Days of Code at PyBites Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/34
7/13/201722 minutes, 57 seconds
Episode Artwork

#33 You should build an Alexa skill

Topics covered in this episode: Linting as Lightweight Defect Detection for Python You should build an Alexa skill RISE Closer Checklist for Python libraries APIs Fades Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/33
7/6/201717 minutes, 49 seconds
Episode Artwork

#32 8 ways to contribute to open source when you have no time

Topics covered in this episode: [more] Introducing Dash Keeping Python competitive PyPI Quick and Dirty Minimal examples of data structures and algorithms in Python 8 ways to contribute to open source when you have no time NumPy receives first ever funding, thanks to Moore Foundation Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/32
7/1/201723 minutes, 10 seconds
Episode Artwork

#31 You should have a change log

Topics covered in this episode: [more] [TinyMongo](https://github.com/schapman1974/tinymongo) A dead simple Python data validation library PuDB Analyzing Django requirement files on GitHub Changelogs Understanding Asynchronous Programming in Python Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/31
6/21/201721 minutes, 50 seconds
Episode Artwork

#30 You are not Google and other ruminations

Topics covered in this episode: Problems and Solutions are different at different scales Introducing NoDB - a Pythonic Object Store for S3 Elizabeth for mock data What’s New In Python 3.7 * Hypothesis Testing* Heroku switching default to v3.6.1 Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/30
6/15/201724 minutes, 37 seconds
Episode Artwork

#29 Responsive Bar Charts with Bokeh, Flask, and Python 3

Topics covered in this episode: Responsive Bar Charts with Bokeh, Flask and Python 3 Zappa Serverless Python Web Services Using a local cache for pip packages Building game AI using ML: Working with TensorFlow, Keras, and the Intel MKL in Python Debug Test Failures With Pdb Monitoring my VOIP provider with Home Assistant Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/29
6/8/201723 minutes, 4 seconds
Episode Artwork

#28 The meaning of _ in Python

Topics covered in this episode: [more] pep8.org: PEP 8 — the Style Guide for Python Code Tokio: Asyncio event loop written in Rust language Python Boilerplate Instagram switching to Python 3 on one branch The Meaning of Underscores in Python The future is looking bright for Python Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/28
6/2/201720 minutes, 59 seconds
Episode Artwork

#27 The PyCon 2017 recap and functional Python

Topics covered in this episode: How to Create Your First Python 3.6 AWS Lambda Function How to Publish Your Package on PYPI Coconut: Simple, elegant, Pythonic functional programming Choose a licence Python for Scientists and Engineers Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/27
5/25/201719 minutes, 8 seconds
Episode Artwork

#26 How have you automated your life, or CLI, with Python?

Topics covered in this episode: * Two part series on interactive terminal applications* How have you automated your life with python? Spelling with Elemental Symbols IDE's for beginners PDF Plumber Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/26
5/19/201719 minutes, 44 seconds
Episode Artwork

#25 Could we have more in-database machine learning please?

Topics covered in this episode: Python in SQL Server 2017: enhanced in-database machine learning Stack Overflow Trends tool We asked 20,000 people who they are and how they’re learning to code Beeware: A request for your help Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/25
5/12/201717 minutes, 53 seconds
Episode Artwork

#24 I have a local PyPI server and so do you!

Topics covered in this episode: * Learning Python Series by Doug Farrell, published on dbader.org* Geeking out in your older years Local package store Modifying the Python language in 6 minutes colorful Five steps to add the bling factor your Python package Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/24
5/3/201719 minutes, 29 seconds
Episode Artwork

#23 Can you grok the GIL?

Topics covered in this episode: Grok the GIL - How to write fast and thread-safe Python The New NBA by Mark Cuban Ian Cordasco gets a Community Service Award from PSF Release of IPython 6.0 Testing & Packaging AWS Lambda adds Python 3.6 support Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/23
4/26/201719 minutes, 34 seconds
Episode Artwork

#22 PYTHONPATH considered harmful

See the full show notes for this episode on the website at pythonbytes.fm/22
4/18/201715 minutes, 50 seconds
Episode Artwork

#21 Python has a new star framework for RESTful APIs

See the full show notes for this episode on the website at pythonbytes.fm/21
4/13/201720 minutes, 57 seconds
Episode Artwork

#20 Finding similar but not identical images in 128 bits via Python

See the full show notes for this episode on the website at pythonbytes.fm/20
4/5/201723 minutes, 48 seconds
Episode Artwork

#19 Put your Python dictionaries in a box and apparently Python is really wanted

See the full show notes for this episode on the website at pythonbytes.fm/19
3/27/201719 minutes, 37 seconds
Episode Artwork

#18 Python 3 has some amazing types and you can now constructively insult your shell!

See the full show notes for this episode on the website at pythonbytes.fm/18
3/21/201718 minutes, 27 seconds
Episode Artwork

#17 Google's Python is on fire and Simon says you have CPU load Pythonically

See the full show notes for this episode on the website at pythonbytes.fm/17
3/18/201719 minutes, 31 seconds
Episode Artwork

#16 Postmodern Python and Open-source Financial Awards

See the full show notes for this episode on the website at pythonbytes.fm/16
3/7/201719 minutes, 15 seconds
Episode Artwork

#15 Digging into Python packaging

Topics covered in this episode: #6 Michael: Talk Python past, present, and future with Guido van Rossum Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/15
2/28/201716 minutes, 4 seconds
Episode Artwork

#14 Lots of Python style and Python 3000 is 3000 days old

Topics covered in this episode: Tiny Python 3.6 Notebook - Matt Harrison Oh no! This package is Python 2 only - Anthony Shaw Elements of Python Style - Andrew Montalenti Python 3 was exactly 3000 days old this past Sunday mongoaudit Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/14
2/22/201715 minutes, 39 seconds
Episode Artwork

#13 Python making the move to GitHub and Dropbox is stepping back from Pyston

See the full show notes for this episode on the website at pythonbytes.fm/13
2/14/201718 minutes, 6 seconds
Episode Artwork

#12 Expanding your Python mental model and serving millions of requests per second with Python

Topics covered in this episode: Why Learn Python? Here Are 8 Data-Driven Reasons by Dan Bader A million requests per second with Python Python Top 10 Articles for the Past Year (v.2017) Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/12
2/7/201719 minutes, 4 seconds
Episode Artwork

#11 Django 2.0 is dropping Python 2 entirely, pipenv for profile functionality, and Pythonic home automation

See the full show notes for this episode on the website at pythonbytes.fm/11
1/31/201720 minutes, 55 seconds
Episode Artwork

#10 Dismissing Python's Garbage Collection, PyPI Name Reservations, and Hackers Exfiltrate US Government Data to Save Itself

See the full show notes for this episode on the website at pythonbytes.fm/10
1/23/201725 minutes, 45 seconds
Episode Artwork

#9 Walking with async coroutines, diving deep into requests, and a universe of options (for AIs)

Topics covered in this episode: Talk CPython Internals and Learning Python with pythontutor.com Talk Write an Excellent Programming Blog Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/9
1/17/201723 minutes, 39 seconds
Episode Artwork

#8 Python gets Grumpy, avoiding burnout, Postman for API testing and more

See the full show notes for this episode on the website at pythonbytes.fm/8
1/10/201720 minutes, 48 seconds
Episode Artwork

#7 Python 3.6 is out, Sanic is a blazing web framework, and are failing our open source infrastructure?

See the full show notes for this episode on the website at pythonbytes.fm/7
1/4/201721 minutes, 13 seconds
Episode Artwork

#6 Python 3.6 is going to be awesome, Kite: your friendly co-developing AI

See the full show notes for this episode on the website at pythonbytes.fm/6
12/12/201619 minutes, 33 seconds
Episode Artwork

#5 Legacy Python vs Python and why words matter and Request's 5 Whys retrospective

See the full show notes for this episode on the website at pythonbytes.fm/5
12/5/201618 minutes, 30 seconds
Episode Artwork

#4 Python 3 is just fine for beginners thank you, q is awesome for debugging, and more

See the full show notes for this episode on the website at pythonbytes.fm/4
11/29/201621 minutes, 8 seconds
Episode Artwork

#3 Python 3.6 is coming, and it's awesome plus superior text processing with Pynini

Topics covered in this episode: Shipped: Parsing horrible things with Python Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/3
11/23/201629 minutes, 41 seconds
Episode Artwork

#2 PyCon, awesome python, python developer job prospects, and more

Topics covered in this episode: T& Raphael Pierzina, on cookie cutter, pytest 3.0, and contributing to both: http://pythontesting.net/podcast/24-pytest-raphael-pierzina/ T& Dave Hunt, recorded. Hope to get that out this week. We talk about his work on Selenium, pytest-selenium, pytest-html, tox, and how Mozilla does some of it's testing with these tools. Extras Joke Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/2
11/14/201617 minutes, 38 seconds
Episode Artwork

#1 Intro to the show and pip 9 is out!

See the full show notes for this episode on the website at pythonbytes.fm/1
11/7/201616 minutes, 38 seconds