
Episode 111
Questions for New Dependencies & Comparing Python Game Libraries
The Real Python Podcast · Real Python
May 27, 202251m 37s
Audio is streamed directly from the publisher (dts.podtrac.com) as published in their RSS feed. Play Podcasts does not host this file. Rights-holders can request removal through the copyright & takedown page.
Show Notes
<p>What are the differences between the various Python game frameworks? Would it help to see a couple of game examples across several libraries to understand the distinctions? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder’s Weekly articles and projects.</p>
<p>We discuss a Real Python article by previous guest Jon Fincher titled “Top Python Game Engines”. Jon compares five different game frameworks and provides example projects and thorough commentary for each.</p>
<p>We talk about a blog post by recent guest Adam Johnson about determining if a project is well maintained. He suggests twelve questions to decide whether to add a new dependency to your project.</p>
<p>We cover several other articles and projects from the Python community, including a news roundup, Python decorator patterns, finding the smallest and largest values with <code>min()</code> and <code>max()</code>, a discussion about the most-used Python packages, the pony object-relational mapper, and a project to read PEPs in your console.</p>
<div class="alert alert-primary" role="alert">
<p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/asteroids-game-python-pygame/">Using Pygame to Build an Asteroids Game in Python</a></p>
<p>In this course, you’ll build a clone of the Asteroids game in Python using Pygame. Step by step, you’ll add images, input handling, game logic, sounds, and text to your program.</p>
</div>
<p>Topics:</p>
<ul>
<li>00:00:00 – Introduction</li>
<li>00:02:04 – News: Python Release Python 3.11.0b1</li>
<li>00:02:56 – Faster CPython project</li>
<li>00:04:16 – nogil conversation at the 2022 summit</li>
<li>00:06:08 – PEP 690: Lazy Imports</li>
<li>00:08:14 – DjangoCon US & Europe 2022 Call for Proposals</li>
<li>00:09:25 – Top Python Game Engines</li>
<li>00:20:38 – Sponsor: CData Software</li>
<li>00:21:20 – Python Decorator Patterns</li>
<li>00:24:00 – The Well-Maintained Test: 12 Questions for New Dependencies</li>
<li>00:29:27 – Python’s min() and max(): Find Smallest and Largest Values</li>
<li>00:33:33 – Video Course Spotlight</li>
<li>00:34:44 – Which Python Packages Do You Use the Most?</li>
<li>00:41:42 – pony: Pony Object Relational Mapper</li>
<li>00:47:41 – pepdocs: Read PEPs in Your Console</li>
<li>00:50:20 – Thanks and goodbye</li>
</ul>
<p>News:</p>
<ul>
<li><a href="https://www.python.org/downloads/release/python-3110b1/">Python Release Python 3.11.0b1</a></li>
<li><a href="https://github.com/faster-cpython/ideas/blob/657830f1ab35466053634bb165f6582f6d788614/main-vs-310.rst">Faster CPython</a></li>
<li><a href="https://github.com/faster-cpython/cpython">faster-cpython/cpython: The Python programming language</a></li>
<li><a href="https://pyfound.blogspot.com/2022/05/the-2022-python-language-summit-python_11.html">nogil conversation at the 2022 summit</a></li>
<li><a href="https://peps.python.org/pep-0690/">PEP 690: Lazy Imports</a></li>
<li><a href="https://2022.djangocon.eu/talks/cfp/">DjangoCon Europe 2022 Call for Proposals</a></li>
<li><a href="https://pretalx.com/djangocon-2022/cfp">DjangoCon US 2022 Call for Proposals</a></li>
</ul>
<p>Topic Links:</p>
<ul>
<li><a href="https://realpython.com/top-python-game-engines/">Top Python Game Engines</a> – In this tutorial, you’ll explore several Python game engines available to you. For each, you’ll code simple examples and a more advanced game to learn the game engine’s strengths and weaknesses.</li>
<li><a href="https://bytepawn.com/python-decorator-patterns.html">Python Decorator Patterns</a> – Decorators are a way of wrapping functions around functions, they’re a common technique for providing pre- and post-conditions on your code. Learn about the different ways decorators get invoked and how to write each pattern.</li>
<li><a href="https://adamj.eu/tech/2021/11/04/the-well-maintained-test/">The Well-Maintained Test: 12 Questions for New Dependencies</a> – There is lots of openly available code out there, but how do you know if you should build a dependency on some random coder’s package? 12 Questions you should ask yourself before using a library.</li>
<li><a href="https://realpython.com/python-min-and-max/">Python’s min() and max(): Find Smallest and Largest Values</a> – In this tutorial, you’ll learn how to use Python’s built-in min() and max() functions to find the smallest and largest values. You’ll also learn how to modify their standard behavior by providing a suitable key function. Finally, you’ll code a few practical examples of using <code>min()</code> and <code>max()</code>.</li>
</ul>
<p>Discussion:</p>
<ul>
<li><a href="https://twitter.com/driscollis/status/1524749533208489986">Which Python Packages Do You Use the Most?</a></li>
</ul>
<p>Projects:</p>
<ul>
<li><a href="https://github.com/ponyorm/pony/">pony: Pony Object Relational Mapper</a></li>
<li><a href="https://github.com/gahjelle/pepdocs">pepdocs: Read PEPs in Your Console</a></li>
</ul>
<p>Additional Links:</p>
<ul>
<li><a href="https://mobile.twitter.com/ericsnowcrntly/status/1520558350328496128">Eric Snow on Twitter:”We need your help making CPython faster. Publish benchmarks for your app or library.”</a></li>
<li><a href="https://realpython.com/podcasts/rpp/59/">Episode #59: Organizing and Restructuring DjangoCon Europe 2021 – The Real Python Podcast</a></li>
<li><a href="https://realpython.com/pygame-a-primer/">PyGame: A Primer on Game Programming in Python – Real Python</a></li>
<li><a href="https://realpython.com/courses/pygame-primer/">Make a 2D Side-Scroller Game With PyGame – Real Python</a></li>
<li><a href="https://realpython.com/primer-on-python-decorators/">Primer on Python Decorators – Real Python</a></li>
<li><a href="https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/">The Joel Test: 12 Steps to Better Code – Joel on Software</a></li>
<li><a href="https://realpython.com/podcasts/rpp/97/">Episode #97: Improving Your Django and Python Developer Experience – The Real Python Podcast</a></li>
<li><a href="https://pypi.org/project/pyflakes/">pyflakes · PyPI</a></li>
<li><a href="https://pypi.org/project/coverage/">coverage · PyPI</a></li>
<li><a href="https://pypi.org/project/pudb/">pudb · PyPI</a></li>
<li><a href="https://www.djangoproject.com/">Django | The web framework for perfectionists with deadlines</a></li>
<li><a href="https://pypi.org/project/django-awl/">django-awl · PyPI</a></li>
<li><a href="https://pypi.org/project/waelstow/">waelstow · PyPI</a></li>
<li><a href="https://pypi.org/project/six/">six · PyPI</a></li>
<li><a href="https://pygments.org/">Pygments — Welcome!</a></li>
<li><a href="https://pypi.org/project/chardet/">chardet · PyPI</a></li>
<li><a href="https://pypi.org/project/certifi/">certifi · PyPI</a></li>
<li><a href="https://pandas.pydata.org/">pandas - Python Data Analysis Library</a></li>
<li><a href="https://jupyter.org/">Project Jupyter | Home</a></li>
<li><a href="https://bokeh.org/">Bokeh</a></li>
</ul>
<p>Level up your Python skills with our expert-led courses:</p>
<ul>
<li><a href="https://realpython.com/courses/asteroids-game-python-pygame/">Using Pygame to Build an Asteroids Game in Python</a></li>
<li><a href="https://realpython.com/courses/map-function-transform-iterables/">Python's map() Function: Transforming Iterables</a></li>
<li><a href="https://realpython.com/courses/python-decorators-101/">Python Decorators 101</a></li>
</ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast & join our community of Pythonistas</a></p>