Issue #338


Oct. 16, 2018

Change is in the air, bolt-ons vs built-ins, and much more.

Issue #338: Change

Your weekly dose of all things Python.

Hi Everyone,

We started this newsletter in February of 2012, and been a little over 6 years now, 338 issues, yearly roundups, conferences talks and more!

We started Pycoder's to create the Python resource we wished already existed and its really been an awesome ride even since that very first issue.

Today is the last issue for us as part of Pycoder's. For the last couple of months, we have been working with Dan Bader of and Real Python fame to take over.

We leave feeling proud we created the newsletter we set out to create, and are very excited to be passing the reigns to a person who we can see steward Pycoder’s Weekly through to the next 6 years and more.

Dan has been blogging at "Improve Your Python Skills" for quite awhile and we have been featuring his excellent work on the newsletter for sometime now. So rest assured he has keen eye for content and will be continuing the highly curated content from here on out!

We are hoping to bring some of what we did here with Python to the Home Automation, homelab, home hacking community with our new project Homehackers.

Thanks again for being with us for all these years!

— Mahdi (@myusuf3) and Mike (@mgrouchy)

~ ~ ~


Hey there,

This is Dan, the new owner and curator-in-chief of Pycoder's 👋

I just want to say this:

I love Pycoder's! It's always been one of my favourite Python resources, and I still remember how giddy I felt whenever I saw one of my posts featured here or on the @pycoders Twitter account.

Huge thanks to Mahdi and Mike for creating this amazing community and growing it over half a decade! Honestly, my Python journey wouldn't be the same without you guys :)

I'm positively thrilled to take Pycoder's into 2019 and I'm already working on a bunch of improvements, like a new website and a searchable issue archive.

Other than that, you can expect continuity from your Pycoder's subscription—one weekly email chock full of the latest Python news, articles, tutorials, and events.

See you next week and...Happy Pythoning!

— Dan Bader (@dbader_org)

P.S. What's your #1 idea or suggestion for making Pycoder's Weekly even better? Just hit reply and let me know. Cheers!


Python 3.7.1rc2 Changelog
Python 3.7.1 is due to be released soon. Read the release candidate changelog to see what's coming down the pike. No substantial new features this time but mainly fixes for issues discovered since 3.7.0 was released.

Python in Visual Studio Code September 2018 Release
Lots of new features, like automatic environment activation in the terminal, debugger supports Python 3.7's "breakpoint()" built-in now, and more.

PSF Fellow Members for Q3 2018
The Python Software Foundation announces its Fellow Members for the 3rd quarter of 2018. Fellows are Pythonistas recognized by the PSF as a thank you for their contributions to the community. Congrats folks!
Python Software Foundation

Anaconda Distribution Updated to Python 3.7.0
Get your dataclasses support now!


What Software and Tools Do You Use to Teach Python?
Super interesting Twitter thread!
Nina Zakharenko

Overwhelmed by the Simplicity of Python. Any Recommendation?
Moving from C/Java to Python and getting to the point where you're writing "Pythonic" code can be difficult—for reasons you might not expect. Interesting discussion.

SHA-256 Python Implementation in One Line (Lambda)
We've clearly gone "full Perl" here...

Is There an Easier Way to Create Arrays?
Or: How to split a Python string into a list of words.


Senior Software Engineer - Full Stack (Raleigh, North Carolina)
Posted by SugarCRM
Head of Engineering (Remote, Work from Anywhere)
Posted by FindKeep.Love
Django Developer (Remote)
Posted by Walk AS One
Senior Software Engineer (Los Angeles, California)
Posted by GoodRx
Lead Developer Python/Django (Washington, District of Columbia)
Posted by ihateironing
See More Jobs >> 


boltons: Like Builtins, but Boltons
Constructs/recipes/snippets that would be handy in the standard library. Interesting grab bag of useful functionality: Atomic file saving, exponential backoff functionality (including jitter), recursive data structure iteration and merging, chunked and windowed iteration, etc. Check it out!
Mahmoud Hashemi

wily: A Python Application for Tracking, Reporting on Timing and Complexity in Tests
Wily uses git to go through each revision (commit) in a branch and run complexity and code-analysis metrics over the code. You can use this to limit your code or report on trends for complexity, length etc.
Anthony Shaw

