A user-friendly environment management CLI and package for Advent of Code.
aocenv is a command-line tool that helps you manage your Advent of Code solutions. It provides a structured environment to save, load, and run your solutions for different days and parts.
pip install aocenvTo start using aocenv, you need to initialize an environment. This can be done using the init command:
aoc init <path> [session_cookie]<path>: The directory where you want to store your Advent of Code solutions.[session_cookie]: (Optional) Your Advent of Code session cookie. You can pass this in the configuration wizard. This is required to download puzzle inputs and submit answers.
The init command will create a config.toml file in the specified path and set up the necessary directory structure.
To get your Advent of Code session cookie, follow these steps:
- Go to adventofcode.com.
- Log in to your account.
- Open your browser's developer tools (usually by pressing F12 or right-clicking and selecting "Inspect").
- Go to the "Application" tab (or "Storage" in some browsers).
- Expand "Cookies" and select
https://adventofcode.com. - Find the cookie named
sessionand copy its value. This is your session cookie.
The main workflow of aocenv revolves around the run, bind, load, and clear commands.
aoc run: Executes your solution inmain.py.aoc bind [name]: Saves the current contents ofmain.pyas a solution. You can optionally provide a name for the solution if you want to store more than one solution (for example version with visuallization).aoc load <year> <day> <part> [name]: Loads a previously saved solution intomain.py.aoc clear: Resets the contents ofmain.pyto a template.
-
Initialize the environment:
aoc init ./aoc-solutions
-
Write your solution for a specific day and part in the
main.pyfile within the./aoc-solutionsdirectory. -
Run your solution:
aoc run
-
Save your solution:
aoc bind -
Load a different solution:
aoc load 2023 1 1
aoc init <path> [session_cookie]: Initializes the environment.--default: Use default configuration without running the wizard.
aoc run: Runs themain.pyfile.aoc bind [name]: Binds the contents ofmain.py.--force: Overwrite an existing solution with the same name.
aoc load <year> <day> <part> [name]: Loads a saved solution intomain.py.aoc clear: Sets themain.pycontents to the default.aoc test: (Coming soon) Runs test cases for your solutions.