Skip to content

pygreece/cfp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📋 cfp – PyCon GR Program Team Utilities

cfp is a Python CLI tool that helps the PyCon Greece Program Team assign reviewers to talk proposals efficiently. It reads proposals and reviewer lists exported from Pretalx, generates fair assignments, and can export filtered views for use with Pretalx again.

🚀 Features

  • 📤 Assigns multiple reviewers per proposal
  • 🔎 Filter assignments by reviewer or proposal ID
  • 🔄 Re-generate assignments when needed
  • 📦 Export to Pretalx-compatible format
  • ✨ Colorful CLI output using Rich

🏗️ Project Structure

cfp/
├── app.py           # Click commands for assignments & filtering
├── assign.py        # Core logic for assigning reviewers
├── utils.py         # Data classes + file I/O
└── __main__.py      # CLI entry point

📂 Inputs

Make sure you have the following files (usually exported from Pretalx):

  • sessions.csv: Contains the proposals (must include ID, Proposal title)
  • reviewers.csv: Contains the reviewers (must include Name, Email)

🧪 Usage

Create assignments

uv run python -m cfp assignments create

Options:

  • --sessions FILE: Alternative path to a file containing all the session as exported from Pretalx [default: sessions.csv]
  • --reviewers FILE: Alternative path to a file containing all the reviewers as exported from Pretalx [default: reviewers.csv]
  • --regen: Regenerate the assignments even if they already exist
  • --verbose: Print additional information about the assignments

Filter assignments

uv run python -m cfp assignments filter --reviewer [email protected]
uv run python -m cfp assignments filter --proposal proposal-123
uv run python -m cfp assignments filter --reviewer [email protected] --pretalx
uv run python -m cfp assignments filter --reviewer [email protected] --reviewer [email protected]

Options:

  • --proposal TEXT: List of proposal IDs to filter assignments for
  • --reviewer TEXT: List of rewviewer emails to filter assignments for
  • --pretalx: Print objects that can be uploaded to Pretalx to add assignments

🧰 Development

Run linters, formatters and type checkers:

uv run ruff check
uv run ruff format
uv run mypy

📜 License

MIT License. See LICENSE for more.

🙌 Acknowledgements

Built with ❤️ for the PyCon Greece Program Committee.

About

Utilities for the Program Team of PyCon GR

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages