List of videos

TUTORIAL / James Bourbeau, Julia Signell / Hacking Dask: Diving Into Dask;s Internals
Dask is a popular Python library for scaling and parallelizing Python code on a single machine or across a cluster. It provides familiar, high-level interfaces to extend the PyData ecosystem (e.g. NumPy, Pandas, Scikit-Learn) to larger-than-memory or distributed environments, as well as lower-level interfaces for parallelizing custom algorithms and workflows. In this tutorial we’ll cover more advanced features of Dask like task graph optimization, the worker and scheduler plugin system, how to inspect the internal state of a cluster, and more. Attendees should walk away with a deeper understanding of Dask’s internals, an introduction to more advanced features, and ideas of how they can apply these features effectively to their own data intensive workloads.
Watch
Tutorial - Zac Hatfield-Dodds: Introduction to Property Based Testing
Has testing got you down? Ever spent a day writing tests, only to discover that you missed a bug because of some edge case you didn’t know about? Does it ever feel like writing tests is just a formality - that you already know your test cases will pass? Property-based testing might be just what you need! After this introduction to property-based testing, you’ll be comfortable with Hypothesis, a friendly but powerful property-based testing library. You’ll also known how to check and enforce robust properties in your code, and will have hands-on experience finding real bugs. Where traditional example-based tests require you to write out each exact scenario to check - for example, assert divide(3, 4) == 0.75 - property-based tests are generalised and assisted. You describe what kinds of inputs are allowed, write a test that should pass for any of them, and Hypothesis does the rest! ```python from hypothesis import given, strategies as st @given(a=st.integers(), b=st.integers()) def test_divide(a, b): result = a / b assert a == b * result ``` There’s the obvious ZeroDivisionError, fixable with b = st.integers().filter(lambda b: b != 0), but there’s another bug lurking. Can you see it? Hypothesis can! AUDIENCE This tutorial is for anybody who regularly writes tests in Python, and would like an easier and more effective way to do so. We assume that you are comfortable with traditional unit tests - reading, running, and writing; as well as familar with ideas like assertions. Most attendees will have heard "given, when, then" and "arrange, act, assert". You may or may not have heard of pre- and post-conditions - we will explain what "property-based" means without reference to Haskell or anything algebraic. Slides: https://pycon-assets.s3.amazonaws.com/2022/media/presentation_slides/177/2022-04-26T04%3A34%3A57.242477/PBT-intro-PyCon-2022.pdf
Watch
TUTORIAL / Mariatta / Writing Documentation with Sphinx and reStructuredText
The success of Python and open source libraries is not separable from the availability of good documentation. Reading documentation is one of the first things a user of the open source library has to do. In the Python open source community, documentation is often written using reStructuredText markup language, and built with Sphinx. The official Python documentation and Python Enhancements Proposals (PEPs) are all written using reStructuredText. Being able to write documentation using reStructuredText becomes a necessary skill for any aspiring Python open source contributors and maintainers. Yet, reStructuredText itself can be seen as a barrier into contributing to open source, since it is not as straightforward as Markdown. Compared to Markdown, reStructuredText is not as widely adopted outside of the Python community. Don’t let this discourage you! Let’s break down this barrier! reStructuredText is not as complicated as you might think. You can learn it! In this tutorial, we'll go through various useful features of reStructuredText. You will learn how to create and build a documentation project using Sphinx. Not only will you learn a new skill, you can also confidently start contributing to open source projects by helping to improve their documentation. Slides: https://sphinx-intro-tutorial.readthedocs.io/
Watch
TUTORIAL / Andrea and Josh / Practical Deep Learning for Data Scientists
This tutorial is a chance to get hands-on with PyTorch and GPU Deep Learning (DL). It is specifically targeted toward attendees who may be familiar with the concepts of DL, but want practical experience. Familiarity with Python and typical ML packages (e.g. pandas, numpy, sklearn) is expected. At the end of this session, you will understand how to: Build some common DL architectures in PyTorch Evaluate and improve the performance Take advantage of more compute (and when you should do so) This will set you up to take advantage of interesting developments in the field and maybe even contribute your own!
Watch
TUTORIAL / Eyal Kazin / A Hands-On Introduction To Multi-Objective Optimization
11:10 - Pause video to work through Part 1 Optimising for multiple objectives is a non-trivial task, especially when they are in conflict. For example how can one best overcome the classic trade-off between quality and cost of production, when the monetary value of quality is not defined? In this hands-on Python tutorial you will learn about Pareto Fronts and use them to optimise for multiple objectives simultaneously. Multi-Objective Optimisation, also known as Pareto Optimisation, is a method to optimise for multiple parameters simultaneously. When applicable, this method provides better results than the common practice of combining multiple parameters into a single parameter heuristic. The reason for this is quite simple. The single heuristic approach is like horse binders limiting the view of the solution space, whereas Pareto Optimisation enables a bird’s eye view. Real world applications span from supply chain management, manufacturing, aircraft design to land use planning. For example when developing therapeutics, Pareto optimisation may help a biologist maximise protein properties like effectiveness and manufacturability while simultaneously minimising toxicity. I will provide a git repository with Jupyter notebooks with which you will apply lessons and tools learned to the simple Knapsack problem. Here you will program for filling a bag with packages with the objective of minimising the bag weight while maximising its content value. My objective is for you to gain a basic intuition for the technique, understand its advantages and shortcomings to be able to assess applicability for your own projects Slides: http://bit.ly/pycon21-handson-moo
Watch
SUMMIT / Education
Having high quality educational materials and informed educators has never been more important than now. While we cannot run the Summit with all the elements we had originally planned, The Education Summit committee is committed to ensuring that the Summit does happen this year. We will have a 2 hour format, held within Zoom. We will have strict schedules for talks so people can attend portions as able. Education Summit talks will be focused on K-higher education teaching practices, important developments for the Python teaching community, impactful case studies, etc. EDU SUMMIT SCHEDULE 0:00-5:16: Welcoming and setup 5:16 -11:16: Opening remarks about the Education Summit 11:16-34:45: Introducing Friendly (André Roberge) 34:45-54:48: Learner Personas for Domain-Specific Data Science Educational Materials (Daniel Chen) 54:48-1:14:37: Practice makes perfect -- but what kind of practice? (Reuven M. Lerner) 1:14:37-1:37:12: From room to Zoom: Strategies and technologies for teaching Python workshops online (Marley Kalt) Lightning talks: 1:37:12 - 1:46:41 Interdisciplinary Education case studies: applying Python to the Humanities, Social Sciences, & Arts (Chiin-Rui Tan) 1:46:41-1:53:28 Martian Math (Kirby Urner) 1:53:28-1:59:49: Closing
Watch
SUMMIT / Trainers
The Python Virtual Training Summit seeks to present how community organizations, trainers, meetup groups, classrooms, and employers have facilitated Python training and mentorship to a virtual environment. Virtual Training Summit talks will be focused on showcasing the strategies and methods that have been used over the past years to facilitate the formal and informal training needed in highly technical organizations. We are hoping to hear from groups that support aspects of training but may not see themselves within the education sphere. Following the same time notation, the schedule is as follows: +0:00 - 0:10: Welcoming and setup +0:10 - 0:30: Keynote: Virtual Teaching the New Way of Life (SherAaron (Sher!) Hurt) +0:30 - 0:45: Don't make these training mistakes! (Because I already did) (Reuven M. Lerner) +0:45 - 1:05: Coaching Junior Developers in a Remote World (Sebastiaan Zeeff) +1:05 - 1:25: Python Emergency Remote Teaching (Fernando Masanori) +1:25 - 1:45: Tools we need to teach project management (Sumana Harihareswara) +1:45 - 1:50: Lightning talks: Distilling Your Examples (Miki Tebeka) Computational Thinking for Creatives - Decoding Barriers to Entry (Tadeh Hakopian)
Watch
SUMMIT / Typing
Greetings Type Syntax Simplifications (Maggie Moss) 0:06 Validating JSON with TypedDict, trycast, and TypeForm (David Foster) 29:45 Type Variables for All (Pradeep Kumar Srinivasan) 54:20 Static Python: Types in Bytecode Compilation & Runtime (Carl Meyer) 1:25:16 Incremental Check in Pyre (Jia Chen) 1:50:55 Scaling Typeshed to 1000 Packages (Jukka Lehtosalo) 2:17:01 Catching Tensor Shape Errors Using the Type Checker (Pradeep Kumar Srinivasan, Matthew Rahtz) 2:43:06 Type Arithmetic (Alfonso Castaño) 3:11:10
Watch
SUMMIT / Maintainers
SPEAKERS Brian Douglas Getting Traction with GitHub Actions and Python Cheuk Ting Ho Oops, I Did It Again! When Your Deploying CI Pipeline Is Broken Juanita Gomez Spyder Says: Let's Get Millennial! Kati Michel Bringing Pinax Back to Life May Ireland Burnout: Identity & Emotion at Work Melissa Weber Mendonça NumPy Newcomer's Hour: an Experiment on Community Building Rose Judge Improve Your Git Commits in Two Easy Steps Sumana Harihareswara Researching the Leadership Gap for Legacy Projects Thibaud Colas Building Accessibility into Open Source Projects SCHEDULE LIVE panel discussion "Funding open source work" Alex Clark (Pillow) Eunice Chendjou (Open Teams) Gina Häußge (Octoprint) Sumana Harihareswara (Changeset Consulting) William Stein (SageMath) Moderated by David Charboneau (Open Teams) LIVE Q&A with the presenters of talks Moderated by: Alexandre de Siqueira (Berkeley Institute for Data Science, scikit-image) and Inessa Pawson (Albus Code, NumPy)
Watch