This is the website for an older EuroPython. Looking for the latest EuroPython? Click here!
Skip to main content

Accepted tutorial

Note: this list might change

Filters

Develop your Python cloud applications offline with LocalStack

Waldemar Hummer, Thomas Rausch, Alex Rashed

This tutorial provides a hands-on introduction to LocalStack - the leading platform to develop and test cloud applications entirely on your local machine!

LocalStack provides a set of 70+ AWS services, running in a local Docker container. The hugely popular open source project (46k+ Github stars, 130+ million downloads) is today considered a “must-have” in the toolbox of every AWS cloud developer around the globe.

Outline: (1) Intro to AWS cloud development with Python (2) Developing Python cloud apps with LocalStack (3) Advanced integrations for IaC and CI/CD pipelines (4) Python internals & advanced features in LocalStack (5) Summary and wrap-up

This interactive session covers live coding to showcase common use cases, settings for local debugging of Lambdas and containerized apps, as well as advanced features that can radically improve team collaboration. We'll also glance over the large ecosystem of tools & integrations - including Terraform, Pulumi, CDK, Serverless.

TutorialIntermediateSoftware Engineering & Architecture

Geospatial Data Processing in Python: A Comprehensive Tutorial

Martin Christen

In this tutorial, you will learn about the various Python modules for processing geospatial data, including GDAL, Rasterio, Pyproj, Shapely, Folium, Fiona, OSMnx, Libpysal, Geopandas, Pydeck, Whitebox, ESDA, and Leaflet. You will gain hands-on experience working with real-world geospatial data and learn how to perform tasks such as reading and writing spatial data, reprojecting data, performing spatial analyses, and creating interactive maps. This tutorial is suitable for beginners as well as intermediate Python users who want to expand their knowledge in the field of geospatial data processing.

TutorialIntermediatePyData: Data Engineering

Practical tools for documentation at scale

Daniele Procida

In a hands-on workshop I'll introduce some of the tools and methods I have developed to improve documentation consistently and effectively, at scale - by a thousand people or more, working on a hundred or so software products and other projects.

TutorialBeginnerSoftware Engineering & Architecture

How to MLOps: Experiment tracking & deployment 📊

Jeroen Overschie, Yke Rusticus

What's this thing called MLOps? You may have heard about it by now, but never really understood what all the fuzz is about. Let's find out together!

In this tutorial, you will learn about MLOps and take your first steps in a hands-on way. To do so, we will be using Open Source tooling. We will be taking a simple example of Machine Learning use case and will gradually make it more ready for production 🚀.

We start with a simple time-series model in Python using scikit-learn and first add logging steps to make the performance of the model measurable. Don't worry: we will go through it step-by-step, so you won't be overwhelmed. Then, we will log our ML model and load it back into an inference step. Lastly, we will learn about deploying these actual models by Dockerizing our application 🙏.

TutorialPyData: Machine Learning, Stats

Practical introduction to descriptors

Rodrigo Girão Serrão

Descriptors are not black magic and this practical tutorial will show you that. In fact, you use descriptors every day and you don't even know it!

Through a series of practical, hands-on exercises, you will learn

  • how to create a descriptor;
  • how to use the dunder methods __get__, __set__, and __set_name__;
  • what the descriptor protocol is; and
  • where descriptors show up in day-to-day Python code.
TutorialIntermediatePython Internals & Ecosystem

Build, Serve, and Deploy a Fast, Production-Ready API with Python and Robyn

Sanskar Jethi

Join our hands-on workshop and discover how to build fast, production-ready APIs using Robyn, a developer-friendly web framework for Python. We'll guide you through key features like GraphQL, WebSockets, and data validation, as well as essential topics like app structure, database modeling, and code splitting. With our workshop, you'll gain practical experience and valuable insights into Robyn's simple and extensible API, middleware, and deployment process.

TutorialIntermediateWeb

Build your first GraphQL API using Python 🍓

Patrick Arminio

This workshop will teach you how to create your first GraphQL API using Python and Strawberry. We will be using using Fastapi as our framework of choice, but most of the concept will be applicable to other frameworks too.

We'll learn how GraphQL works under the hood, and how we can leverage type hints to create end to end type safe GraphQL queries.

To run this workshop you need to have at least python 3.8 and have followed the installation guide here: https://github.com/patrick91/strawberry-tiny-workshop

TutorialBeginnerWeb

Decorators - A Deep Dive

Mike Müller

Python offers decorator to implement re-usable code for cross-cutting task. The support the separation of cross-cutting concerns such as logging, caching, or checking of permissions. This can improve code modularity and maintainability.

This tutorial is an in-depth introduction to decorators. It covers the usage of decorators and how to implement simple and more advanced decorators. Use cases demonstrate how to work with decorators. In addition to showing how functions can use closures to create decorators, the tutorial introduces callable class instance as alternative. Class decorators can solve problems that use be to be tasks for metaclasses. The tutorial provides uses cases for class decorators.

While the focus is on best practices and practical applications, the tutorial also provides deeper insight into how Python works behind the scene. After the tutorial participants will feel comfortable with functions that take functions and return new functions.

TutorialIntermediatePython Internals & Ecosystem

Asyncio without Asyncio

Yan Yanchii

This tutorial aims to demystify asyncio builtin module by implementing it from scratch without any dependencies other than the Python Standard Library. We will go through the problem of blocking IO and how it is possible to solve it without single "async" and "await" statement using native Python concepts. Then, we will demystify async/await syntax and see how it is implemented. We will also build our own scheduler which will have a similar API as asyncio, which will be able to run async functions the same way asyncio does. And finally we will build real asynchronous http proxy using our own asyncio implementation. Why reinvent the wheel? - "I hear and I forget. I see and I remember. I do and I understand.".

