Skip to main content

Get your puzzle data with a single import

Project description

pyversions pypi womm

Get your puzzle data with a single import statement:

from aocd import data

Might be useful for lazy Pythonistas and speedhackers.

Note: Please use version 0.3+ of this library. It memoizes successful requests client side and rate-limits the get_data function, as requested by the AoC author. Thanks!

Automated submission

New in version 0.4.0.

from aocd import submit
submit(my_answer, level=1, day=25, year=2017)

The same filename introspection of year/day also works for the automated submission. There is no introspection of the “level”, i.e. part A or part B, but there are convenience functions:

from aocd import submit1, submit2
submit1(my_answer_part_1)
submit2(my_answer_part_2)

The response message from AoC will be printed in the terminal. If you gave the right answer, then the puzzle will be refreshed in your web browser (so you can read the instructions for the next part, for example). Proceed with caution! If you submit wrong guesses, your user WILL get rate-limited by Eric, so don’t call submit until you’re fairly confident you have a correct answer!

Setup Guide

Install with pip

pip install advent-of-code-data

Puzzle inputs differ by user. So export your session ID, for example:

export AOC_SESSION=cafef00db01dfaceba5eba11deadbeef

This is a cookie which is set when you login to AoC. You can find it with your browser inspector. If you’re hacking on AoC at all you probably already know these kind of tricks, but if you need help with that part then you can look here.

Note: If you don’t like the env var, you could also put into a text file in your home directory (use the filename ~/.aocdrc).

How does it work?

It will automatically get today’s data at import time, if used within the interactive interpreter. Otherwise, the date is found by introspection of the path and file name from which aocd module was imported.

This means your filenames should be something sensible. The examples below should all parse correctly:

q03.py
xmas_problem_2016_25b_dawg.py
~/src/aoc/2015/p8.py

A filename like problem_one.py will break shit, so don’t do that. If you don’t like weird frame hacks, just use the aocd.get_data() function instead and have a nice day!

Please be aware that Python won’t import the same module twice, so if you want to get data for multiple problems from within the same interpreter session then you should be using the get_data function directly.

>>> from aocd import get_data
>>> get_data(day=2)
'UULDRRRDDLRLURUUURUURDRUURRDRRURUD...
>>> get_data(day=24, year=2015)
'1\n2\n3\n7\n11\n13\n17\n19\n23\n31...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

advent-of-code-data-0.4.2.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

advent_of_code_data-0.4.2-py2.py3-none-any.whl (9.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file advent-of-code-data-0.4.2.tar.gz.

File metadata

File hashes

Hashes for advent-of-code-data-0.4.2.tar.gz
Algorithm Hash digest
SHA256 7e0c90e8b438e634fbfccd977a8639d4c5fbd12bf5f788d763a677ecee2a1d08
MD5 6ff44956048bbacce9b9390f32132842
BLAKE2b-256 dcb89ef9da81ab8d7ba0e951c014cf742c2c8ff247f1e9664b9a51c32444f947

See more details on using hashes here.

File details

Details for the file advent_of_code_data-0.4.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for advent_of_code_data-0.4.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c52326d552866021d6bb954b6b8705d5c4b84d31ff788439b65f284f8348728a
MD5 b76479cfaa009f606dad807aa9b080f9
BLAKE2b-256 6ba12b742062ddf51036404deb367735bcc201389fa95bb49f0e4bc52093de9d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page