75 lines
1.3 KiB
Nix
75 lines
1.3 KiB
Nix
{
|
|
lib,
|
|
buildPythonPackage,
|
|
fetchFromGitHub,
|
|
pythonOlder,
|
|
aioquic,
|
|
cacert,
|
|
h11,
|
|
h2,
|
|
httpx,
|
|
priority,
|
|
trio,
|
|
uvloop,
|
|
wsproto,
|
|
poetry-core,
|
|
pytest-asyncio,
|
|
pytest-trio,
|
|
pytestCheckHook,
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "hypercorn";
|
|
version = "0.17.3";
|
|
pyproject = true;
|
|
|
|
disabled = pythonOlder "3.11"; # missing taskgroup dependency
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "pgjones";
|
|
repo = "Hypercorn";
|
|
tag = version;
|
|
hash = "sha256-AtSMURz1rOr6VTQ7L2EQ4XZeKVEGTPXTbs3u7IhnZo8";
|
|
};
|
|
|
|
postPatch = ''
|
|
sed -i "/^addopts/d" pyproject.toml
|
|
'';
|
|
|
|
build-system = [ poetry-core ];
|
|
|
|
dependencies = [
|
|
h11
|
|
h2
|
|
priority
|
|
wsproto
|
|
];
|
|
|
|
optional-dependencies = {
|
|
h3 = [ aioquic ];
|
|
trio = [ trio ];
|
|
uvloop = [ uvloop ];
|
|
};
|
|
|
|
nativeCheckInputs = [
|
|
httpx
|
|
pytest-asyncio
|
|
pytest-trio
|
|
pytestCheckHook
|
|
]
|
|
++ lib.flatten (lib.attrValues optional-dependencies);
|
|
|
|
__darwinAllowLocalNetworking = true;
|
|
|
|
pythonImportsCheck = [ "hypercorn" ];
|
|
|
|
meta = with lib; {
|
|
changelog = "https://github.com/pgjones/hypercorn/blob/${src.tag}/CHANGELOG.rst";
|
|
homepage = "https://github.com/pgjones/hypercorn";
|
|
description = "ASGI web server inspired by Gunicorn";
|
|
mainProgram = "hypercorn";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ dgliwka ];
|
|
};
|
|
}
|