TutorialIntermediateTBD - Multiple Tracks

Architecting Data: A Programmer's Guide to Synthetic Data

Ramon Perez

Finding good datasets or web assets to build data products or websites with, respectively, can be time-consuming. For instance, data professionals might require data from heavily regulated industries like healthcare and finance. In contrast, software developers might want to skip the tedious task of collecting images, text, and videos for a website. Luckily, both scenarios can now benefit from the same solution, Synthetic Data.

Synthetic Data is artificially generated data created with machine learning models, algorithms, and simulations, and this workshop is designed to show you how to enter that synthetic world by teaching you how to create a full-stack tech product with five interrelated projects. These projects include reproducible data pipelines, a dashboard, machine learning models, a web interface, and a documentation site. So, if you want to enhance your data projects or find great assets to build websites with, come and spend 3 fun and knowledge-rich hours in this workshop.

TutorialIntermediate~ None of these topics

Food For Rabbits: Celery From Zero to Hero

Roy M Mezan

In a world, full of Micro-Services, distributing tasks is a constant challenge, and there's only one tool that can rule them all.

In this workshop, we'll introduce Celery - a tool for distributing tasks in an easy, fast, and flexible manner, and take you from zero to hero!

  • We're going to understand why we need a distributed task system, and why to choose Celery.
  • We'll write our first Celery task.
  • Understand how to configure and run Celery.
  • Familiarize ourselves with Celery's fundamental concepts.
  • Dive into celery customizable options.
  • Finally, we'll see a real-life example of how we used Celery in our production system and how we customized it to fit our needs, and discuss how you can do the same.
TutorialBeginnerTBD - Multiple Tracks

Build a terminal TODO app with Textual

Rodrigo Girão Serrão

Learn how to build powerful terminal-based user interfaces (TUIs) with ease using Textual - an open-source Python framework.

Throughout this tutorial, you'll learn how to use Textual's built-in widgets, reactive features, and message-passing system to create a dynamic and user-friendly TODO app that's perfect for managing your daily tasks.

From creating and displaying tasks to editing and deleting them, you'll cover all the essential features needed to make a functional TODO app.

You'll also learn how to use Textual CSS to style your TUI for a polished and elegant look, together with some tips and tricks to make it even easier to develop your TUIs in Textual.

This tutorial provides everything you need to get started with building TUIs in Python. By the end of the tutorial, you'll have a fully functional and stylish TODO app that showcases Textual's versatility and useful features.

TutorialBeginnerPython Libraries

pytest tips and tricks for a better testsuite

Florian Bruhin

pytest lets you write simple tests fast - but also scales to very complex scenarios: Beyond the basics of no-boilerplate test functions, this training will show various intermediate/advanced features, as well as gems and tricks.

To attend this training, you should already be familiar with the pytest basics (e.g. writing test functions, parametrize, or what a fixture is) and want to learn how to take the next step to improve your test suites.

If you're already familiar with things like fixture caching scopes, autouse, or using the built-in tmp_path/monkeypatch/... fixtures: There will probably be some slides about concepts you already know, but there are also various little hidden tricks and gems I'll be showing.

TutorialAdvancedTesting

Kubernetes <3 Python - Deploy Python apps & extend Kubernetes with Python

Oz Tiram

You don't have to be an Ops expert to make Kubernetes useful! In this workshop, you will learn how to overcome complexity, and love Kubernetes as a Platform to deploy a Python web application or your data science and machine learning pipelines. You will learn how and when to use basic elements of Kubernetes like Deployments and Stateful Sets.

Once you understand these basic elements, you will learn how to extend Kubernetes using Python. You will learn how to define custom resources and controllers to automate all things related to your applications' life cycle, from ETL through sending email for password reset to where your imagination stops.

In the end of this workshop, you will have deployed a python web application and successfully extend Kubernetes with so-called operators to manage the complete life-cycle of your application.

TutorialIntermediateInfrastructure: Cloud & Hardware

sktime - python toolbox for time series

Franz Kiraly, Sagar Mishra, Kiril Ralinovski

This tutorial presents sktime - a unified, open source framework for machine learning with time series in python. sktime provides interfaces to algorithms of various types, and modular tools for pipelining, composition, and tuning. You will learn how identify your learning task, and how to build, use, and evaluate different algorithms on real-world data sets.

All tutorial notebooks are available in this repository and runnable from the cloud: https://github.com/sktime/sktime-tutorial-europython-2023

TutorialAdvancedPyData: Software Packages & Jupyter

Robust Data Transformation with Pandas: Typing, Validation, Testing

Jakub Urban, Jan Pipek

We will explore possibilities for making our data analyses and transformations in Pandas robust and production ready. We will see how advanced group-by, resample or rolling aggregations work on large time series weather data. (As a bonus, you will learn about Prague climate.) We will use type annotations and schema validations with the Pandera library to make our code more readable and robust. We will also show the potential of property-based testing using the Hypothesis package, with strategies generated from Pandera schemas. We will show how to avoid issues with time zones when working with time series data. By the end of the tutorial, you will have a deeper understanding of advanced Pandas aggregations and be able to write robust, production ready Pandas code.

TutorialIntermediate

Gathering data from the web using Python

Renne Rocha

Information is abundant and readily available on the internet. However, the sheer amount of data can be overwhelming and time-consuming to navigate through. That's where web scraping comes in - a powerful tool used to extract data from websites and turn it into a usable format.

In this tutorial, we will explore the basics of web scraping and how to implement it using Scrapy (a Python framework). Whether you are a data analyst, programmer, or researcher, this tutorial will equip you with the fundamental skills needed to create your own web scraper and extract valuable information from websites.

TutorialIntermediatePython Libraries