pre-commit: A Framework for Managing and Maintaining Multi-Language Pre-Commit Hooks
Git hook scripts are useful for identifying simple issues before submission to code review. pre-commit simplifies writing these scripts in a maintainable and shareable way.

BuildStream is a framework for modelling build pipelines in a declarative YAML format, written in Python. It supports multiple build-systems, like autotools, cmake, distutils, ..., and can create outputs in a range of formats, like debian packages, for multiple platforms and chipsets.

sshuttle: Python Proxy Server
Transparent proxy server written in Python that works as a "poor man's VPN." Forwards over SSH and doesn't require root permissions. Works on Linux and macOS.

python_chip16: A Full Implementation of the "Chip16" Virtual Machine
An emulation project helping programmers write their first emulator, using a well-defined, relatively simple VM specification. It also doubles as a cool toy platform to write little games and demos for.
Leandro Moreira


Python's New Package Landscape
Great review of Python packaging in 2018. Everything you need to know about PEPs 517/518, pyproject.toml, Pipenv, setuptools, and—of course—pip. Recommended reading for every Pythonista.
Andrew Pinkham

Python's range() Function
A guide to Python's "range()" built-in. Get a solid understanding of how to use it, how its implementation differs in Python 3 vs 2, and how you can work around some of its limitations.

The Search for the Perfect Pytest GUI
The story of how Brian Okken searches for a good user interface for running and debugging automated Python tests.

What's New in Python 3.7 and Beyond
Mike Kennedy interviews Anthony Shaw to talk about what's cool and new about the recently released CPython 3.7, and what's coming in 3.8.

Building a Game in Python at PyWeek With Daniel Pope
With the PyWeek "make a game in a week" challenge opening again soon this interview is a great way to learn more.

How to Add User Authentication to Flask Apps With Okta
Nice step-by-step tutorial with screenshots.

Asterisks in Python: What They Are and How to Use Them
The * and ** operators have grown in ability over the years and this post discusses all the ways that you can currently use these operators and noting which uses only work in modern versions of Python.
Trey Hunner

How to Work Out the Missing Dependencies for a Python Package
If you’ve ever been in the situation where you’ve installed a compiled Python library but importing it fails, this article helps you sort out missing shared library dependencies.

Clarifying PEP 518 (a.k.a. pyproject.toml)
We've covered this before but this is worth revisiting. With tools like Poetry and Black now using pyproject.toml as their config mechanism that's something we're all likely to see more and more.
Brett Cannon

Python Mock Cookbook
A nice refresher with short-and-sweet recipes for Python's "mock" library. Worth a read!
Chase Seibert

Persistent Virtualenv Environment Variables With python-dotenv
How to store things like secret API keys in OS environment variables by loading them from a local ".env" text file.

Using Django in Visual Studio Code
Python Django tutorial showing IntelliSense, debugging, and code navigation support in the Visual Studio Code editor.

Understanding Lamport Timestamps With Python's multiprocessing Library
Lamport Timestamps can be used to order events in a distributed system by functioning as a "logical clock." This article goes into a lot of detail and has Python examples.
Steven Van Dorpe

Linkifying Text With Bleach and Domain Checks
How to detect URLs in plaintext input and convert them into HTML links using Python. The interesting bit here is that this code actually validates if the URL works.
Peter Bengtsson

A Neural Network in 20 Lines of Python
"Deep Learning libraries such as TensorFlow and Keras makes it easy to build deep nets without fully understanding the inner workings of a Neural Network, I find that it’s beneficial for aspiring data scientist to gain a deeper understanding of Neural Networks."
James Loy


DjangoCon US 2018
October 14–19, 2018 in San Diego, CA United States

PyCascades 2019 (CFP Closing Soon)
PyCascades is a new regional Python conference in the Pacific Northwest. The call for papers is closing in a few days, so be sure to get your proposals in before then.
PyCascades Conference

PyWeek October 2018
PyWeek is a "make a working game in Python in a week" challenge that starts October 21st. Get Psyched!

PyCon Pakistan 2018
November 17–18, 2018 in Lahore, Punjab, Pakistan

PyCon.DE 2018
October 24–28, 2018 in Karlsruhe, Germany
Read Later
Forward to Friend
Copyright © 2018 PyCoder’s Weekly, All rights reserved.