“用于创建和测试代码出现解决方案的框架。”
项目描述
代码框架的出现
用于在 Python 中实施 Advent of Code 解决方案的框架。
快速开始
Pip 安装项目,以便您可以访问该aoc命令。
pip install aoc-starter
创建一个要在其中写入解决方案的空目录。
aoc init
现在,您已准备好开始实施您的解决方案!
aoc create 01 --year 2021
这将创建 python 文件,2021/day01.py您将在其中实施解决方案。
实施解决方案后,您可以使用以下命令运行它:
aoc run 01 --year 2021 -i input.txt
解决方案实施
该文件2021/day01.py将有一个具体的类,Solution01它Solution从aoc-starter.
为了最好地实施您的解决方案,必须/可以定义多种方法。
零件功能
这些是基类中唯一的抽象方法,因此必须实现。
def _part_one(self) -> int:
...
def _part_two(self) -> int:
...
这些函数应该返回代码出现问题的整数答案。可以使用 data 属性访问输入数据self.data。
解析数据
您可以使用三个函数来解析数据:
def _get_data(self) -> list[Any]:
...
def _get_data_for_part_one(self) -> list[Any]:
...
def _get_data_for_part_two(self) -> list[Any]:
...
该_get_data功能是默认功能,因此如果您不实现其他功能之一,则_get_data使用该功能。如果每个部分之间的数据解析方式存在差异,您可以使用更具体的函数。
在这些函数中,您需要将数据作为列表返回,该返回值存储在self.data.
输入处理程序
解决方案基类有一个属性input,即 type aoc.InputHandler。该对象是原始数据和解决方案之间的中介。在解析数据时,您可以使用该self.input.as_list函数与原始内容进行交互。
# default, return the content as a list of strings
def _get_data(self) -> list[str]:
return self.input.as_list()
# parse as a certain type
def _get_data(self) -> list[int]:
return self.input.as_list(int)
# use a custom parser
def _get_data(self) -> list[tuple[str, int]]:
def parser(content: str, **kwargs) -> tuple[str, int]:
key, val = content.split(": ")
return key, int(val)
return self.input.as_list(parser)
重新格式化输入文件
您可以使用该_reformat_data函数来更改输入数据的外观。
流行线
有时输入文件的开头有一行与实际数据不同。有InputHandler一个方法pop_line可以删除并返回原始内容中的第一行。如果您想在任何重新格式化之前使用它,您可以覆盖_pop_lines解决方案中的方法。
class Day01(Solution):
first_line: str
def _pop_lines(self) -> None:
self.first_line = self.input.pop_line()
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
aoc-starter-0.2.0.tar.gz
(10.3 kB
查看哈希)
内置分布
aoc_starter-0.2.0-py3-none-any.whl
(11.4 kB
查看哈希)
关
aoc_starter -0.2.0-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 245fae125253f1581a373e6f4e3b2ca4bb61945ecaebc7d1dc296a8dee274c74 |
|
| MD5 | 1bc6a8939bc4f57de86a62dea1b8cca0 |
|
| 布莱克2-256 | b222372819265c61c2a0cef4921fadaf862ff2adcda6663888583924cf3921cd |