Brought to you by Michael and Brian - take a Talk Python course or get Brian's pytest book

#125: Will you conquer the deadlock empire?

Published Sat, Apr 13, 2019, recorded Wed, Apr 10, 2019

Sponsored by Datadog:

Brian #1: My How and Why: pyproject.toml & the 'src' Project Structure

  • Brian Skinn
  • pyproject.toml
    • but with setuptools, instead of flit or poetry
    • with a src dir
    • and tox and black
  • all the bits and pieces to make all of this work

Michael #2: The Deadlock Empire: Slay dragons, master concurrency!

  • A game to test your thread safety and skill!
  • Deadlocks occur in code when two threads end up trying to enter two or more locks (RLocks please!)
  • Consider lock_a and lock_b
  • Thread one enters lock_a and will soon enter lock_b
  • Thread two enters lock_b and will soon enter lock_a
  • Imagine transferring money between two accounts, each with a lock, and each thread does this in opposite order.

Brian #3: Cog 3.0

  • Ned Batchelder’s cog gets an update (last one was a few years ago).
  • Cog … finds snippets of Python in text files, executes them, and inserts the result back into the text. It’s good for adding a little bit of computational support into an otherwise static file.”
  • Development moved from Bitbucket to GitHub.
  • Travis and Appveyor CI.
  • The biggest functional change is that errors during execution now get reasonable tracebacks that don’t require you to reverse-engineer how cog ran your code.
  • mutmut mutation testing added. Cool.
  • What I want to know more about is this statement: “…now I use it for making all my presentations”. Very cool idea.

Michael #4: StackOverflow 2019 Developer Survey Results

Brian #5: Cuv’ner A commanding view of your test-coverage"

  • Coverage visualizations on the console.

Michael #6: Mobile apps launched

  • The tech (sadly only 50% Python)
    • Xamarin, Mono, and C# on the device-side
    • Python, Pyramid, and MongoDB on the server-side
  • 90% code sharing or higher
  • Native applications
  • Build the prototype myself on Windows
  • Hired Giorgi via TopTal
  • Dear mobile app developers: You have my sympathy!
  • Try the app at Comes with 2 free courses for anyone who logs in.
  • Android only at the moment but not for long





  • “When your hammer is C++, everything begins to look like a thumb.”
  • “Why don't jokes work in octal? Because 7 10 11”
    • Over explained: Why is 6 afraid of 7. Cuz 7 8 9.
    • Follow on: Why did 7 eat 9? He was trying to eat 3^2 meals.
  • I've been using Vim for a long time now, mainly because I can't figure out how to exit.

Want to go deeper? Check our projects