Afleveringen
-
Topics covered in this episode:
PostgresRESTHow Python Asyncio Works: Recreating it from ScratchBendThe Smartest Way to Learn Python Regular ExpressionsExtrasJokeWatch on YouTubeAbout the show
Sponsored by Mailtrap: pythonbytes.fm/mailtrap
Connect with the hosts
Michael: @[email protected]: @[email protected]: @[email protected]Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 10am PT. Older video versions available there too.
Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Michael #1: PostgresREST
PostgREST serves a fully RESTful API from any existing PostgreSQL database. It provides a cleaner, more standards-compliant, faster API than you are likely to write from scratch.SpeedyFirst the server is written in Haskell using the Warp HTTP server (aka a compiled language with lightweight threads). Next it delegates as much calculation as possible to the database.Finally it uses the database efficiently with the Hasql libraryPostgREST handles authentication (via JSON Web Tokens) and delegates authorization to the role information defined in the database. This ensures there is a single declarative source of truth for security.Brian #2: How Python Asyncio Works: Recreating it from Scratch
Jacob PadillaCool tutorial walking through how async works, includingGenerators ReviewThe Event LoopSleepingYield to AwaitAwait with AsyncIOAnother great async resource is:Build your Own AsyncDavid Beasley talk from 2019Michael #3: Bend
A massively parallel, high-level programming language.With Bend you can write parallel code for multi-core CPUs/GPUs without being a C/CUDA expert with 10 years of experience. It feels just like Python!No need to deal with the complexity of concurrent programming: locks, mutexes, atomics... any work that can be done in parallel will be done in parallel.Brian #4: The Smartest Way to Learn Python Regular Expressions
Christian Mayer, Zohaib Riaz, and Lukas RiegerSelf published ebook on Python Regex that utilizesbook form readings, links to video course sectionspuzzle challenges to complete onlineItâs a paid resource, but the min is free.Extras
Brian:
Replay - A graphic memoir by Prince of Persia creator Jordan Mechner, recounting his own family story of war, exile and new beginnings.Michael:
PyCon 2026Joke: Shells Scripts
-
Topics covered in this episode:
Git: Force push safely with --force-with-lease and --force-if-includesThoughts from PyCon 2024Being friendly: Strategies for friendly fork managementtachExtrasJokeWatch on YouTubeAbout the show
Sponsored by Mailtrap: pythonbytes.fm/mailtrap
Connect with the hosts
Michael: @[email protected]: @[email protected]: @[email protected]Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 10am PT. Older video versions available there too.
Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Brian #1: Git: Force push safely with --force-with-lease and --force-if-includes
Adam JohnsonUsing gentle force Avoid stomping on remote changes with a couple extra flags.Michael #2: Thoughts from PyCon 2024
PyCon is special - the connections you make are always more than you expectGreat to see many old friendsDid a âliveâ Talk Python episode thatâll be out in a few weeks.The talks look great, weâll let you know when they land on YouTube.Masks were a mistake - universally heard complaints from fellow attendees. This is my two cents towards a more reasonable next PyCon.Brian #3: Being friendly: Strategies for friendly fork management
Thatâs part 2. Part 1 is Being friendly: Friendly forks 101Lessley Dennington on GitHub BlogExamples of long running friendly forksgit-for-windows/git, microsift/git, github/gittwo public, one privateFork management strategies - when pulling changes downstreammerging rebase git-for-windows/git uses this proactively and regularlyfake merge + rebasenew branch microsoft/git uses thisnew branch from upstream major versionsmerge previous changes to new branchtraditional merge github/git uses this, conservatively, after a few point bug fix versionsMichael #4: tach
A Python tool to enforce a modular, decoupled package architecture.tach allows you to define boundaries and control dependencies between your Python packages. Each package can define its public interface.If a package tries to import from another package that is not listed as a dependency, tach will report an error. If a package tries to import from another package and does not use its public interface, with strict: true set, tach will report an error.Zero runtime impact.Extras
Brian:
Logfire - new observability platform from the pydantic team - free for nowMichael:
10% off the new spaCy course throughout MayJoke: Evolution of smart products
-
Zijn er afleveringen die ontbreken?
-
Topics covered in this episode:
I asked 100 devs why they arenât shipping faster. Hereâs what I learnedPython 3.13.0 beta 1 releasedA theme editor for JupyterLabrich-argparseExtrasJokeWatch on YouTubeAbout the show
Sponsored by Mailtrap: pythonbytes.fm/mailtrap
Connect with the hosts
Michael: @[email protected]: @[email protected]: @[email protected]Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesdays at 10am PT. Older video versions available there too.
Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Michael #1: I asked 100 devs why they arenât shipping faster. Hereâs what I learned
by Daksh Gupta (via PyCoders)Whatâs stopping you from shipping faster?Dependency bugs Complicated codebase>There is so much undocumented in our service, including poor records of new features, nonexistent or outdated info on our dependencies, or even essential things like best practices for testing, a lot of time is wasted in syncs trying to find the right informationQA LoopsWaiting for spec> At Amazon? Meetings, approval, talking to 10 different stakeholders because changing the color of a button affects 15 micro servicesWriting testsDeployment/build speedScope creep> The human tendency to stuff last-minute items into the crevices of their luggage minutes before leaving for the airport manifests itself at software companies as scope creep.Unclear requirementsExcessive meetingsMotivation>honest answer is i was on ads>and thatâs a very old / complicated / large stack (edited)>and i didnât understand it>my friends on younger teams seemed happier, i was miserableDORA metricsBrian #2: Python 3.13.0 beta 1 released
"Python 3.13 is still in development. This release, 3.13.0b1, is the first of four beta release previews of 3.13.âNew REPL, featuring multi-line editing, color support, colorized exception tracebacksCool GIL, JIT, and GC featuresTyping changes, including typing.TypeIs . See last weeks episode and TypeIs does what I thought TypeGuard would do in PythonSome nice dead battery removalsand moreBut seriously, the REPL is cool. Just ask TreyThe new REPL in Python 3.13 - Trey HunnerMichael #3: A theme editor for JupyterLab
by Florence HaudinA new tool for authoring JupyterLab themesTo lower the bar for customizing JupyterLab we created a new tool providing a simple interface for tuning the JupyterLab appearance interactively.See jupyterlab-theme-editor on githubBrian #4: rich-argparse
âFormat argparse and optparse help using rich.âârich-argparse improves the look and readability of argparse's help while requiring minimal changes to the code.âTheyâre not kidding. 2 line code change.from rich_argparse import RichHelpFormatterparser = argparse.ArgumentParser(..., formatter_class=RichHelpFormatter)Extras
Brian:
pytest course is now switched to the new platform.I sent out an email including how to save their spot on the old site and mark that spot complete on the new site.Thereâs now comments on the course now. Trying that out. If youâve got a question, just ask in that section.Michael:
A new Talk Python course: Getting Started with NLP and spaCyJoke: Testing holiday
-
Topics covered in this episode:
act: Run your GitHub Actions locally! portrAnnotating args and kwargs in Pythongithub badgesExtrasJokeWatch on YouTubeAbout the show
Sponsored by ScoutAPM: pythonbytes.fm/scout
Connect with the hosts
Michael: @[email protected]: @[email protected]: @[email protected]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.
Finally, if you want an artisanal, hand-crafted digest of every week of
the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Brian #1: act: Run your GitHub Actions locally!
Why?âFast Feedback - Rather than having to commit/push every time you want to test out the changes you are making to your .github/workflows/ files (or for any changes to embedded GitHub actions), you can use act to run the actions locally. The environment variables and filesystem are all configured to match what GitHub provides.ââLocal Task Runner - I love make. However, I also hate repeating myself. With act, you can use the GitHub Actions defined in your .github/workflows/ to replace your Makefile!âDocs: nektosact.comUses Docker to run containers for each action.Michael #2: portr
Open source ngrok alternative designed for teamsExpose local http, tcp or websocket connections to the public internetWarning: Portr is currently in beta. Expect bugs and anticipate breaking changes.Server setup (docker basically).Brian #3: Annotating args and kwargs in Python
Redowan DelowarI donât think Iâve ever tried, but this is a fun rabbit hole.Leveraging bits of PEP-5891, PEP-6462, PEP-6553, and PEP-6924.Punchline:
from typing import TypedDict, Unpack *# Python 3.12+**# from typing_extensions import TypedDict, Unpack # < Python 3.12*class Kw(TypedDict): key1: int key2: booldef foo(*args: Unpack[tuple[int, str]], **kwargs: Unpack[Kw]) -> None: ...A recent pic from Redowanâs blog:
TypeIs does what I thought TypeGuard would do in PythonMichael #4: github badges
A curated list of GitHub badges for your next projectExtras
Brian:
Fake job interviews target developers with new Python backdoorLater this week, course.pythontest.com will shift from Teachable to PodiaSame great content. Just a different backend.To celebrate, get 25% off at pythontest.podia.com now through this Sunday using coupon code PYTESTGetting the most out of PyCon, including juggling - Rob LudwickLatest PythonTest episode, also cross posted to pythonpeople.fm3D visualization of domMichael:
Djangonauts Space Session 2 Applications Open! More background at Djangonauts, Ready for Blast-Off on Talk Python.Self-Hosted Open Source - Michael Kennedy on Django ChatJoke: silly games
Closing song: Permission Granted
-
Topics covered in this episode:
Announcing py2wasm: A Python to Wasm compilerExploring Python packages with Oven and PyPI BrowserPyCharm Local LLMGoogle shedding Python devs (at least in the US).ExtrasJokeWatch on YouTubeAbout the show
Sponsored by ScoutAPM: pythonbytes.fm/scout
Connect with the hosts
Michael: @[email protected]: @[email protected]: @[email protected]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.
Finally, if you want an artisanal, hand-crafted digest of every week of
the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Michael #1: Announcing py2wasm: A Python to Wasm compiler
py2wasm converts your Python programs to WebAssembly, running them at 3x faster speedsthanks to NuitkaBrian #2: Exploring Python packages with Oven and PyPI Browser
pypi.org is great, but there are some handy alternativesOven Shows how to install stuff with pip, pdm, rye, and poetrySimilar meta and description as PyPIIncludes README.md view (no tables yet, though)Nice listing of versionsAbility to look at what files are in wheels and tarballs (very cool) Can deploy yourself. Node/Remix app.Really slick.PyPI BrowserView versionsView wheel and tarball contents.Metadata and contents.No README viewIs a Starlette app that you can deploy on your on with a private registry. So thatâs cool.Michael #3: PyCharm Local LLM
Pretty awesome full line completer based on a local LLM for PyCharmRequires PyCharm ProfessionalAn example, given this partial function in Flask:@blueprint.get('/listing')def listing(): videos = video_service.all_videos()Typing ret â
That is, typing ret autocompletes to:
return flask.render_template('home/listing.html', videos=videos)Which is pretty miraculous, and correct.
Brian #4: Google shedding Python devs (at least in the US).
Google lays off staff from Flutter, Dart and Python teams weeks before its developer conference - techcrunchPython, Flutter teams latest on the Google chopping block - The RegisterâDespite Alphabet last week reporting a 57 percent year-on-year jump in net profit to $23.66 billion for calendar Q1, more roles are being expunged as the mega-corp cracks down on costs.ââAs for the Python team, the current positions have reportedly been "reduced" in favor of a new team based in Munich.âMK: Related and timely: How one power-hungry leader destroyed Google searchExtras
Brian:
Python Gotcha: strip, lstrip, rstrip can remove more than expectedReminder: You probably want .removesuffix() and .removeprefix()Michael:
Using Llama3 in LMStudioJoke: Broken System
-
Topics covered in this episode:
NumFOCUS concernsleaping pytest debugger llmExtra, Extra, Extra,PyPI has completed its first security auditExtrasJokeWatch on YouTubeAbout the show
Sponsored by us! Support our work through:
Our courses at Talk Python TrainingThe Complete pytest CoursePatreon SupportersConnect with the hosts
Michael: @[email protected]: @[email protected]: @[email protected]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.
Finally, if you want an artisanal, hand-crafted digest of every week of
the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Brian #1: NumFOCUS concerns
Suggested by Pamphile RoyWrite up of the current challenges faced by NumFOCUS, by Paul Ivanov (one of the OG of Scientific Python: Jupyter, Matplotlib, etc.)Struggling to meet the needs of sponsored and affiliated projects.In February, NumFOCUS announced it is moving in a new direction.NumFOCUS initiated an effort to run an election for open board seats and proposed changing its governance structure.Some projects are considering and actively pursuing alternative venues for fiscal sponsorship.Quite a bit more detail and discussion in the article.NumFOCUS covers a lot of projectsNumPy, Matplotlib, pandas, Jupyter, SciPy, Astropy, Bokeh, Dask, Conda, and so many more.Michael #2: leaping pytest debugger llm
You can ask Leaping questions like:Why am I not hitting function x?Why was variable y set to this value?What was the value of variable x at this point?What changes can I make to this code to make this test pass?Brian #3: Extra, Extra, Extra,
2024 Developer Summit Also suggested by Pamphile, related to Scientific PythonThe Second Scientific Python Developer Summit , June 3-5, Seattle, WALots of great work came out of the First Summit in 2023pytest-regex - Use regexs to specify tests to runCame out of the â23 summitIâm not sure if Iâm super happy about this or a little afraid that I probably could use this.Still, cool that itâs here.Cool short example of using __init__ and __call__ to hand-roll a decorator.ruff got fasterMichael #4: PyPI has completed its first security audit
Trail of Bits spent a total of 10 engineer-weeks of effort identifying issues, presenting those findings to the PyPI team, and assisting us as we remediated the findings.Scope: The audit was focused on "Warehouse", the open-source codebase that powers pypi.orgAs a result of the audit, Trail of Bits detailed 29 different advisories discovered across both codebases. When evaluating severity level of each advisory, 14 were categorized as "informational", 6 as "low", 8 as "medium" and zero as "high".Extras
Brian:
pytest course community to try out Podia Communities.Anyone have a podia community running strong now? If so, let me know through Mastodon: @[email protected] to join the community when itâs up and running?Same. Or join our our friends of the show list, and read our newsletter. Iâll be sure to drop a note in there when itâs ready.Michael:
VS Code AMA @ Talk Python [video]Gunicorn CVETalk submissions are now open for both remote and in-person talks at the 2024 PyConZA? The conference will be held on 3 and 4 October 2024 in Cape Town, South Africa. Details are on za.pycon.org.FlaskCon 2024 will be happening Friday, May 17 inside PyCon US 2024. Call for proposals are now live!Joke: Debugging with your eyes
-
Topics covered in this episode:
How to Set Up Pre-Commit Hooks A step-by-step guide to installing and configuring pre-commit hooks on your project.difftasticQuartoconstableExtrasJokeWatch on YouTubeAbout the show
Sponsored by us! Support our work through:
Our courses at Talk Python TrainingThe Complete pytest CoursePatreon SupportersConnect with the hosts
Michael: @[email protected]: @[email protected]: @[email protected]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.
Finally, if you want an artisanal, hand-crafted digest of every week of
the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Michael #1: How to Set Up Pre-Commit Hooks A step-by-step guide to installing and configuring pre-commit hooks on your project.
by Stefanie MolinPre-commit hooks are code checks that run as part of the âpre-commitâ stage of the git commit process. If any of these checks fail, git aborts the commitSometimes, we need to bypass the hooks temporarily. For these instances, we can pass the --no-verify option when we run git commitBrian #2: difftastic
Found this a couple years ago, but really using it a lot now.Excellent structurally diff tool that compares code based on syntax, not line by line.Michael #3: Quarto
via Mathias JohanssonAn open-source scientific and technical publishing systemTransforming a notebook into a pdf / HTML / MS Word / ePub with minimal effort, or even all formats at once.Author using Jupyter notebooks or with plain text markdown in your favorite editor.Write using Pandoc markdown, including equations, citations, crossrefs, figure panels, callouts, advanced layout, and more.Brian #4: constable
âinserts print statements directly into the AST at runtime ââIf you find yourself aimlessly adding print statements while debugging your code, this is for you. !âAdd decorators like @constable.trace('a', 'b') to functions and youâll get nice output showing when and how a and b changed.see also icecream for another fun debugging with print project.Extras
Brian:
pointers being added to the standard libraryA couple weeks old, but still worth coveringGuidoâs take on adding this, "Why the hell not?"Michael:
Python 3.12.3 is outJoke: Hugo SciFi Award
-
Topics covered in this episode:
pacemaker - For controlling time per iteration loop in Python.PyPI suspends new user registration to block malware campaignPython Project-Local Virtualenv Management ReduxPython Edge Workers at CloudflareExtrasJokeWatch on YouTubeAbout the show
Sponsored by us! Support our work through:
Our courses at Talk Python TrainingThe Complete pytest CoursePatreon SupportersConnect with the hosts
Michael: @[email protected]: @[email protected]: @[email protected]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.
Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Brian #1: pacemaker - For controlling time per iteration loop in Python.
Brandon RohrerGood example of a small bit of code made into a small package.With speedups to dependencies, like with uv, for example, I think weâll see more small projects.Cool stuffGreat README, including quirks that need to be understood by users. âIf the pacemaker experiences a delay, it will allow faster iterations to try to catch up. Heads up: because of this, any individual iteration might end up being much shorter than suggested by the pacemaker's target rate.âNice use of time.monotonic()deltas are guaranteed to never go back in time regardless of what adjustments are made to the system clock.Watch out forpip install pacemaker-liteNOT pacemakerpacemaker is taken by a package named PaceMaker with a repo named pace-maker, that hasnât been updated in 3 years. Not sure if itâs alive. No tests (yet). Iâm sure theyâre coming. ;)Seriously though, Brandon says this is âa glorified snippetâ. And I love the use of packaging to encapsulate shared code. Realistically, small snippet like packages have functionality thatâs probably going to be tested by end user code.And even if there are tests, users should test the functionality they are depending on.Michael #2: PyPI suspends new user registration to block malware campaign
Incident Report for Python InfrastructurePyPi Is Under Attack: Project Creation and User Registration Suspended â Hereâs the detailsI hate medium, but itâs the best details Iâve found so farBrian #3: Python Project-Local Virtualenv Management Redux
HynekConcise writeup of how Hynek uses various tools for dealing with environmentsCovers (paren notes are from Brian)In project .venv directoriesdirenv for handling .envrc files per project (time for me to try this again)uv for pip and pip-compile functionalityInstalling Python via python.orgUsing a .python-version-default file (Iâll need to play with this a bit)Works with GH Action setup-python. (ok. thatâs cool)Some fish shell scriptingBonus tip on using requires-python in .pyproject.toml and extracting it in GH actions to be able to get the python exe name, and then be able to pass it to Docker and reference it in a Dockerfile. (very cool)Michael #4: Python Edge Workers at Cloudflare
What are edge workers?Based on workers using Pyodide and WebAssemblyThis new support for Python is different from how Workers have historically supported languages beyond JavaScript â in this case, we have directly integrated a Python implementation into workerd, the open-source Workers runtime.Python Workers can import a subset of popular Python packages including FastAPI, Langchain, numpyCheck out the examples repo.Extras
Michael:
LPython follow up from Brian SkinnFeatured on Python Bytes badgeA little downtime, thanks for the understandingWe were rocking a 99.98% uptime until then. :)Joke:
C++ is not safe for people under 18Baseball joke -
Topics covered in this episode:
justpathxz back doorLPythondramaticExtrasJokeWatch on YouTubeAbout the show
Sponsored by ScoutAPM: pythonbytes.fm/scout
Connect with the hosts
Michael: @[email protected]: @[email protected]: @[email protected]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.
Finally, if you want an artisanal, hand-crafted digest of every week of
the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Michael #1: justpath
Inspect and refine PATH environment variable on both Windows and Linux.Raw, count, duplicates, invalids, corrections, excellent stuff.Check out the videoBrian #2: xz back door
In case you kinda heard about this, but not really.Very short version: A Microsoft engineer noticed a performance problem with ssh and tracked it to a particular version update of xz.Further investigations found a multi-year installation of a fairly complex back door into the xz by a new-ish contributor. But still contributing over several years. First commit in early 2022.The problem is caught. But if it had succeeded, it would have been bad.Part of the issue of how this happened is due to having one primary maintainer on a very widely used tool included in tons-o-Linux distributions.Some useful articlesEverything I Know About the XZ Backdoor - Evan Boehs - recommended readDonât think your affected? Think again if you use homebrew, for example:Update and upgrade Homebrew and xz versionsNotesOpen source maintenance burnout is realLots of open source projects are maintained by unpaid individuals for long periods of time.Multi-year sneakiness and social bullying is pretty hard to defend against.Handing off projects to another primary maintainer has to be doable.But now I think we need better tools to vet contributors. Maybe? Or would that just suppress contributions?One option to help with burnout: JGMM, Just Give Maintainers Money: Software Needs To Be More Expensive - GlyphMichael #3: LPython
LPython aggressively optimizes type-annotated Python code. It has several backends, including LLVM, C, C++, and WASM. LPythonâs primary tenet is speed.Play with the wasm version here: dev.lpython.orgStill in alpha, so keep that in mind.Brian #4: dramatic
Trey HunnerMore drama in the software world. This time in the Python. Actually, this is just a fun utility to make your Python output more dramatic.More fun output with terminaltexteffectssuggested by AllanExtras
Brian:
Textual how has a new inline feature in the new release.Michael:
My keynote talk is out: The State of Python in 2024Have you browsed your github feed lately?3.10, 3.9, 3.8 security updatesJoke: Definition of terms
-
Topics covered in this episode:
đ€ On Robots.txtniquestsEvery dunder method in PythonLockboxExtrasJokeWatch on YouTubeAbout the show
Sponsored by ScoutAPM: pythonbytes.fm/scout
Connect with the hosts
Michael: @[email protected]: @[email protected]: @[email protected]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: đ€ On Robots.txt
Jeff TriplettâIn theory, this file helps control what search engines and AI scrapers are allowed to visit, but I need more confidence in its effectiveness in the post-AI apocalyptic world.âResources to get startedBlock the Bots that Feed âAIâ Models by Scraping Your WebsiteGo ahead and block AI web crawlersDark VisitorsDjangoAdd robots.txt to a Django websiteHow to add a robots.txt to your Django siteHugoHugo robots.txtPodcast questions:Should content creators block AI from our work?Shouldât we set up a standard way to do this?I still havenât found a way to block GitHub repositories. Is there a way?Licensing is one thing (not easy), but I donât think any bots respect any protocol for repos.Michael #2: niquests
Requests but with HTTP/3, HTTP/2, Multiplexed Connections, System CAs, Certificate Revocation, DNS over HTTPS / TLS / QUIC or UDP, Async, DNSSEC, and (much) pain removed!Niquests is a simple, yet elegant, HTTP library. It is a drop-in replacement for Requests, which is under feature freeze.See why you should switch: Read about 10 reasons whyBrian #3: Every dunder method in Python
Trey HunnerSure, thereâs __repr__(), __str__(), and __init__(), but how about dunder methods for:Equality and hashabilityOrderabilityType conversions and formattingContext managersContainers and collectionsCallabilityArithmetic operators⊠and so much more ⊠even a cheat sheet.Michael #4: Lockbox
Lockbox is a forward proxy for making third party API calls.Why? Automation or workflow platforms like Zapier and IFTTT allow "webhook" actions for interacting with third party APIs.They require you to provide your third party API keys so they can act on your behalf. You are trusting them to keep your API keys safe, and that they do not misuse them.How Lockbox helps: When a workflow platform needs to make a third party API call on your behalf, it makes a Lockbox API call instead. Lockbox makes the call to the third party API, and returns the result to the workflow platform.Extras
Brian:
Django: Join the community on Mastodon - Adam JohnsonNo maintenance intended - Sent in from Kim van WykMichael:
US sues AppleGood video on pluses and minusesThe hot water just the day before [and this one]https://9to5mac.com/2024/03/25/app-store-proposals-rejected/ PyPI Support Specialist jobVS Code AMA, please submit your question here PyData Eindhoven 2024 has a date and open CFPJoke: Windows Certified
-
Topics covered in this episode:
pycountryDoes Python have pointers?ingestrMake your terminal niceExtrasJokeWatch on YouTubeAbout the show
Sponsored by ScoutAPM: pythonbytes.fm/scout
Connect with the hosts
Michael: @[email protected]: @[email protected]: @[email protected]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: pycountry
A Python library to access ISO country, subdivision, language, currency and script definitions and their translations.pycountry provides the ISO databases for the standards:639-3 Languages3166 Codes for representation of names of countries and their subdivisions3166-1 Countries3166-3 Deleted countries3166-2 Subdivisions of countries4217 Currencies15924 ScriptsBrian #2: Does Python have pointers?
Ned BatchelderTurns out, this is really the description of âwhatâs a variable in Python?â that helps to make sense of the âvariables as namesâ model in Python, especially for people coming from languages that use pointers a lot.You can use id() to find out what a variable points toYou just canât do the reverse of access it given an id.Thereâs no âdereferenceâ operator.See also Python Names and Values, also by NedShould be required reading/viewing for all Python curriculum.Michael #3: ingestr
ingestr is a command-line application that allows ingesting or copying data from any source into any destination database.Works on both MongoDB and Postgres and many more. incremental loading: append, merge or delete+insertBrian #4: Make your terminal nice
David LordDavidâs switched to Fish and StarshipI tried switching to Fish several times, and I guess Iâm good with zsh.Although I admire the brave comic sans motto: âFinally, a command line shell for the 90sâBut Iâm finally ready for Starship, and it takes almost no time to set upPlus itâs fast. (Has it always been Rust?)Extras
Brian:
Doing some groundwork for a SaaS project, using SaaS PegasusI just talked with Cory from Pegasus for an upcoming PythonTest episodeI havenât decided whether to save up SaaS episodes for one big series, or spread them out.But mostly Iâm excited to get my project started.Michael:
Excellent video about âcloud exitâuv - The Next Evolution in Python Packages?Python 3.13 a5Targetâs Open Source Fund via Pat DeckerJoke: Anti-social engineer
-
Topics covered in this episode:
6 ways to improve the architecture of your Python project (using import-linter)MountaineerWhy Python's Integer Division FloorsHatchetExtrasJokeSee the full show notes for this episode on the website at pythonbytes.fm/374 -
Topics covered in this episode:
zoxideSmart CLIs with TyperPython recommended officially by the US GovernmentTextual tutorials at Mouse vs PythonExtrasJokeSee the full show notes for this episode on the website at pythonbytes.fm/373 -
Topics covered in this episode:
uv: Python packaging in RustjptermEverything You Can Do with Python's textwrap ModuleHTML FirstExtrasJokeSee the full show notes for this episode on the website at pythonbytes.fm/372 -
Topics covered in this episode:
AppleCrateOne way to package Python code right nowFlask8 but why?Extra, Extra, ExtraExtrasJokeSee the full show notes for this episode on the website at pythonbytes.fm/371 -
Topics covered in this episode:
DokkuSummary of Major Changes Between Python VersionsHow to check Internet Speed via Terminal? speedtest-cliBlogs: We all should blog moreExtrasJokeSee the full show notes for this episode on the website at pythonbytes.fm/370 -
Topics covered in this episode:
Granianpytest 8 is hereAssorted Docker GoodiesNew GitHub Copilot Research Finds 'Downward Pressure on Code Quality'ExtrasJokeSee the full show notes for this episode on the website at pythonbytes.fm/369 -
Topics covered in this episode:
Syntax Error #11: Debugging Pythonumami and umami-analyticspytest-suite-timeoutListmonk and (py) listmonkExtrasJokeSee the full show notes for this episode on the website at pythonbytes.fm/368 -
Topics covered in this episode:
Leaving the cloudPEP 723 - Inline script metadataFlet for Androidharlequin: The SQL IDE for Your Terminal.ExtrasJokeSee the full show notes for this episode on the website at pythonbytes.fm/367 -
Topics covered in this episode:
Python 3.13 gets a JITUniDep - Unified Conda and Pip Dependency ManagementDonât Start Pull Requests from Your Main Branchinstld: The simplest package managementExtrasJokeSee the full show notes for this episode on the website at pythonbytes.fm/366 - Laat meer zien