Issue #596

SOLID OOP, Code Metrics, Speed Up Your Code, and More

Sept. 26, 2023

SOLID OOP, Code Metrics, Speed Up Your Code, and More
#596 – SEPTEMBER 26, 2023 VIEW IN BROWSER
The PyCoder’s Weekly Logo
Design and Guidance: Object-Oriented Programming in Python
In this video course, you’ll learn about the SOLID principles, which are five well-established standards for improving your object-oriented design in Python. By applying these principles, you can create object-oriented code that is more maintainable, extensible, scalable, and testable.
REAL PYTHON course

Learning About Code Metrics in Python With Radon
Radon is a code metrics tool. This article introduces you to it and teaches you how you can improve your code based on its measurements.
MIKE DRISCOLL

You Write Great Python Code but How Do You Know it’s Secure Code
If you’re not a security expert, consider Semgrep. Trusted by Slack, Gitlab, Snowflake, and thousands of engineers, it acts like a security spellchecker for your code. Simply point Semgrep to your code; it identifies vulnerabilities and even checks code dependencies and help you ship secure code →
SEMGREPsponsor

Speeding Up Your Code When Multiple Cores Aren’t an Option
Parallelism isn’t the only answer: often you can optimize low-level code to get significant performance improvements.
ITAMAR TURNER-TRAURING

Django 5.0 Alpha 1 Released
DJANGO SOFTWARE FOUNDATION

Python 3.12.0 Release Candidate 3 Available
CPYTHON DEV BLOG


Articles & Tutorials


How to Catch Multiple Exceptions in Python
In this how-to tutorial, you’ll learn different ways of catching multiple Python exceptions. You’ll review the standard way of using a tuple in the except clause, but also expand your knowledge by exploring some other techniques, such as suppressing exceptions and using exception groups.
REAL PYTHON

78% MNIST Accuracy Using GZIP in Under 10 Lines of Code
MNIST is a collection of hand-written digits that is commonly used to play with classification algorithms. It turns out that some compression mechanisms can double as classification tools. This article covers a bit of why with the added code-golf goal of a small amount of code.
JAKOBS.DEV

Don’t Get Caught by IDOR Vulnerabilities
Are insecure direct object reference (IDOR) threatening your applications? Learn about the types of IDOR vulnerabilities in your Python applications, how to recognize their patterns, and protect your system with Snyk →
SNYK.IOsponsor

Bypassing the GIL for Parallel Processing in Python
In this tutorial, you’ll take a deep dive into parallel processing in Python. You’ll learn about a few traditional and several novel ways of sidestepping the global interpreter lock (GIL) to achieve genuine shared-memory parallelism of your CPU-bound tasks.
REAL PYTHON

Creating a Great Python DevX
This article talks about the different tools you commonly come across as part of the Python development experience. It gives an overview of black, nox, ruff, Mypy, and more, covering why you should use them when you code your own projects.
SCOTT HOUSEMAN

Why Are There So Many Python Dataframes?
Ever wonder why there are so many ways libraries that have Dataframes in Python? This article talks about the different perspectives of the popular toolkits and why they are what they are.
MAHESH VASHISHTHA

The Protocol Class
typing.Protocol enables type checking in a Java-esque interface like mechanism. Using it, you can declare that a duck-typed class conform to a specific protocol. Read on for details.
PEPIJN BAKKER

What Does if __name__ == "__main__" Mean in Python?
In this video course, you’ll learn all about Python’s name-main idiom. You’ll learn what it does in Python, how it works, when to use it, when to avoid it, and how to refer to it.
REAL PYTHON course

Why & How Python Uses Bloom Filters in String Processing
Dive into Python’s clever use of Bloom filters in string APIs for speedier performance. Find out how CPython’s unique implementation makes it more efficient.
ABHINAV UPADHYAY

Simulate the Monty Hall Problem in Python
Write a Python simulation to solve this classic probability puzzle that has stumped mathematicians and Nobel Prize winners!
DATASCHOOL.IO • Shared by Kevin Markham

Death by a Thousand Microservices
The software industry is learning once again that complexity kills and trending back towards monoliths and larger services.
ANDREI TARANCHENKO

How to Test Jupyter Notebooks With Pytest and Nbmake
Tutorial on how to use the pytest plugin nbmake to automate end-to-end testing of notebooks.
SEMAPHORECI.COM • Shared by Larisa Ioana


Projects & Code


Brought to you by Real Python for Teamssponsor
Online Python training created by a community of experts. Give your team the real-world Python skills they need to succeed →

panther: Web Framework for Building Async APIs
GITHUB.COM/ALIRN76

Clientele: Loveable Python API Clients From OpenAPI Schemas
GITHUB.COM/PHALT • Shared by Paul Hallett

mpire: Easy, but Faster Multiprocessing
GITHUB.COM/SYBRENJANSEN

leaky_ledger: A Fake Bank to Practice Finding Vulnerabilities
GITHUB.COM/ZCHTODD

reader: A Python Feed Reader Library
GITHUB.COM/LEMON24 • Shared by Adrian

📆🐍 Upcoming Python Events


Weekly Real Python Office Hours Q&A (Virtual)
September 27, 2023

SPb Python Drinkup
September 28, 2023

PyCon India 2023
September 29 to October 3, 2023

PythOnRio Meetup
September 30, 2023

PyConZA 2023
October 5 to October 7, 2023

PyCon ES Canarias 2023
October 6 to October 9, 2023

Django Day Copenhagen 2023
October 6 to October 7, 2023

DjangoCongress JP 2023
October 7 to October 8, 2023
Happy Pythoning!
Copyright © 2023 PyCoder’s Weekly, All rights reserved.