ff1a94e523
The nixpkgs-unstable channel's programs.sqlite was used to identify packages producing exactly one binary, and these automatically added to their package definitions wherever possible.
63 lines
1.4 KiB
Nix
63 lines
1.4 KiB
Nix
{ lib
|
|
, appdirs
|
|
, beautifulsoup4
|
|
, buildPythonPackage
|
|
, colorlog
|
|
, fetchFromGitHub
|
|
, git
|
|
, jsonschema
|
|
, lxml
|
|
, markdown
|
|
, python
|
|
, requests
|
|
, substituteAll
|
|
, toml
|
|
}:
|
|
|
|
let
|
|
# NOTE This is needed to download & run another Python program internally in
|
|
# order to generate test cases for library-checker problems.
|
|
pythonEnv = python.withPackages (ps: with ps; [ colorlog jinja2 markdown toml ]);
|
|
in buildPythonPackage rec {
|
|
pname = "online-judge-api-client";
|
|
version = "10.10.1";
|
|
format = "setuptools";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "online-judge-tools";
|
|
repo = "api-client";
|
|
rev = "refs/tags/v${version}";
|
|
hash = "sha256-P0pIjd/YS155dSDpY/ekMp8HnJcM35waV7aoTQiEWHo=";
|
|
};
|
|
|
|
patches = [ ./fix-paths.patch ];
|
|
postPatch = ''
|
|
substituteInPlace onlinejudge/service/library_checker.py \
|
|
--subst-var-by git ${git} \
|
|
--subst-var-by pythonInterpreter ${pythonEnv.interpreter}
|
|
'';
|
|
|
|
propagatedBuildInputs = [
|
|
appdirs
|
|
beautifulsoup4
|
|
colorlog
|
|
jsonschema
|
|
lxml
|
|
requests
|
|
toml
|
|
];
|
|
|
|
# Requires internet access
|
|
doCheck = false;
|
|
|
|
pythonImportsCheck = [ "onlinejudge" "onlinejudge_api" ];
|
|
|
|
meta = with lib; {
|
|
description = "API client to develop tools for competitive programming";
|
|
mainProgram = "oj-api";
|
|
homepage = "https://github.com/online-judge-tools/api-client";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ sei40kr ];
|
|
};
|
|
}
|