#231: Go Python, Go!
Published Wed, Apr 28, 2021,
recorded Wed, Apr 28, 2021
Watch the live stream:
About the show
Sponsored by us! Support our work through:
Special guests:
Brian #1: For-Else: A Weird but Useful Feature in Python
- Yang Zhou
- After a
for
loop, you can put anelse
block. - The
else
block only executes when there is nobreak
in the loop. If the loop got all the way to the end, and off the end, theelse
block will run. - First, I’m not used to putting
break
orelse
anywhere in my Python code, so I’m also curious why you’d want to do this. - Yang explains the feature, then talks about 3 scenarios for use:
- Iterate and find items without needing a flag variable.
break
when you find what you are looking for, and theelse
only runs if you didn’t find it.- Help to break out of nested loops
- I’m still confused by this one
- Help to handle exceptions
- Kind of a cool use. try/except in a
for
loop. Have abreak
in theexcept
block. Then theelse
block will be fore code where you know no exceptions were caught.
- Kind of a cool use. try/except in a
- Take away: The first reason wins it for me. I hate it when I feel I need to add a “found” flag to some code.
else
seems cleaner. - Also: Please add comments to
else
blocks. Many people won’t know how they work, so a short explanation can help tons.
Michael #2: Tortoise ORM
- Familiar asyncio ORM for python, built with relations in mind
- I’ve seen this ORM popping up around the async web stories a lot these days
- Similar to Django’s ORM
- Tortoise ORM is supported on CPython >= 3.7 for SQLite, MySQL and PostgreSQL.
- They offer a nice, broad perf comparison on their github page
- Really nice and clean API for ORM things, again on the github page
- Tortoise ORM uses Aerich as database migrations tool
Cecil #3: Faster Python with Go Shared objects
- Leverage Go's standard library and ecosystem in Python
- Language interop is a good for productivity
- Passing data is limited to primitive types
Brian #4: Learn by reading code: Python standard library design decisions explained (for advanced beginners)
- Reading code is a great way to improve your own coding.
- What code should you read?
- If it’s great code, you could improve.
- If it’s scary code, it might not be so good, and might teach you bad practices
- Python stdlib is there and has some interesting features:
- all of the code is available
- PEPs are available so you can read the discussions that went into it while you are reading the code, or before
- This is huge. Most code you’ll find, even within companies, doesn’t have “why we did this” explanations.
- However…
- it is not uniform
- different authors
- some is old, and pythonic was different 10-20 years ago
- lots of code around to preserve backwards compatibility
- So here’s some recommendations:
- statistics : code is simple, well documented, PEP has design decisions and comparisons
- pathlib: good object-oriented example, good comparative study, as you can also read os.path
- dataclasses: extremely well documented, good example of dataclasses
- graphlib: does one thing, an implementation of a topological sort algorithm. no PEP, but an issue with a discussion thread that discusses the API decisions
Related: https://devops.com/learning-curve-computer-programming-languages/
Michael #5: Gradio: Create UIs for prototyping your machine learning model in 3 minutes
- via David Smit
- Quickly create customizable UI components around your models.
- Gradio makes it easy for you to "play around" with your model in your browser
- Drag-and-drop in your own images, pasting your own text, recording your own voice, etc. and seeing what the model outputs.
- Gradio is useful for:
- Creating demos of your machine learning code for clients / collaborators / users
- Getting feedback on model performance from users
- Debugging your model interactively during development
- Interfaces can be easily shared publicly by setting
share=True
in thelaunch()
method.
Cecil #6: Use basketball stats to optimize game play with Visual Studio Code
- Free MS Learn learning path
- Inspired by Space Jam: A New Legacy
- Use tools like Python, Pandas, and Visual Studio Code
- Space Jam: A New Legacy coding workshops
Extras
Michael
- People are liking the zero analytics / perfect privacy score