BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//pretalx//programme.europython.eu//europython-2026//speaker//8LQU
 9C
BEGIN:VTIMEZONE
TZID:Poland
BEGIN:DAYLIGHT
DTSTART:20250717T000000
TZNAME:CEST
TZOFFSETFROM:+0200
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20251026T030000
RDATE:20261025T030000
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20260329T030000
RDATE:20270328T030000
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
SUMMARY:The Problem with None: Sentinel Values and the Semantics of Absenc
 e - Florian Wilhelm
DTSTART;TZID=Poland:20260717T143500
DTEND;TZID=Poland:20260717T150500
DTSTAMP:20260815T160025Z
UID:pretalx-europython-2026-AXAV7D@programme.europython.eu
DESCRIPTION:None is probably the most overloaded value in Python — and o
 ften the wrong one.\n\nPython quietly depends on sentinel values: None\, N
 otImplemented\, Ellipsis\, dataclasses.MISSING. They aren’t just placeho
 lders. They define semantics\, coordinate object interactions\, and influe
 nce API design in subtle but powerful ways.\n\nIn this talk\, we treat sen
 tinel values as a deliberate design tool. We’ll uncover how NotImplement
 ed enables double dispatch\, why None frequently conflates “missing” w
 ith “empty\,” and how sentinel patterns permeate the standard library.
 \n\nBut the real tension appears in typing. Python’s type system still c
 annot properly express sentinel semantics. Optional\, overload\, and Liter
 al only approximate the problem\, and building a fully typed custom sentin
 el remains an open challenge.\n\nWe’ll examine the deferred PEP 661\, wh
 at it tried to solve\, and what its absence means today. Expect practical 
 patterns\, real-world examples\, and a sharper way to think about absence 
 in Python.
LOCATION:S3B
URL:https://programme.europython.eu/europython-2026/talk/AXAV7D/
END:VEVENT
END:VCALENDAR
