List of videos

Talk - Moshe Zadka: Best Practices for Continuous Integration in Python V02

It is now accepted that having continuous integration is a best practice for almost all non-trivial projects. But configuring CI for Python correctly is still hard. The solution space is big, many common configurations work around the bugs and limitations that existed in past CI systems, and there are few explanations about how to do it well. A good CI configuration concentrates on giving timely and accurate feedback to the developer. Whether it is using GitHub Actions, GitLab CI/CD, Jenkins, or something else, there are ways to configure the system to be more accurate and faster.

Watch
Talk - Mario Corchero: Finding penguins with a snake Linux features for a Python user

Python has APIs that allow developers to use Linux features that many are often unaware of. If you are a modest Linux/Unix user and want to learn some features of the OS through the APIs that Python offers, this is the perfect talk with you. We will speak about processes, named pipes, fork and exec, inodes, and signals, among others, all whilst seeing how to play with these through the APIs that the Python standard library offers us.

Watch
Talk - Calvin Hendryx-Parker: Bootstrapping Your Local Python Environment

There are simple, yet crucial, reminders that can differentiate an expert developer from a hobbyist. In this talk and live demo, developers will learn: - the importance of abiding by the Zen of Python; - where (and how) to install Python on your machine; - three rules to follow when installing Python; - proper version management with pyenv; - which Python add-ons (e.g.: virtualenv, pipx, piptools, Docker) can be used to make environments both repeatable and simple. Resources and Links - ActiveState: https://www.activestate.com/products/python/ - asdf: https://github.com/danhper/asdf-python - Anaconda: https://www.anaconda.com/products/individual - Brew: https://brew.sh/ - Chocolatey: https://chocolatey.org/ - Docker’s Python integration: https://hub.docker.com/_/python/ - PDM: https://pypi.org/project/pdm/ - pyenv setup: https://github.com/pyenv/pyenv#installation - pyenv setup for Windows: https://pyenv-win.github.io/pyenv-win/ - pipenv versions: https://pipenv.pypa.io/en/latest/ - piptools: https://github.com/jazzband/pip-tools/#readme - pipx setup: https://pypi.org/project/pipx/ - pipx: https://pypa.github.io/pipx/ - poetry: https://python-poetry.org/ - pyproject.toml: https://www.python.org/dev/peps/pep-0621/ - Python.org: https://python.org/ - virtualenv: https://virtualenv.pypa.io/en/latest/ - virtualenvwrapper: https://virtualenvwrapper.readthedocs.io/en/latest/ - Zen of Python: https://www.python.org/dev/peps/pep-0020/

Watch
Talk - Benjamin "Zags" Zagorsky: Handling Timezones in Python

Does your code use datetimes? There's a chance it has bugs that show up every night after 7pm! Timezones and daylight savings time are problems that plague most systems. Even if your system is designed for use in a singe timezone, you still need to be aware of timezones, both figuratively and literally to avoid bugs (Python datetimes that are correctly instantiated are referred to as "timezone aware"). This talk will cover: * Common mistakes with dates and datetimes in Python * How to use timezone aware datetimes in Python * Recipes for common datetime use cases * Recipes for Django Slides: https://pycon-assets.s3.amazonaws.com/2022/media/presentation_slides/90/2022-05-05T20%3A14%3A33.164888/Timezones_in_Python.pdf

Watch
Talk - Greg Compestine: How to Succeed with Python Across the Enterprise

As a large, well-established company, Bloomberg focused on C++ as its primary language several decades ago. Python began as a scripting language for writing small utilities. An intern project several years ago showed that it was possible to integrate some C++ libraries with Python, making it possible to build domain-specific applications. An engineer with an affinity for Python got approval to form a small team to provide better support for the language. Engineers also formed small committees (or Guilds) to help promote Python across the organization by advocating for users, organizing meetups, actively monitoring messaging channels to help those with questions and problems, and writing lots and lots of documentation. Today, Python is used by more than 3,000 of the company's engineers. We actively support the Python Software Foundation and open source Python projects. Python is used to train new hires on the architectural paradigms used within the company. In less than a decade, we’ve gone from taking our first steps with the language to being one of the leading contributors to its evolution. Sometimes success can "just happen." However, most often changing a cultural dynamic takes a lot of hard work. And it is work that can be very rewarding. Slides: https://pycon-assets.s3.amazonaws.com/2022/media/presentation_slides/79/2022-04-28T22%3A02%3A15.039467/How_to_Succeed_with_Python.pdf

