Issue #472

The Quest for Faster Python, Performance as the Nemesis of Secure Code, How to Use Stacks and Queues, and More

May 11, 2021

The Quest for Faster Python, Performance as the Nemesis of Secure Code, How to Use Stacks and Queues, and More
#472 – MAY 11, 2021 VIEW IN BROWSER
The PyCoder’s Weekly Logo
The Quest for Faster Python
There seems to be a lot going on in the Python JIT compiler space. Facebook recently open-sourced Instagram’s Cinder runtime, Pyston 2 returned as an open-source project, and the Pyjion project from Microsoft continues to grow. But Python creator Guido van Rossum has suggested that Python developers in need of more performance should consider writing parts of their code as C extensions, or use the PyPy runtime. This article explores Pythons turbulent history with performance optimization.

How Performance Became the Nemesis of the Secure Python Code
While JIT compilers compete for Python performance improvements and some teams rush into asyncio adoption, one has to wonder what the outcome of additional complexity will be. This opinion piece argues that the cost of hurried and potentially unnecessary performance optimization is unstable and insecure code. It’s a good reminder that decisions about project dependencies should be thoroughly researched and made deliberately.

Find Out Why Scout’s a Developer’s Best Friend with a Free 14-Day Trial, no Credit Card Needed!
Scout uses tracing logic to tie bottlenecks to source code so developers can get back to building great products instead of wasting time fixing performance issues. Real-time alerting gives you the insights you need in 4 min or less! Deploy today and we’ll donate $5 to the OSS project of your choice →
SCOUT APMsponsor

Stacks and Queues: Selecting the Ideal Data Structure
Learn about three of Python’s data structures: stacks, queue and priority queues. You’ll look at multiple types and classes for all of these and learn which implementations are best for your specific use cases.

Texas Instruments To Release New TI-84 Calculator With Python

EuroPython 2021 Call for Proposals Extended Until May 16

Pylance Is Now the Default Python Language Server for VS Code

CPython Internals Book: Paperback Copies Now Available
“CPython Internals: Your Guide to the Python 3 Interpreter” is now available as a paperback book. Unlock the inner workings of the Python language, compile the Python interpreter from source code, and participate in the development of CPython. Print copies available at a discounted launch price until the end of the week →


Do You Use the Python Console and the Python Math Libraries as a Calculator?
With Python installed, you’ve got a quick and easy-to-use calculator accessible from any terminal window!

Python Projects on Github That Are Examples of Best Practices and Good Architecture
This Reddit thread is full of GitHub repos that might make for some good code reading.

Python Jobs

Sr Full Stack Engineer

Software Engineer

PL/SQL Developer with Python

Senior Software Engineer

More Python Jobs >>>

Articles & Tutorials

Natural Language Processing With Python’s NLTK Package
In this beginner-friendly tutorial, you’ll take your first steps with Natural Language Processing (NLP) and Python’s Natural Language Toolkit (NLTK). You’ll learn how to process unstructured data in order to be able to analyze it and draw conclusions from it.

Fluent in Django: Get to Know Django Models Better
Django models are the single, definitive source of information about data in a Django application. That means that all the logic about your data should be located in the model—not in a view as too often can be seen. In this article, you’ll get to know Django models better including things like UUID fields, enumeration types, Meta classes, and custom .save() methods.
GIRLTHATLOVESTOCODE • Shared by GirlThatLovesToCode

Crunchy Bridge: Fully Managed Cloud Postgres
Rival IQ needed to evaluate new providers for their 3+ TB Postgres database and chose Crunchy Bridge on AWS for integrating with their Heroku app. The result: performance improvements and better developer workflow with a seamless migration experience. Read the customer success story to learn more →

Asynchronous Tasks With FastAPI and Celery
Many web apps require long-running tasks, such as resizing image thumbnails or generating PDFs. Background tasks allow a web app to continue to process incoming requests while a task is executing. This tutorial walks you through setting up Celery and Redis to handle background tasks in a FastAPI application. You’ll learn how to containerize everything with Docker, save Celery logs to files, and monitor background tasks with Flower.
MICHALE HERMAN • Shared by Michael Herman

Recursion in Python: An Introduction
In this tutorial, you’ll learn about recursion in Python. You’ll see what recursion is, how it works in Python, and under what circumstances you should use it. You’ll finish by exploring several examples of problems that can be solved both recursively and non-recursively.

Make Documentation Continuous for your Engineering Team and DevOps
Swimm gives developers the high-quality, up-to-date documentation they deserve. Creating code-coupled documentation and placing checks within the CI/CD pipeline, provides version controlled documentation. Start Swimming today.

Bite My Shiny, Type-Annotated Library!
If you’re a package maintainer and want to make type annotations available to all users of your library, how can you go about doing this? Just add the type annotations to your library, right? Well, no! Learn how type annotations are handled in package distributions in this short but informative article with links to a number of helpful resources.
JUGMAC00.GITHUB.IO • Shared by Jürgen Gmach

I Forgot How to Spellcheck
Throughout 2020, Victor Shepelev worked on porting the hunspell spellchecker to Python in a project called spylls. In this post he shares his thoughts on spell checking, noting that it is much more difficult than just comparing strings to an established dictionary. While the article is not technical, it’s a great read exploring some of the assumptions made by hunspell and how they fail in the real world.

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 →

pudb: Full-Screen Console Debugger for Python

cinder: Instagram’s Performance Oriented Fork of CPython

zxpy: Shell Scripts Made Simple

typeshed: Collection of Library Stubs for Python, With Static Types

flower: Real-Time Monitor and Web Admin for Celery Distributed Task Queue

reviews: A Terminal UI Dashboard for Monitoring Requests for Code Review
GITHUB.COM/APOCLYPS • Shared by kyle harrison

📆🐍 Upcoming Python Events

Real Python Office Hours (Virtual)
May 12, 2021

PyCon 2021 (Virtual)
May 12 – 18, 2021

DjangoCon Europe 2021 (Virtual)
June 2 – 6, 2021

EuroPython 2021 (Virtual)
July 26 – August 1, 2021

PyCon India 2021
September 17 – 20, 2021
Happy Pythoning!
Copyright © 2021 PyCoder’s Weekly, All rights reserved.