跳转到主要内容

myusername的https://adventofcode.com/解决方案

项目描述

advent-of-code-sample

提供使用advent-of-code-data提供的aoc运行脚本的工作示例插件结构。

aoc运行脚本允许您轻松验证您的Advent of Code解决方案与多个数据集,或验证其他用户的代码与您自己的数据集。

$ cat ~/.config/aocd/tokens.json  # create this file with some auth tokens
{
    "github": "53616c7465645f5f0775...",
    "google": "53616c7465645f5f7238...",
    "reddit": "53616c7465645f5ff7c8...",
    "twitter": "53616c7465645f5fa524..."
}
$ pip install ~/src/advent-of-code-sample  # install the directory which contains your setup.py file
...
$ pip install -q advent-of-code-wim  # can also install some other user's code if you want..?
...
$ aoc --years 2015 --days 3 4 11    # run it!
   0.25s   2015/3  - Perfectly Spherical Houses in a Vacuum            wim/github     part a: 2565                              part b: 2639
   0.11s   2015/3  - Perfectly Spherical Houses in a Vacuum            wim/google     part a: 2592                              part b: 2360
   0.12s   2015/3  - Perfectly Spherical Houses in a Vacuum            wim/reddit     part a: 2592                              part b: 2360
   0.12s   2015/3  - Perfectly Spherical Houses in a Vacuum            wim/twitter    part a: 2565                              part b: 2639
   0.12s   2015/3  - Perfectly Spherical Houses in a Vacuum     myusername/github     part a: 1234 (expected: 2565)             part b: 5678 (expected: 2639)
   0.12s   2015/3  - Perfectly Spherical Houses in a Vacuum     myusername/google     part a: 1234 (expected: 2592)             part b: 5678 (expected: 2360)
   0.11s   2015/3  - Perfectly Spherical Houses in a Vacuum     myusername/reddit     part a: 1234 (expected: 2592)             part b: 5678 (expected: 2360)
   0.11s   2015/3  - Perfectly Spherical Houses in a Vacuum     myusername/twitter    part a: 1234 (expected: 2565)             part b: 5678 (expected: 2639)
   9.04s   2015/4  - The Ideal Stocking Stuffer                        wim/github     part a: 254575                            part b: 1038736
  25.43s   2015/4  - The Ideal Stocking Stuffer                        wim/google     part a: 117946                            part b: 3938038
  12.20s   2015/4  - The Ideal Stocking Stuffer                        wim/reddit     part a: 254575                            part b: 1038736
  47.67s   2015/4  - The Ideal Stocking Stuffer                        wim/twitter    part a: 282749                            part b: 9962624
   0.12s   2015/4  - The Ideal Stocking Stuffer                 myusername/github     part a: 1234 (expected: 254575)           part b: 5678 (expected: 1038736)
   0.12s   2015/4  - The Ideal Stocking Stuffer                 myusername/google     part a: 1234 (expected: 117946)           part b: 5678 (expected: 3938038)
   0.12s   2015/4  - The Ideal Stocking Stuffer                 myusername/reddit     part a: 1234 (expected: 254575)           part b: 5678 (expected: 1038736)
   0.12s   2015/4  - The Ideal Stocking Stuffer                 myusername/twitter    part a: 1234 (expected: 282749)           part b: 5678 (expected: 9962624)
   6.17s   2015/11 - Corporate Policy                                  wim/github     part a: vzbxxyzz                          part b: vzcaabcc
   6.26s   2015/11 - Corporate Policy                                  wim/google     part a: cqjxxyzz                          part b: cqkaabcc
   4.69s   2015/11 - Corporate Policy                                  wim/reddit     part a: hxbxxyzz                          part b: hxcaabcc
   5.75s   2015/11 - Corporate Policy                                  wim/twitter    part a: hxbxxyzz                          part b: hxcaabcc
   0.11s   2015/11 - Corporate Policy                           myusername/github     part a: 1234 (expected: vzbxxyzz)         part b: 5678 (expected: vzcaabcc)
   0.12s   2015/11 - Corporate Policy                           myusername/google     part a: 1234 (expected: cqjxxyzz)         part b: 5678 (expected: cqkaabcc)
   0.11s   2015/11 - Corporate Policy                           myusername/reddit     part a: 1234 (expected: hxbxxyzz)         part b: 5678 (expected: hxcaabcc)
   0.12s   2015/11 - Corporate Policy                           myusername/twitter    part a: 1234 (expected: hxbxxyzz)         part b: 5678 (expected: hxcaabcc)

如何集成到您的代码中

aoc运行脚本使用setuptools的服务和服务插件动态发现功能来定位和运行您的代码。在setup.py中定义您插件的入口点。要使用的组名是"adventofcode.user"。

# setup.py
from setuptools import setup

setup(
    ...
    entry_points={"adventofcode.user": ["myusername = mypackage:mysolve"]},
)

mypackage更改为用于导入您的包或模块名。名称mysolve应解析为您的包命名空间中的可调用对象,该对象接受三个命名参数yeardaydata(任何顺序都可以),并返回两个值,例如。

def mysolve(year, day, data):
    ...
    return part_a_answer, part_b_answer

在入口点内部,您可以执行任何需要的操作以将任务委托给您的代码。例如,将数据写入临时文件然后运行脚本,或导入一个函数并将数据直接作为参数传递。唯一的要求是此入口点应返回一个包含两个值的元组,即该天拼图问题的答案,其余部分由您决定。您可以分叉此存储库并编辑它,或者只需手动编写自己的插件。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定该选择哪个,请了解更多关于 安装包 的信息。

源代码分发

本版本没有提供源代码分发文件。请查看关于 生成分发存档 的教程。

构建后的分发

advent_of_code_sample-0.1-py2.py3-none-any.whl (5.0 kB 查看哈希值)

上传时间: Python 2 Python 3

支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面