Issue #495

GIL-Free CPython Proof of Concept, Type Hints Case Study, Using @property, and More

Oct. 19, 2021

GIL-Free CPython Proof of Concept, Type Hints Case Study, Using @property, and More
#495 – OCTOBER 19, 2021 VIEW IN BROWSER
The PyCoder’s Weekly Logo
No-GIL Fork of CPython
This is a proof-of-concept implementation of CPython that supports multithreading without the global interpreter lock (GIL), from Facebook research. An overview of the design is described in the Python Multithreading without the GIL Google doc. Also see the related discussions on LWN and Hacker News.
GITHUB.COM/COLESBURY • Shared by Henry Schreiner

Why You Shouldn’t Invoke setup.py Directly
“The setuptools team no longer wants to be in the business of providing a command line interface and is actively working to become just a library for building packages. What you should do instead depends on your use case, but if you want some basic rules of thumb, there is a table in the summary section.”
PAUL GANSSLE

Data Elixir: Data Science Newsletter
Data Elixir is an email newsletter that keeps you on top of the tools and trends in Data Science. Covers machine learning, data visualization, analytics, and strategy. Curated weekly with top picks from around the web →
DATA ELIXIRsponsor

Where Does All the Effort Go? Looking at Python Core Developer Activity
“One of the tasks given me by the Python Software Foundation as part of the Developer in Residence job was to look at the state of CPython as an active software development project. What are people working on? Which standard libraries require most work? Who are the active experts behind which libraries?”
ŁUKASZ LANGA

Cool New Features in Python 3.10
In this course, you’ll explore some of the coolest and most useful features in Python 3.10. You’ll appreciate more user-friendly error messages, learn about how you can handle complicated data structures with structural pattern matching, and explore new enhancements to Python’s type system.
REAL PYTHON course

PyCascades 2022 CFP Closes on Sunday (Oct 24)
PYCASCADES CONFERENCE

Announcing PSF Fellow Members for Q3 2021
PYTHON SOFTWARE FOUNDATION

Join the Python Developers Survey 2021
PYTHON SOFTWARE FOUNDATION

Psycopg 3.0 Released
PSYCOPG.ORG

PyPy 7.3.6 Released
PYPY.ORG


Python Jobs


Senior Python Engineer @ Moody's AI & ML Center of Excellence (New York, NY, USA)
MOODY'S

Senior Software Engineer (Washington D.C., DC, USA)
QUORUM

Senior Backend Software Engineer (Anywhere)
CLAY

Full Stack Developer (Anywhere)
LEVEL 12

Software Engineer (Anywhere)
1POINT21 INTERACTIVE

More Python Jobs >>>


Articles & Tutorials


Tests Aren’t Enough: Case Study After Adding Type Hints to urllib3
“Since Python 3.5 was released in 2015 including PEP 484 and the typing module type hints have grown from a nice-to-have to an expectation for popular packages. To fulfill this expectation our team has committed to shipping type hints for the v2.0 milestone. What we didn’t realize is the amount of value we’d derive from this project in terms of code correctness.”
SETH MICHAEL LARSON

Welcoming the CPython Developer in Residence
Earlier this year, the Python Software Foundation announced the creation of the Developer in Residence role. The first Visionary Sponsors of the PSF have provided funding for this new role for one year. What development responsibilities does this job address? This week on the show, Łukasz Langa talks about becoming the first CPython Developer in Residence.
REAL PYTHON podcast

Accelerate Your Python Apps With Apache Cassandra™ NoSQL. Register for an Astra DB Demo
Scale data for your Django, Flask, FastAPI apps with our multi-cloud, serverless DBaaS–built on Apache Cassandra™. Painless APIs, free for developers. Get 80 Gigabytes of Storage Free Every Month. Explore Astra DB now →
DATASTAXsponsor

Python Assignment Expressions and Using the Walrus Operator
In this course, you’ll learn about assignment expressions and the walrus operator. The biggest change in Python 3.8 was the inclusion of the := operator, which you can use to assign variables in the middle of expressions. You’ll see several examples of how to take advantage of this new feature.
REAL PYTHON course

A Roadmap to XML Parsers in Python
In this tutorial, you’ll learn what XML parsers are available in Python and how to pick the right parsing model for your specific use case. You’ll explore Python’s built-in parsers as well as major third-party libraries.
REAL PYTHON

How APT Does Its Fancy Progress Bar
“Today while running an apt full-upgrade I asked myself how apt does this nice progress bar stuck at the bottom line while still writing scrolling text.” Python example code included.
JULIEN PALARD

Configuration Is an API, Not an SDK
Guidelines for config management in general and for Python apps in particular. Why “Configuration is just another API of your app” might be a good philosophy to adopt.
HERNAN LOZANO • Shared by Hernan Lozano

Python’s property(): Add Managed Attributes to Your Classes
In this step-by-step tutorial, you’ll learn how to create managed attributes, also known as properties, using Python’s property() in your custom classes.
REAL PYTHON

Receive a $5 Donation to the OSS of Your Choice When You Deploy Your Free Scout APM Trial Today
Scout is performance monitoring designed to provide the data insights necessary for any dev to become a performance pro. Find and fix observability issues before your customers notice by connecting your error reporting and APM data on one platform.
SCOUT APMsponsor

Pip vs Conda: A Comparison of Python’s Two Packaging Systems
“Python has two commonly used packaging systems, pip and Conda. Learn the differences between them so you can pick the right one for you.”
ITAMAR TURNER-TRAURING

Secure Password Handling in Python
Protect and secure your passwords and credentials in Python with help of these techniques and tips.
MARTIN HEINZ • Shared by Martin Heinz

Understanding np.where()
The NumPy where() function is like a vectorized switch that you can use to combine two arrays.
BEN COOK

Three Tools to Profile a Django App
KRACEKUMAR.COM

More Uses for functools.partial() in Django
ADAM JOHNSON


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 →

kubernetes-client: Official Python Client Library for Kubernetes
GITHUB.COM/KUBERNETES-CLIENT

Lenia: Mathematical Life Forms Simulator
GITHUB.COM/CHAKAZUL

troposphere: Create AWS CloudFormation Descriptions
GITHUB.COM/CLOUDTOOLS

classyconf: Declarative and Extensible Library for Configuration & Code Separation
GITHUB.COM/HERNANTZ

📆🐍 Upcoming Python Events


⋅ Weekly Real Python Office Hours Q&A (Virtual) October 20, 2021

⋅ Inland Empire Pyladies (CA, USA) October 25, 2021

⋅ Introduction to the Python Programming Language (In Persian) October 26, 2021

⋅ Python Sheffield October 26, 2021

⋅ Dominican Republic Python User Group October 26 to October 27, 2021

⋅ PyKla Monthly Meetup October 27, 2021

⋅ Python Meeting Düsseldorf October 27, 2021

⋅ Heidelberg Python Meetup October 27, 2021

⋅ PyData Global 2021 October 28 to October 31, 2021

⋅ deploy by DigitalOcean November 16 to November 17, 2021
Happy Pythoning!
Copyright © 2021 PyCoder’s Weekly, All rights reserved.