CLI to find an optimal, personal schedule for the 37c3 congress.
Project description
Optimal Congress
Command Line Interface to find an optimal, personal schedule for the 37c3 congress.
Project status
⚠️ Development for this project is currently on hold. It can quickly be adapted for future CCC events. ⚠️
Optimization logic
The optimization relies on a simple 2-fold logic:
- Find a personal schedule that maximizes the sum of 'rating scores' assigned to scheduled events.
- The schedule must be feasible, i.e. the times of scheduled events must not overlap.
Installation
pip install optimal-congress
Available commands
optimal-congress
provides the following commands:
$ optimal-congress -h
Usage: optimal-congress [OPTIONS] COMMAND [ARGS]...
Optimize your personal schedule for the 37c3.
╭─ Options ────────────────────────────────────────────────────────────────────────────╮
│ --verbose -v Include debug messages in output. │
│ --help -h Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────╮
│ dump Export all latest ratings to CSV, for bulk editing. │
│ fetch Fetch events and rooms from API, and update local cache. │
│ load Bulk import ratings from CSV. │
│ next List next upcoming events, filtered by minimum rating. │
│ optimize Optimize the schedule based on ratings. │
│ rate Interactively rate those events that have not been rated yet. │
│ ratings List all latest ratings. │
╰──────────────────────────────────────────────────────────────────────────────────────╯
Example Workflow
- Fetch events and rooms from congress API:
$ optimal-congress fetch
Fetching events and rooms from API...
Fetched 49 events and 58 rooms from API.
Comparing API with cache...
Found 0 new events, and 0 removed events.
Updating cache...
Done.
- Interactively rate events, if not already rated:
$ optimal-congress rate
Unrated event (1/65):
2023-12-28 20:15 - 20:55
Lützerath Lebt! Einblicke in den Widerstand
You can't evict a movement! Der Energiekonzern RWE wird noch Jahre brauchen, die Kohle unter Lützi abzubaggern: Der Kampf gegen die Kohle und für Klimagerechtigkeit geht weiter!
https://events.ccc.de/congress/2023/hub/en/event/lutzerath_lebt_einblicke_in_den_widerstand
Rate from 0 to 10 (Enter to exit):
- Review you current ratings:
$ optimal-congress ratings
loading events and ratings from cache...
Latest ratings:
- Rating: 8.0 - Amateurfunk als Hilfe in Not- und Katastrophenfäll..https://events.ccc.de/congress/2023/hub/en/event/amateurfunk-als-hilfe-in-not-und-katastrophenfalle
- Rating: 8.0 - InfraNodus: Reveal Non-Obvious and Find the Gaps w..https://events.ccc.de/congress/2023/hub/en/event/infranodus-reveal-non-obvious-and-find-the-gaps-wi
- Optimize your personal schedule:
$ optimal-congress optimize
loading events, ratings, and rooms from cache...
Scheduled events:
- Wed 27 10:30-11:00 Saal 1..........37C3: Feierliche Eröffnung................https://events.ccc.de/congress/2023/hub/en/event/37c3_feierliche_eroffnung
- Wed 27 11:00-11:40 Saal Granville..The Trouble with Green Electricity Certi..https://events.ccc.de/congress/2023/hub/en/event/the_trouble_with_green_electricity_certificates
...
Testing
Software testing uses pytest
, relying upon poetry
and tox
.
To run all tests, across multiple python versions:
poetry run tox
Roadmap
- output more/all information with associated events (see feature request and example for more compact hyperlinks with
rich
) - change rating scheme, to minimize effort and maximize flexibility (see feature request),
e.g. by first marking favorites, and only requiring relative ratings for conflicting favorites - test export of schedule to iOS app via QR code (same format as halfnarp)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
optimal_congress-0.7.4.tar.gz
(11.7 kB
view details)
Built Distribution
File details
Details for the file optimal_congress-0.7.4.tar.gz
.
File metadata
- Download URL: optimal_congress-0.7.4.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.10.6 Linux/6.6.6-76060606-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb3f15f4dcb5642b583fcf6b3969c0f235d267b7922f37af374e3dd0a4472ccb |
|
MD5 | 94fb18e265780adea232c11a16becb7d |
|
BLAKE2b-256 | bc2c63f43a1b36c5b4a5e607f41a01a4b6c63e24b2d3f28d93d7ef7705189ee9 |
File details
Details for the file optimal_congress-0.7.4-py3-none-any.whl
.
File metadata
- Download URL: optimal_congress-0.7.4-py3-none-any.whl
- Upload date:
- Size: 12.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.10.6 Linux/6.6.6-76060606-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84496f4fed9a23b4b22d4847c8c91f6885a1657e2a379b2e80a099b6290c6380 |
|
MD5 | 7db21f60291272fb1af5737b151abf29 |
|
BLAKE2b-256 | f0bda17d8ef40f115b9a0665d97007fa5879689e52995a8763e62199d768a359 |