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.
TIM ANDERSON

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.
DIMA KOTIK

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.
REAL PYTHON course

Texas Instruments To Release New TI-84 Calculator With Python
TI.COM

EuroPython 2021 Call for Proposals Extended Until May 16
EUROPYTHON.EU

Pylance Is Now the Default Python Language Server for VS Code
MICROSOFT.COM

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 →
REAL PYTHONsponsor


Discussions


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!
REDDIT

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.
REDDIT


Python Jobs


Sr Full Stack Engineer (USA)
YONDER

Software Engineer (New York, NY, USA)
TRUVERIS

PL/SQL Developer with Python (Remote)
DOTCOM TEAM, LLC

Senior Software Engineer (Allegany, OR, USA)
ADDISON GROUP

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.
REAL PYTHON

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 →
CRUNCHY DATAsponsor

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.
REAL PYTHON

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.
SWIMMsponsor

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.
VICTOR SHEPELEV


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
GITHUB.COM/INDUCER

cinder: Instagram’s Performance Oriented Fork of CPython
GITHUB.COM/FACEBOOKINCUBATOR

zxpy: Shell Scripts Made Simple
GITHUB.COM/TUSHARSADHWANI

typeshed: Collection of Library Stubs for Python, With Static Types
GITHUB.COM/PYTHON

flower: Real-Time Monitor and Web Admin for Celery Distributed Task Queue
GITHUB.COM/MHER

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.