{ lib , buildPythonPackage , fetchFromGitHub , pythonOlder , pdm-backend , appdirs , loguru , requests , setuptools , toml , websocket-client , asciimatics , pyperclip , aria2 , fastapi , psutil , pytest-xdist , pytestCheckHook , responses , uvicorn }: buildPythonPackage rec { pname = "aria2p"; version = "0.12.0"; format = "pyproject"; disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "pawamoy"; repo = pname; rev = "refs/tags/${version}"; hash = "sha256-WlbZP2+qUSyfmeFFiuarXI3VaNZvD9cnOef/WM+J0OE="; }; nativeBuildInputs = [ pdm-backend ]; propagatedBuildInputs = [ appdirs loguru requests setuptools # for pkg_resources toml websocket-client ]; passthru.optional-dependencies = { tui = [ asciimatics pyperclip ]; }; preCheck = '' export HOME=$TMPDIR ''; nativeCheckInputs = [ aria2 fastapi pytest-xdist pytestCheckHook responses psutil uvicorn ] ++ passthru.optional-dependencies.tui; disabledTests = [ # require a running display server "test_add_downloads_torrents_and_metalinks" "test_add_downloads_uris" # require a running aria2 server "test_cli_autoclear_commands" "test_get_files_method" "test_pause_subcommand" "test_resume_method" ]; pythonImportsCheck = [ "aria2p" ]; meta = with lib; { homepage = "https://github.com/pawamoy/aria2p"; changelog = "https://github.com/pawamoy/aria2p/blob/${src.rev}/CHANGELOG.md"; description = "Command-line tool and library to interact with an aria2c daemon process with JSON-RPC"; mainProgram = "aria2p"; license = licenses.isc; maintainers = with maintainers; [ koral ]; }; }