nixpkgs/pkgs/development/python-modules/aocd/default.nix
2024-01-27 13:22:04 +01:00

117 lines
2.9 KiB
Nix

{ lib
, stdenv
, aocd-example-parser
, beautifulsoup4
, buildPythonPackage
, fetchFromGitHub
, numpy
, pebble
, pook
, pytest-freezegun
, pytest-mock
, pytest-raisin
, pytest-socket
, pytestCheckHook
, python-dateutil
, pythonOlder
, requests
, requests-mock
, rich
, setuptools
, termcolor
, tzlocal
}:
buildPythonPackage rec {
pname = "aocd";
version = "2.0.1";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "wimglenn";
repo = "advent-of-code-data";
rev = "refs/tags/v${version}";
hash = "sha256-YZvcR97uHceloqwoP+azaBmj3GLusYNbItLIaeJ3QD0=";
};
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
aocd-example-parser
beautifulsoup4
pebble
python-dateutil
requests
rich # for example parser aoce. must either be here or checkInputs
termcolor
tzlocal
];
nativeCheckInputs = [
numpy
pook
pytest-freezegun
pytest-mock
pytest-raisin
pytest-socket
pytestCheckHook
requests-mock
];
# Too many failing tests
preCheck = "rm pytest.ini";
disabledTests = [
"test_results"
"test_results_xmas"
"test_run_error"
"test_run_and_autosubmit"
"test_run_and_no_autosubmit"
"test_load_input_from_file"
"test_examples_cache" # IndexError: list index out of range
"test_example_partial" # ValueError: not enough values to unpack (expected 1, got 0)
"test_run_against_examples" # AssertionError: assert '2022/25 - The Puzzle Title' in ''
"test_aocd_no_examples" # SystemExit: 2
"test_aocd_examples" # SystemExit: 2
"test_aoce" # SystemExit: 1
# TypeError: sequence item 0: expected str instance, bool found
# Likely because they use `pook.get` to get a webpage
"test_submit_prevents_bad_guesses_too_high"
"test_submit_prevents_bad_guesses_too_low"
"test_submit_prevents_bad_guesses_known_incorrect"
"test_submit_correct_answer"
"test_correct_submit_reopens_browser_on_answer_page"
"test_server_error"
"test_submit_when_already_solved"
"test_submitted_too_recently_autoretry"
"test_submitted_too_recently_autoretry_quiet"
"test_submit_when_submitted_too_recently_no_autoretry"
"test_submit_wrong_answer "
"test_correct_submit_records_good_answer"
"test_submits_for_partb_when_already_submitted_parta"
"test_submit_when_parta_solved_but_answer_unsaved"
"test_submit_saves_both_answers_if_possible"
"test_submit_puts_level1_by_default"
"test_cannot_submit_same_bad_answer_twice"
"test_submit_float_warns"
];
pythonImportsCheck = [
"aocd"
];
meta = with lib; {
description = "Get your Advent of Code data with a single import statement";
homepage = "https://github.com/wimglenn/advent-of-code-data";
changelog = "https://github.com/wimglenn/advent-of-code-data/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ aadibajpai ];
platforms = platforms.unix;
};
}