List of videos

Adding zero-downtime migrations strategy in a SaaS project — Iga Karbowiak

[EuroPython 2023 — South Hall 2A on 2023-07-19] https://ep2023.europython.eu/session/adding-zero-downtime-migrations-strategy-in-a-saas-project Zero-downtime migration is a technique for running database migrations without stopping the web app. As clients' databases grow larger, applying necessary updates to the database can become time-consuming or potentially break the database schema. This talk will describe problematic operation types and provide a strategy for writing and running migrations to release new software versions without downtime. This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License http://creativecommons.org/licenses/by-nc-sa/4.0/

Watch
EuroPython 2024 — Opening Session

[EuroPython 2024 — Forum Hall on 2024-07-10] https://ep2024.europython.eu/session/opening-session Welcome to EuroPython 2024. Let us welcome you officially and tell you all about what's going to await you in the upcoming days. 00:00 *Welcome to EuroPython 2024* 03:34: *Welcome from the EuroPython Society* 05:09: *We are ALL VOLUNTEERS* 15:00: *Code of Conduct* 20:18: *Thanks to our sponsors* 20:59: *Accessibility* 21:20: *Enjoy our events* Correction: 13:06 George *Zisopoulos* is the name. We are so sorry we had a typo in your beautiful name, George! --- This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/

Watch
Embracing Python, AI, and Heuristics: Optimal Paths for Impactful Software — Carol Willing

[EuroPython 2024 — Forum Hall on 2024-07-10] Embracing Python, AI, and Heuristics: Optimal Paths for Impactful Software by Carol Willing https://ep2024.europython.eu/session/embracing-python-ai-and-heuristics-optimal-paths-for-impactful-software Today's rapidly evolving software landscape requires agile and informed decision-making. This keynote will highlight the powerful combination of Python, Artificial Intelligence (AI), and heuristics for enabling dynamic decision-making processes. We will explore the strengths of Python as a versatile language, the potential of AI for intelligent decision support, and the value of heuristics derived from real-world experience. By embracing this synergistic trio, developers can navigate complex challenges, adapt to changing requirements, and make decisions that drive successful software outcomes. Through practical examples and insights, attendees will gain a deeper understanding of how to leverage Python, AI, and heuristics effectively, striking the right balance between technological innovation and tried-and-true techniques. Whether you're a seasoned developer or just starting your journey, this keynote will equip you with the tools and mindset to embrace agility and make informed decisions that propel your software projects forward. --- This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/

Watch
SPy (Static Python) lang: fast as C, Pythonic as Python — Antonio Cuni

[EuroPython 2024 — Forum Hall on 2024-07-10] SPy (Static Python) lang: fast as C, Pythonic as Python by Antonio Cuni https://ep2024.europython.eu/session/spy-static-python-lang-fast-as-c-pythonic-as-python SPy is a brand new statically typed variant of Python which aim to get performance comparable to system languages such as C and C++, while preserving the "Pythonic feeling" of the language. The main idea behind SPy is that "modern Python" is actually a subset of Python: - many of the most dynamic features of the language are considered bad practice and actively discouraged; - the alway-increasingly adoption of typing leads to codebases which are largerly statically typed. However, these rules are not enforced by the language, and there are cases in which "breaking the rules" is actually useful and make the code easier/better/faster. From the point of view of language implementors, the VM cannot easily take advantage of the "mostly static" nature of programs because it has always to be ready for the generic case. SPy tries to reconcile these two sides: - it uses a static type system which is designed specifically for safety and performance; - the vast majority of "dynamic" feature of Python (like decorators, metaclasses, `__special_methods__`, ...) can be used at zero cost, since they are resolved at compile time by using meta-programming and partial evaluation techniques. This talk will present in the details the ideas behind SPy and its current status. --- This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/

Watch
FastAPI Internals — Marcelo Trylesinski

[EuroPython 2024 — Forum Hall on 2024-07-10] FastAPI Internals by Marcelo Trylesinski https://ep2024.europython.eu/session/fastapi-internals FastAPI became one of the most web frameworks in Python. It has an amazing documentation, and easy to use API, which made it very popular. It's easy to start, and as a developer you have a lot of power on what you can do. But... How does it work internally? In this talk, we will explore the internals of FastAPI. We'll explore the dependency injection system, what are the benefits, and limitations. We'll also see how the routing system works, when the middleware stack runs, how the request and response are handled in detail, how the OpenAPI schema is generated, and the differences between async and non-async endpoints, and how WebSockets fit in the whole picture. Furthermore, we'll also see how the dependencies Pydantic and Starlette help FastAPI on its job. At the end of this talk, the attendee will understand what's underneath of this very popular package. --- This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/

Watch
Demystify Python Types for PEP 729 — Kir Chou

