GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - EuroPython/programapi: Program API

BranchesTags
Open more actions menu

Latest commit

 

History

149 Commits
149 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
data
data
 
 
src
src
 
 
tests
tests
 
 
.gitignore
.gitignore
 
 
.pre-commit-config.yaml
.pre-commit-config.yaml
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
pyproject.toml
pyproject.toml
 
 
uv.lock
uv.lock
 
 

Repository files navigation

ðŸŽĪ programapi

This project powers the EuroPython 2026 website, Discord bot, and internal bot ðŸĶœ by downloading, transforming, and serving clean, structured JSON files for sessions, speakers, and the schedule, all pulled from Pretalx.

Built for transparency. Designed for reuse. Optimized for EuroPython.


🚀 What This Project Does

  1. Downloads submission and speaker data from Pretalx.
  2. Transforms raw data:
    • Removes private/irrelevant fields
    • Normalizes formats
    • Adds computed fields (e.g. URLs, delivery mode)
  3. Serves the transformed JSON files via a static API.

⚙ïļ Installation

  1. Clone the repo

    git clone https://github.com/EuroPython/programapi.git
    cd programapi
  2. Install uv (fast Python package manager)

  3. Create a Python 3.13 virtual environment

    uv venv -p 3.13
  4. Install dev dependencies

    make dev
  5. Enable pre-commit hooks

    make pre-commit

🛠ïļ Configuration

You can update the event year or shortname in src/config.py.

Also, create a .env file in the project root and set:

PRETALX_TOKEN=your_api_token_here

(Yes, Pretalx has rate limits. Please be nice. ðŸĪŠ)


ðŸ“Ķ Usage

  • Run the entire pipeline:

    make all
  • Run only the download step:

    make download
  • Run only the transformation step:

    make transform
  • (Optional) Exclude components:

    make all EXCLUDE="schedule youtube"

🌐 API Endpoints

Hosted at:

https://static.europython.eu/programme/ep2026/releases/current
Endpoint Description
/speakers.json List of confirmed speakers
/sessions.json List of confirmed sessions
/schedule.json Latest conference schedule

📖 Schema Documentation

Looking for field definitions and examples? Check out the 👉 data/examples/README.md for a full schema reference with example payloads and explanations.


💎 Questions? Feedback?

Feel free to open an issue or reach us at [email protected]. We love contributors 💜


📅 Last updated for: EuroPython 2026

About

Program API

Resources

Readme
MIT license
Activity
Custom properties

Stars

9 stars

Watchers

5 watching

Forks

1 fork
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.