Library for Advent of Code -- Hugues Hoppe.
Project description
Module advent_of_code_hhoppe
Python library to process Advent-of-Code puzzles in a Jupyter notebook. See a complete example.
Usage summary:
-
The preamble optionally specifies reference inputs and answers for the puzzles:
BASE_URL = 'https://github.com/hhoppe/advent_of_code_2021/blob/main/data/google.Hugues_Hoppe.965276/' INPUT_URL = BASE_URL + '2021_{day:02}_input.txt' ANSWER_URL = BASE_URL + '2021_{day:02}{part_letter}_answer.txt' advent = advent_of_code_hhoppe.Advent( year=2021, input_url=INPUT_URL, answer_url=ANSWER_URL)
-
For each day (numbered 1..25), the first notebook cell defines a
puzzle
object:puzzle = advent.puzzle(day=1)
The puzzle input string is automatically read into the attribute
puzzle.input
. This input string is unique to each Advent participant.For each of the two puzzle parts, a function (e.g.
process1
) takes an input string and returns a string or integer answer. Using calls like the following, we time the execution of each function and verify the answers:puzzle.verify(part=1, func=process1) puzzle.verify(part=2, func=process2)
-
At the end of the notebook, a table summarizes timing results.
Alternative ways to specify puzzle inputs/answers
-
The puzzle inputs and answers can be more efficiently downloaded using a single ZIP file:
PROFILE = 'google.Hugues_Hoppe.965276' ZIP_URL = f'https://github.com/hhoppe/advent_of_code_2021/raw/main/data/{PROFILE}.zip' !if [[ ! -d {PROFILE} ]]; then wget -q {ZIP_URL} && unzip -q {PROFILE}; fi INPUT_URL = f'{PROFILE}/{{year}}_{{day:02d}}_input.txt' ANSWER_URL = f'{PROFILE}/{{year}}_{{day:02d}}{{part_letter}}_answer.txt' advent = advent_of_code_hhoppe.Advent( year=2021, input_url=INPUT_URL, answer_url=ANSWER_URL)
-
The puzzle inputs and answers can be obtained directly from adventofcode.com using a web-browser session cookie and the
advent-of-code-data
PyPI package:!pip install -q advent-of-code-data import aocd # Fill-in the session cookie in the following: mkdir -p ~/.config/aocd && echo 53616... >~/.config/aocd/token advent = advent_of_code_hhoppe.Advent(year=2021)
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
Built Distribution
Hashes for advent_of_code_hhoppe-1.0.5.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f4c79314fa4ff7bc912d9e427771f4bac786fd0d1d410b29a21c08bf911ec83 |
|
MD5 | 9ca45b9cdd63262138238d1e0a94e8a4 |
|
BLAKE2b-256 | 09ac7281103a295dd5affc07e2e12c17b58a3218b3d98de75e058c63c15d1d82 |
Hashes for advent_of_code_hhoppe-1.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3167a206e79a89c22eba5eff8c4a40909cae4d04afcc23a2ed2151fa2da1e48 |
|
MD5 | ed79f9d9cf251e3c11f1323110b9c8ab |
|
BLAKE2b-256 | 0e7d781568ddac593ae03fcec78524d24d5b39309d5c45b1a6285ee406ffe3a7 |