DiscoverPython Bytes#217 Use your cloud SSD for fast, cross-process caching
#217 Use your cloud SSD for fast, cross-process caching

#217 Use your cloud SSD for fast, cross-process caching

Update: 2021-01-19


Sponsored by Linode!

Special guest: Ogi Moore

Watch the live stream on YouTube.

Michael #1: diskcache

  • via Ian Maurer

  • Python disk-backed cache (Django-compatible). Faster than Redis and Memcached. Pure-Python.

  • The cloud-based computing of 2020 puts a premium on memory. Gigabytes of empty space is left on disks as processes vie for memory.

  • Among these processes is Memcached (and sometimes Redis) which is used as a cache.

  • Wouldn't it be nice to leverage empty disk space for caching?

  • Features:

  • Pure-Python

  • Fully Documented

  • Benchmark comparisons (alternatives, Django cache backends)

  • 100% test coverage

  • Hours of stress testing

  • Performance matters

  • Django compatible API

  • Thread-safe and process-safe

  • Supports multiple eviction policies (LRU and LFU included)

  • Keys support "tag" metadata and eviction

  • Developed on Python 3.8

  • Tested on CPython 3.5, 3.6, 3.7, 3.8

  • Tested on Linux, Mac OS X, and Windows

  • Tested using Travis CI and AppVeyor CI

Brian #2: TOML is 1.0.0 now.

  • What does that mean for Python?

    • Hopefully, some kind of toml parser will make it into Python core.

  • Any Python access to 1.0.0? Mixed

    • Implementations and TOML version support page lists:

    • pytomlpp supports 1.0.0-rc.3, which is a wrapper around C++ tomlplusplus, which does support 1.0.0. Confusing

    • tomlkit supports 1.0.0-rc.1, so that’s promising

    • toml supports 0.5.0, great name. It’d be cool if it would support 1.0.0

  • What’s different between 0.5.0 and 1.0.0?

    • Unless I’m mistaken, not much: CHANGELOG

    • 1.0.0-rc1

    • Leading zeroes in exponent parts of floats are permitted.

    • Allow raw tab characters in basic strings and multi-line basic strings.

    • Allow heterogenous values in arrays.

    • Other than that, lots of “Clarify …”, which I’m not sure how those all affect implementation.

  • I’d love to hear more from people who know more about this

Ogi #3: pyqtgraph

  • pyqtgraph - plotting library, for when you need fast/interactive plots

  • Uses qt5 (and soon qt6) bindings to generate plots within Qt applications

  • Fills a niche role, want easy mouse interactivity, running locally on a machine

  • Often used in engineering/scientific applications when looking at a lot of data, and wanting interactivity

Michael #4: Parler + Python = Insurrection in public

  • via Jim Kring and Mark Little

  • According to Wikipedia: Parler (/ˈpɑːrlər/) is an American alt-tech microblogging and social networking service. Parler has a significant user base of Donald Trump supporters, conservatives, conspiracy theorists, and right-wing extremists.

  • ArsTechnica article send in by Mark Little

  • Ars: Parler’s amateur coding could come back to haunt Capitol Hill rioters

  • Coding mess

    • A key reason for her success: Parler’s site was a mess. Its public API used no authentication.

    • When users deleted their posts, the site failed to remove the content and instead only added a delete flag to it.

    • Oh, and each post carried a numerical ID that was incremented from the ID of the most recently published one.

    • Another amateur mistake was Parler’s failure to scrub geolocations from images and videos posted online.

  • Some 80 terabytes of posts, 1M videos, many already deleted, preserved for posterity.

  • Catalog and Python pointed out by Shaun King.

  • See the catalog (maybe, it’s the ugly side of people).

  • The gist:

  • Partially back online with Russian hosting service?

Brian #5: Best-of Web Development with Python

  • Suggested by Douglas Nichols

  • Cool list with nice icons

  • Covers

    • Frameworks, HTTP Clients, Servers

    • Auth tools, HTML Processing, URL utilities

    • OpenAPI, GraphQL, Websocket

    • RPC, Serverless, Content Management

    • Web Testing, Web Forms, Markdown

    • Third-party APIs

    • Email, Web Scraping & Crawling, Monitoring

    • Admin UI

    • API Proxies

    • Flask/FastAPI/Pyramid/Django Utilities

  • Nice to see lots of FastAPI projects:

    • fastapi-sqlalchemy - Adds simple SQLAlchemy support to FastAPI.

    • fastapi-plugins - FastAPI framework plugins.

    • fastapi_contrib - Opinionated set of utilities on top of FastAPI.

    • starlette_exporter - Prometheus exporter for Starlette and FastAPI.

    • fastapi-utils - Reusable utilities for FastAPI.

    • fastapi-code-generator - This code generator creates FastAPI app from an..

    • slowapi - A rate limiter for Starlette and FastAPI.

    • fastapi-versioning - api versioning for fastapi web applications.

    • fastapi-react - Cookiecutter Template for FastAPI + React Projects. Using..

    • fastapi_cache - FastAPI simple cache.

Ogi #6: Assorted

  • Pyjion - a JIT extension for CPython that compiles python code using .NET 5 CLR

  • CuPy - NumPy compatible multi-dimensional array on CUDA, uses _``*array_function_* (enabled with numpy 1.17) code using numpy to operate directly on CuPy arrays



  • Trying Firefox + Brave + VPN

  • Python Web Conf 2021 call for talks, due Jan 29, I’ll be speaking!

  • PyCon US 2021 launched call for proposals:

    • December 22, 2020 — Call for proposals opened

    • February 12, 2021 — Proposals are due

    • March 16, 2021 — Notifications will be sent to presenters

    • March 23, 2021 — Deadline for speakers to confirm participation

    • March 30, 2021 — Schedule is publicly released

    • April 28, 2021 — Deadline to submit pre-recorded presentation (tutorials will be live)

    • May 12-13, 2021 — Tutorial days

    • May 15-16, 2021 — Conference days

  • Apple launching Racial Equity and Justice Initiatives with partners across a broad range of industries and backgrounds — from students to teachers, developers to entrepreneurs, and community organizers to justice advocates




Tech Support, 2x

Working at the help desk? Get the theme song:

Here to help song

And help by chat:

  • "Running a successful open source project is just Good Will Hunting in reverse, where you start out as a respected genius and end up being a janitor who gets into fights." - Byrne Hobart









Sleep Timer


End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

#217 Use your cloud SSD for fast, cross-process caching

#217 Use your cloud SSD for fast, cross-process caching

Michael Kennedy (@mkennedy)