Watch
Talk - Amit Saha: Implementing shared functionality using Middleware

In this talk, I will provide an introduction to the topic of writing middleware for your web applications. Middleware is often simply brought in to an application's code base, without perhaps a thorough understanding of how they work. This talk will shed light on how middleware components work in popular Python web frameworks - Flask, Django and FastAPI. Armed with that understanding, you will learn how to write your own middleware as well as use standard community contributed middleware to implement vital functionality in your applications. Slides: https://pycon-assets.s3.amazonaws.com/2022/media/presentation_slides/6/2022-04-29T03%3A09%3A30.428341/slides.pdf

Watch
Talk - Nandita Viswanath and Sagar Aryal: In house to open source Stitching the past to the futu...

Ever had to deal with old code that is filled with thousands of repetitive code blocks and too many if statements? It gets harder when the original authors aren't around to explain what they were thinking. These pain points related to legacy software are often the motivation for many organizations to adopt robust open source solutions. Open source software is becoming more and more the standard in any tech stack. Knowing how to navigate the world of open source software and how to best implement it is a skill that is becoming ever more important for any software engineer. Python is one of the most popular languages when it comes to open source. In this talk, we hope to outline why this is and how you can take advantage of it in your software migrations.

Watch
Talk - John Reese: Open Source on Easy Mode

Open source is the lifeblood of the community, and we all stand on the shoulders of giants. But the responsibility, time commitment, and processes that come with maintaining projects on PyPI can be overwhelming, even for the best of us. With this talk, we'll see how the right tools and automation can cut out the overhead from running open source projects, and let you focus on the fun parts! We'll cover a wide range of topics, from packaging, metadata, and dependencies, to code quality, testing, and CI/CD, and finish with documentation, helping new developers, and reviewing contributions from the community. We'll look at high level concepts, modern best practices, and free tools available and how they make it easier than ever for new contributors to get started, while giving you confidence that their changes are safe and ready for production. Rather than just pointing to cookie cutter templates, we'll talk about the "why" behind these best practices and how they fit into common developer workflows. We'll also include links to references and popular developer tools, as well as a companion site with slides and a list of everything mentioned in the talk. Developers of all experience levels are welcome. Whether you're new to packaging and need guidance for your first release, or a seasoned package maintainer looking to simplify your workflow, this talk is for you! Slides: https://pycon-assets.s3.amazonaws.com/2022/media/presentation_slides/104/2022-04-28T21%3A41%3A15.777027/open-source-easy-mode.pdf

Watch
Talk - Henry Fredrick Schreiner III: Building a binary extension

Support for binary extensions is an exceptional advantage of Python that is too often avoided for smaller packages with low developer resources. Binary extensions are used to achieve high performance for libraries like PyTorch, MyPy, and many thousands more. Binary extensions also allow access to a wealth of existing compiled libraries. Building your own binary extension is plagued by historically poor documentation, bad common practices, and many misconceptions. But it is actually easy to write extensions today that work seamlessly on all common developer platforms using modern libraries and continuous integration. We will take a look at packaging a binary extension from start to finish. This starts with pybind11 for C++ bindings, providing simple, header only builds and avoiding the need for a new language or pre-processor step. We will look at scikit-build for building, providing powerful CMake based builds with library search, multithreaded builds, and more. We will use PyPA's build to produce SDists. And we will use PyPA's cibuildwheel to produce binaries for all common platforms with minimal setup and simple CI code in GitHub Actions (but trivially movable to any other CI system). We will talk about how to automate common tasks, like using GitHub's Dependabot to keep cibuildwheel up-to-date while also ensuring reproducible builds. After this talk, it is our hope that you will no longer shy away from using compiled code in libraries, but will feel comfortable writing extensions to accelerate or advance your libraries functionality. Slides: https://pycon-assets.s3.amazonaws.com/2022/media/presentation_slides/57/2022-04-29T06%3A17%3A37.414348/CppCon2022_Building_Python_Extensions_AP1.pdf

Watch