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.
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
- test export of schedule to iOS app via QR code
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.2.tar.gz
(10.8 kB
view details)
Built Distribution
File details
Details for the file optimal_congress-0.7.2.tar.gz
.
File metadata
- Download URL: optimal_congress-0.7.2.tar.gz
- Upload date:
- Size: 10.8 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 | 52243d530de81f2acafd9f153fff7712610d5a57aca62ea48e94256845e737e6 |
|
MD5 | 5c2d2e3d3e319f70445241d7152b30bc |
|
BLAKE2b-256 | 384cddfa62e1b049716b0f03b43c6f1321a089ba74affe504b773faf62cc1acc |
File details
Details for the file optimal_congress-0.7.2-py3-none-any.whl
.
File metadata
- Download URL: optimal_congress-0.7.2-py3-none-any.whl
- Upload date:
- Size: 12.1 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 | 2c6636deb72c233f82319840476c64476967a6c2590a4d31ccc2b341edf4cab9 |
|
MD5 | 82379f40bbd5d8e5223248a35e3b0dc0 |
|
BLAKE2b-256 | 53a31aee3b620a2820ac6152eb96225cce98c5ac9c917072374698d45cea3e9c |