[EuroPython 2024 — Forum Hall on 2024-07-10] Demystify Python Types for PEP 729 by Kir Chou https://ep2024.europython.eu/session/demystify-python-types-for-pep-729 [PEP 729 – Typing governance process](https://peps.python.org/pep-0729/) proposes a new way to govern the Python type system. The PEP was endorsed by maintainers of all major type checkers. This talk aims to guide the audience to understand the reason more deeply of this new process after demystifying Python types. In this talk, the speaker will demystify python types from their theory to practice along with Python type systems. The theory includes the type theory by [Per Martin-Löf](https://en.wikipedia.org/wiki/Per_Martin-L%C3%B6f)'s and [gradual typing by Jeremy Siek](http://scheme2006.cs.uchicago.edu/13-siek.pdf), all theories will be explained with the Python code in the real world. The type system targets all major type checkers and CPython. The comparison will be based on the research: [Python 3 Types in the Wild: A Tale of Two Type Systems](https://www.cs.rpi.edu/~milanova/docs/dls2020.pdf). The practice covers how a new specification is done in type systems. In addition, the speaker will share their thoughts about the challenges behind the implementation, and connect the answer to the reason for the PEP 729. --- This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/

Watch
Writing Python like it's Rust - more robust code with type hints — Jakub Beránek

[EuroPython 2024 — Forum Hall on 2024-07-10] Writing Python like it's Rust - more robust code with type hints by Jakub Beránek https://ep2024.europython.eu/session/writing-python-like-it-s-rust-more-robust-code-with-type-hints Using type hints in Python has many advantages, some of which might not be obvious at first. We will see that it allows us to explicitly encode invariants in our code, which reduces the amount of tests that we need to write, it improves development speed and maintainability, and perhaps most importantly, it can give us more confidence that our code does what we expect it to do. We will also go through code examples that will show us how to leverage typing in Python to design APIs that cannot be easily misused, to create robust programs that we can trust. Audience members are expected to be able to read and understand Python code. --- This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/

Watch
Demystifying AsyncIO: Building Your Own Event Loop in Python — Arthur Pastel

[EuroPython 2024 — Forum Hall on 2024-07-10] Demystifying AsyncIO: Building Your Own Event Loop in Python by Arthur Pastel https://ep2024.europython.eu/session/demystifying-asyncio-building-your-own-event-loop-in-python **AsyncIO** has emerged as a vital tool in Python's ecosystem, particularly in web development, IO-bound tasks, and network programming. However, its internal mechanics often remain obscure, even to seasoned Python developers. This talk aims to demystify AsyncIO by guiding you through creating your own event loop in Python, culminating in running a FastAPI application with it. In this talk, we’ll build an event loop from scratch in Python, capable of running an HTTP server through a FastAPI application. **Plan:** - **Introduction to AsyncIO** - **Core Concepts:** Deep dive into Event loop, Futures, Tasks, and coroutines - **Hands-On Building:** Constructing an event loop from scratch - Scheduling callbacks - Executing tasks and coroutines - Handling network calls - **Practical Application:** Running a FastAPI HTTP server with our loop - **Performance Insights:** Comparing our event loop with the fastest ones By the end of this talk, you'll be able to understand the internal workings of AsyncIO and create a basic event loop capable of running a FastAPI application. --- This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/

Watch
Invent with PyScript — Nicholas Tollervey, Joshua Lowe

[EuroPython 2024 — Forum Hall on 2024-07-10] Invent with PyScript by Nicholas Tollervey, Joshua Lowe https://ep2024.europython.eu/session/invent-with-pyscript _[PyScript](https://pyscript.net/) is a platform for Python in the browser_, enabled by [web-assembly](https://webassembly.org/). It brings the rich ecosystems of [CPython](https://python.org/) and [MicroPython](https://micropython.org) to the web. _[Invent](https://invent-framework.github.io/) is a PyScript based app creation framework with complementary browser based tooling_ and is designed to be easy to learn and use, no matter if you're a beginner or expert. This talk introduces Invent, explains how it was built on top of PyScript and describes the design and architecture decisions made to ensure Python and the browser complement each other. Invent apps work anywhere a browser works and by the end of this presentation you'll be armed with all you need to know to build, deploy and extend native Python based applications running atop PyScript on all manner of platforms (mobile, tablet, laptop, desktop, [web-enabled fridge](https://www.standard.co.uk/shopping/esbest/home-garden/kitchen-appliances/best-smart-fridges-b1002542.html), [car](https://www.youtube.com/watch?v=GkhbN9B9bbs), point of sale terminal... you name it, so long as there's a browser!). This talk will be fast-paced, technical, creative, full of possibilities, may include geese 🪿, _and will be a lot of geeky fun_. By the end you'll ask yourself, "I wonder what I can invent?" and go create cool stuff in minutes. --- This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/

Watch