1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6
7 colorlog,
8 importlab,
9 online-judge-tools,
10 pyyaml,
11 setuptools,
12 toml,
13
14 pytestCheckHook,
15}:
16
17buildPythonPackage rec {
18 pname = "online-judge-verify-helper";
19 version = "5.6.0";
20 pyproject = true;
21 disabled = pythonOlder "3.12";
22
23 src = fetchFromGitHub {
24 owner = "online-judge-tools";
25 repo = "verification-helper";
26 tag = "v${version}";
27 hash = "sha256-sBR9/rf8vpDRbRD8HO2VNmxVckXPmPjUih7ogLRFaW8=";
28 };
29
30 build-system = [ setuptools ];
31
32 dependencies = [
33 colorlog
34 importlab
35 online-judge-tools
36 pyyaml
37 setuptools
38 toml
39 ];
40
41 nativeCheckInputs = [
42 pytestCheckHook
43 ];
44
45 # No additional dependencies or network access
46 disabledTestPaths = [
47 "tests/test_docs.py"
48 "tests/test_python.py"
49 "tests/test_rust.py"
50 "tests/test_stats.py"
51 "tests/test_verify.py"
52 ];
53
54 pythonImportsCheck = [
55 "onlinejudge"
56 "onlinejudge_bundle"
57 "onlinejudge_verify"
58 "onlinejudge_verify_resources"
59 ];
60
61 meta = {
62 description = "Testing framework for snippet libraries used in competitive programming";
63 mainProgram = "oj-verify";
64 homepage = "https://github.com/online-judge-tools/verification-helper";
65 changelog = "https://github.com/online-judge-tools/verification-helper/releases/tag/v${version}";
66 license = lib.licenses.mit;
67 maintainers = with lib.maintainers; [ toyboot4e ];
68 };
69}