BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//pretalx//programme.europython.eu//europython-2026//talk//SEJYRG
BEGIN:VTIMEZONE
TZID:CET
BEGIN:STANDARD
DTSTART:20001029T040000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20000326T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:pretalx-europython-2026-SEJYRG@programme.europython.eu
DTSTART;TZID=CET:20260716T131500
DTEND;TZID=CET:20260716T141500
DESCRIPTION:When you write a Python library\, you have a dilemma. Ship\nasy
 nc-only? Ship blocking-only? Or write everything twice and watch both copi
 es drift?\n\n[Synchronicity](https://github.com/modal-labs/synchronicity) 
 removes this dilemma. Write your library once (in async) and get a blockin
 g\ninterface for free\, while avoiding the boilerplate and limitations of 
 `asyncio.run()` wrappers. We’ll talk through how to handle persistent co
 nnections\, async generators\, clean tracebacks\, type hints and more.\n\n
 We've used it in production at Modal for years\, and it's fully open sourc
 e.\nWe hope it can save you from writing your own library twice!
DTSTAMP:20260624T060721Z
LOCATION:Poster Hall B
SUMMARY:Write async. Get sync for free. - Thom Lane
URL:https://programme.europython.eu/europython-2026/talk/SEJYRG/
END:VEVENT
END:VCALENDAR
