List of videos

Talk - Trey Hunner: Python Oddities Explained

A number of Python features often seem counter-intuitive at first glance, especially when moving from another programming language to Python. Often what at first seems like a bug, will later reveal itself to be a misunderstood feature. During this talk we'll look at a number of Python's unique features and quirks and attempt to re-shape our mental models of Python to better match reality. By the end of this talk you'll have a deeper understanding of Python's rules behind objects, scope, and variables. Warning: this talk will include many Python head-scratchers so show up prepared to think on your feet!

Watch
Talk - Christopher Ariza: Employing NumPy's NPY Format for Faster Than Parquet DataFrame...

Over 14 years ago the first NumPy Enhancement Proposal (NEP) defined the NPY format (a binary encoding of array data and metadata) and the NPZ format (zipped bundles of NPY files). Those same formats, extended in a custom NPZ packaged with JSON metadata, can be used in Python to create a stable DataFrame storage format that can materially out-perform Parquet read / write times in a wide range of contexts. Unlike Parquet, all characteristics of a DataFrame can be encoded and all NumPy dtypes are supported. Implemented in StaticFrame, this format can take advantage of an immutable data model to memory-map full DataFrames from un-zipped directories of NPY. Given wide-spread use of Parquet files in data science workflows, a faster-than-Parquet file format can significantly reduce compute costs. I will begin this talk by introducing the challenge of serializing DataFrames, illustrating how nearly all stable encoding formats lack full support for all DataFrame characteristics. While the broadly-used Parquet format has been called a "gold standard" binary file format, its columnar representation will be shown to have limitations when used for encoding DataFrames. I will show how the NPY format, combined with JSON metadata, can be used to create a custom NPZ file with significant performance and compatibility advantages compared to Parquet. The details of this encoding scheme will be explained. I will close the talk by evaluating numerous read / write performance comparisons between Parquet (via Pandas) and NPZ (via StaticFrame), measured with a wide variety of DataFrame shapes and dtype compositions. I will share techniques used in implementing optimized Python routines for reading and writing NPY files, and demonstrate applications for memory-mapping complete DataFrames via the same NPY representation. Slides: https://pycon-assets.s3.amazonaws.com/2022/media/presentation_slides/29/2022-04-29T13%3A59%3A23.738312/pycon-ariza.pdf

Watch
Talks - Fred Phillips: Hooking into the import system

Import hooks and the import system in general is an under-used and under-documented resource within Python. This talk will introduce the audience to the import system, how it works, and how it can be adapted for their needs. We will build a simple import hook that can inspect what is being imported, and go on to demonstrate how we can use the import system to load Python modules from a database and how to reload files on disk immediately as they are changed.

Watch
Talk - Kelly Schuster - Paredes/Sean Tibor: Learn Python Like a 12 Year Old

Along the way to adulthood, we often lose that sense of wonder, enjoyment, and playfulness that we had as kids in our favorite school subjects. As adults, we can become better learners ourselves when we examine how kids learn coding with Python. In this session, we’ll talk about making thinking and coding visible, to the brain science behind how we learn new things, to the importance of playfulness in learning. We will share a variety of helpful tips to improve your learning whether you are new to Python or an experienced coder.

Watch
Talk - Pablo Galindo Salgado: Making Python better one error message at a time

Python 3.10 has been recently released and among many exciting new features, one of the biggest improvements is the inclusion of a whole new set of changes focused on improving the error messages across the interpreter and the general user experience when dealing with error messages. The new error messages have been one of the most welcomed features from very different sets of users ranging from Python teachers and educators, first-time learners, industry professionals and data scientists. In this talk, we will cover: What are the new improvements featured in Python 3.10. Exciting new changes and improvements that will feature in Python 3.11. How these improvements are useful to different sets of users from people learning Python to experienced programmers. How the new PEG parser has unlocked adding new custom syntax errors. How these improvements were implemented and what challenges the CPython core team faced to get them working reliably. How users can contribute to adding new error messages: what is the workflow, how the errors are reviewed by the core team and where to find resources and help. No matter who you are and what you do with Python, there is an improvement that will probably make you smile.

Watch
Talk - Olivier Breuleux: How to change Python (while it's running)

Wouldn't it be nice to be able to do live development in a running Python instance, using your favorite editor and structuring your code however you would like, seeing your changes immediately reflected in the middle of the program's execution? Thanks to Python's incredible runtime flexibility, this can be done. In this talk, we will explore how changes to source code files can be integrated into running programs, covering as many edge cases as possible and explaining the intrinsic limitations of the approach. We will also demonstrate Jurigged, a flexible and extensible working implementation of this system. Slides: https://pycon-assets.s3.amazonaws.com/2022/media/presentation_slides/26/2022-04-30T21%3A55%3A53.200731/How_to_change_Python.pdf

Watch
Talk - Jeremiah Paige: Intro to Introspection

Python has immensely powerful capabilities to find information about objects and running code; even code you did not directly create. Through examples I will show you where that information is kept, how to retrieve it, and how to make sense of it. Slides: https://pycon-assets.s3.amazonaws.com/2022/media/presentation_slides/5/2022-04-27T04%3A21%3A44.122463/Intro_to_Introspection.pdf

Watch
Talk - Pablo Alcain: Software Development for Machine Learning in Python

Machine Learning and Data Science code has its own set of challenges and peculiarities. When we write code to be used by Data Scientists or Machine Learning Developers we have to keep in mind constantly that every abstraction we use has to a) be compatible with a fast and easy exploration playground; b) allow for sensible checkpoints and optimizations; c) implement in a declarative fashion repeated queries and functions; and d) provide an abstraction level over all of the production code so it can be tracked and monitored seamlessly. In this talk we will provide general guidelines to approach this problem from a software engineering perspective, defining what should our entities be, how deep should our abstraction go and how to avoid some usual design pitfalls. We will apply all these guidelines to a specific and small end to end problem. Slides: https://pycon-assets.s3.amazonaws.com/2022/media/presentation_slides/2/2022-05-05T19%3A50%3A59.469490/Software_Development_for_Machine_Learni_tbMu5bk.pdf

Watch
Charla: Luis Diego Conejo Alpizar - Historias de debug en clase de Python Avanzado

Presented by: Luis Diego Conejo Alpizar Como parte de mi trabajo como instructor de Python con la Universidad de Washington durante los últimos dos años, me ha tocado lidiar con numerosos y extraños errores de código que nos pusieron en aprietos a mis estudiantes y a mi, aún si al final resultaron ser realmente simples. En esta charla, voy a presentar cuatro de esos errores y cómo fueron resueltos.

Watch