Skip to main content

Python CLI for Everybody Codes

Project description

python-ecd logo

✨ A Python CLI tool for managing Everybody Codes puzzles ✨

Code Quality Release PyPI Latest Release PyPI Downloads versions


💛 Acknowledgements

This tool relies on the Everybody Codes Data library. Shout out to @wimglenn!

📋 Features

  • Initialize workspace for Everybody Codes puzzles
  • Download puzzle inputs automatically
  • Manage session tokens securely
  • Run solutions with both test and real input data
  • Submit solutions and check if they are correct

📦 Installation

The package can be installed using uv, which is recommended for better dependency management and faster installations:

# Install it as a system tool
uv tool install python-ecd

# Otherwise use:
uvx python-ecd

The tool will be available as both 'python-ecd' and 'ecd'

💻 Usage

Initialize a Workspace

Create a new workspace for your puzzles solutions:

It can be done in the current directory:

ecd init

Or in a specified path:

ecd init everybody-codes-solutions

Note that if the directory does not exist, it will be created.

Options:

  • --force, -f: Overwrite existing files

Set Session Token

Configure your session token for accessing puzzle inputs:

ecd set-token <TOKEN>

Note that is not necessary if you set it during initialization.

Download Puzzle Input

Download the input for all available part

ecd pull <QUEST_NUMBER> [OPTIONS]

Options:

  • --year, -y: Event year (default: actual)
  • --force, -f: Overwrite existing files

This command will create the necessary dirs and files if they do not exist.

Test Solutions

Run your solution using test data:

ecd test <QUEST_NUMBER> [OPTIONS]

Options:

  • --year: Event year (default: actual)
  • --part: Part number to test (default: 1)

Run Solutions

Execute your solution for a specific puzzle:

ecd run <QUEST_NUMBER> [OPTIONS]

Options:

  • --year: Event year (default: actual)
  • --part: Part number to execute (default: 1)

Submit Solutions

Submit your solution for a specific puzzle:

ecd push <QUEST_NUMBER> [OPTIONS]

Options:

  • --year: Event year (default: actual)
  • --part: Part number to test (default: 1)

Note that next available part (if exists) will be pulled automatically if the result is correct.

Display Version

Show the current version of the tool:

ecd --version

©️ License

This project is licensed under the terms of the MIT license.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

python_ecd-0.2.3.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

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

python_ecd-0.2.3-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file python_ecd-0.2.3.tar.gz.

File metadata

  • Download URL: python_ecd-0.2.3.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.8

File hashes

Hashes for python_ecd-0.2.3.tar.gz
Algorithm Hash digest
SHA256 39629f87e3f95620fe79cbbab9dc05158653b830aa484f998864a22e0bb93d9f
MD5 3542a85ddffeddeef3efecc30b34d0a9
BLAKE2b-256 c226218329ef7e031082cbceed51475c06e1ddfbfc34f1452ff2aa4f531c0502

See more details on using hashes here.

File details

Details for the file python_ecd-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: python_ecd-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.8

File hashes

Hashes for python_ecd-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0d36c9f819578fa50059abff014b16730b33639563e89775d7a6e10a6cb56190
MD5 1a2bbd95cbea1ef9dccbd3b9d49ff97f
BLAKE2b-256 14c7c62f59c37af9e7072ebe4fb0cab22861f89038c013dfca18b652cb9b3a9a

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