Issue #608 (Dec. 19, 2023)

#608 – DECEMBER 19, 2023

Build a Hangman Game With Python and PySimpleGUI

In this step-by-step tutorial, you’ll learn how to write the game of hangman in Python with a PySimpleGUI-based interface. You’ll see how to structure the game, build its GUI, and program the game’s logic and rules.
REAL PYTHON

Why if TYPE_CHECKING?

“Typechecking is brittle yet important”, learn more about where it works and where it doesn’t and what that might mean for your code.
VICKI BOYKIS

Build Invincible Apps With Temporal’s Python SDK

Get an introduction to Temporal’s Python SDK by walking through our easy, free tutorials. Learn how to build Temporal applications using Python, including building a data pipeline Workflow and a subscription Workflow. Get started here →
TEMPORAL sponsor

Real-World match/case

The match statement was added in Python 3.10. This article covers a real-world example use case and shows its power.
NED BATCHELDER

Call for Proposals: Pycascades-2024

PRETALX.COM

Python Memory-Safe Says Latest CISA Recommendations

SETH LARSON

Python 3.11.7 Released

CPYTHON DEV BLOG

Python Jobs

Senior Python Architect and Tech Lead (America)

Six Feet Up

Software Engineer – Intern (Summer 2024) (Dallas, TX, USA)

Causeway Capital Management

Python Tutorial Editor (Anywhere)

Real Python

More Python Jobs >>>

Articles & Tutorials

Getting the First Match From a Python List or Iterable

In this video course, you’ll learn about the best ways to get the first match from a Python list or iterable. You’ll look into two different strategies, for loops and generators, and compare their performance. Then you’ll finish up by creating a reusable function for all your first matching needs.
REAL PYTHON course

Pytest Daemon: 10X Local Test Iteration Speed

Discord has a large Python monolith with lots of imports, which now takes 13 seconds to start up. On the server that’s not a problem but to run a test it is. Ruby’s solution is to have a daemon that hot loads a test on a process that already has the imports completed.
RUBY FEINSTEIN

5 Ways to Flatten a List of Lists

Flattening a list-of-lists is the process of taking each of the inner lists’ contents and putting them together in a single list. There are several ways of attacking this problem in Python, and this article shows 5 methods ranked from worst to best.
RODRIGO GIRÃO SERRÃO

Django: Sanitize Incoming HTML Fragments With nh3

Allowing users to input HTML in comments or blog posts is problematic, it can lead to exploits on your site. For years the Django community used django-bleach, but since its deprecation, Adam has been using nh3, a Rust-based HTML sanitizer.
ADAM JOHNSON

Hide Those Terminal Secrets!

Michael Kennedy of Talk Python fame does a lot of screen casts, and one of his concerns is accidentally exposing data from a terminal when doing so. This quick article covers the Warp terminal’s “redaction” feature for just this situation.
MICHAEL KENNEDY

How to Deploy Reflex Apps to Fly.io

Reflex is a recent entrant to the world of Python web frameworks. Fly.io is a hosting provider that lets you host your applications in production really quickly. This articles shows you how to deploy Reflex applications on Fly.io.
SIDDHANT GOEL • Shared by Siddhant Goel

Serialize Your Data With Python

In this in-depth tutorial, you’ll explore the world of data serialization in Python. You’ll compare and use different data serialization formats, serialize Python objects and executable code, and handle HTTP message payloads.
REAL PYTHON

You Are Never Taught How to Build Quality Software

Learning how to build quality software is not part of computer science education. How do we learn it? See also the associated HN discussion.
FLORIAN BELLMANN

Use “pip install” Safely

The correct extra arguments to pip install can make it less risky to execute. Learn what arguments James suggests and how to use each of them.
JAMES BENNETT

Use Unittest’s subtest Helper

When iterating over multiple arguments in testing a function, the subtest feature of the unittest module helps you track which part failed.
JAMES BENNETT

Create a Subscription SaaS Application With Django and Stripe

All the technical details of creating a subscription SaaS business using the Python-based Django web framework and Stripe payment processor.
SAAS PEGASUS

The Key to the key Parameter in Python

A parameter named key is present in several Python functions, such as sorted(). This article explores what it is and how to use it.
STEPHEN GRUPPETTA • Shared by Stephen Gruppetta

CPython Dynamic Dispatch Internals

Just how many lines of C does it take to execute a + b in Python? This article goes into detail about the CPython internals.
ABHINAV UPADHYAY

Projects & Code

python-skyfield: Elegant Astronomy for Python

GITHUB.COM/SKYFIELDERS

Above: Invisible Network Protocol Sniffer

GITHUB.COM/WEARECASTER

mlx: MLX: An Array Framework for Apple Silicon

GITHUB.COM/ML-EXPLORE

The Eval Game: Test Your Python Skills

OSKAERIK.GITHUB.IO • Shared by Oskar Eriksson

kanban-python: Kanban Terminal App Written in Python

GITHUB.COM/ZALOOG

Events

Weekly Real Python Office Hours Q&A (Virtual)

December 20, 2023
REALPYTHON.COM

PyData Bristol Meetup

December 21, 2023
MEETUP.COM

PyLadies Dublin

December 21, 2023
PYLADIES.COM

Python Sheffield

December 26, 2023
GOOGLE.COM

PyCon Somalia 2023

December 27 to December 29, 2023
PYCON.ORG.SO

Happy Pythoning!
This was PyCoder’s Weekly Issue #608.
View in Browser »

[ Subscribe to 🐍 PyCoder’s Weekly 💌 – Get the best Python news, articles, and tutorials delivered to your inbox once a week >> Click here to learn more ]

Source:: PyCoder’s