159e378cbb
GitOrigin-RevId: c04d5652cfa9742b1d519688f65d1bbccea9eb7e
147 lines
3.1 KiB
Nix
147 lines
3.1 KiB
Nix
{
|
|
nodejs,
|
|
lib,
|
|
buildPythonPackage,
|
|
pythonOlder,
|
|
fetchFromGitHub,
|
|
poetry-core,
|
|
# install_requires
|
|
charset-normalizer,
|
|
h2,
|
|
onecache,
|
|
# test dependencies
|
|
asgiref,
|
|
black,
|
|
django,
|
|
click,
|
|
httpx,
|
|
proxy-py,
|
|
pytest-aiohttp,
|
|
pytest-asyncio,
|
|
pytest-django,
|
|
pytest-mock,
|
|
pytest-sugar,
|
|
pytest-timeout,
|
|
uvicorn,
|
|
httptools,
|
|
typed-ast,
|
|
uvloop,
|
|
requests,
|
|
aiohttp,
|
|
aiodns,
|
|
pytestCheckHook,
|
|
stdenv,
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "aiosonic";
|
|
version = "0.21.0";
|
|
pyproject = true;
|
|
|
|
disabled = pythonOlder "3.8";
|
|
|
|
__darwinAllowLocalNetworking = true;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "sonic182";
|
|
repo = "aiosonic";
|
|
rev = "refs/tags/${version}";
|
|
hash = "sha256-YvqRuxl+Dgnsla/iotvWREdh93jwnXaq+F9py9MGP0o=";
|
|
};
|
|
|
|
postPatch = ''
|
|
substituteInPlace pytest.ini --replace-fail \
|
|
"addopts = --black --cov=aiosonic --cov-report term --cov-report html --doctest-modules" \
|
|
"addopts = --doctest-modules"
|
|
'';
|
|
|
|
build-system = [ poetry-core ];
|
|
|
|
dependencies = [
|
|
charset-normalizer
|
|
onecache
|
|
h2
|
|
];
|
|
|
|
nativeCheckInputs = [
|
|
aiohttp
|
|
aiodns
|
|
asgiref
|
|
black
|
|
django
|
|
click
|
|
httpx
|
|
proxy-py
|
|
pytest-aiohttp
|
|
pytest-asyncio
|
|
pytest-django
|
|
pytest-mock
|
|
pytest-sugar
|
|
pytest-timeout
|
|
uvicorn
|
|
httptools
|
|
typed-ast
|
|
uvloop
|
|
requests
|
|
pytestCheckHook
|
|
nodejs
|
|
];
|
|
|
|
pythonImportsCheck = [ "aiosonic" ];
|
|
|
|
disabledTests =
|
|
lib.optionals stdenv.isLinux [
|
|
# need network
|
|
"test_simple_get"
|
|
"test_get_python"
|
|
"test_post_http2"
|
|
"test_get_http2"
|
|
"test_method_lower"
|
|
"test_keep_alive_smart_pool"
|
|
"test_keep_alive_cyclic_pool"
|
|
"test_get_with_params"
|
|
"test_get_with_params_in_url"
|
|
"test_get_with_params_tuple"
|
|
"test_post_form_urlencoded"
|
|
"test_post_tuple_form_urlencoded"
|
|
"test_post_json"
|
|
"test_put_patch"
|
|
"test_delete"
|
|
"test_delete_2"
|
|
"test_get_keepalive"
|
|
"test_post_multipart_to_django"
|
|
"test_connect_timeout"
|
|
"test_read_timeout"
|
|
"test_timeouts_overriden"
|
|
"test_pool_acquire_timeout"
|
|
"test_simple_get_ssl"
|
|
"test_simple_get_ssl_ctx"
|
|
"test_simple_get_ssl_no_valid"
|
|
"test_get_chunked_response"
|
|
"test_get_chunked_response_and_not_read_it"
|
|
"test_read_chunks_by_text_method"
|
|
"test_get_body_gzip"
|
|
"test_get_body_deflate"
|
|
"test_post_chunked"
|
|
"test_close_connection"
|
|
"test_close_old_keeped_conn"
|
|
"test_get_redirect"
|
|
"test_max_redirects"
|
|
"test_get_image"
|
|
"test_get_image_chunked"
|
|
"test_get_with_cookies"
|
|
"test_proxy_request"
|
|
]
|
|
++ lib.optionals stdenv.isDarwin [
|
|
# "FAILED tests/test_proxy.py::test_proxy_request - Exception: port 8865 never got active"
|
|
"test_proxy_request"
|
|
];
|
|
|
|
meta = {
|
|
changelog = "https://github.com/sonic182/aiosonic/blob/${version}/CHANGELOG.md";
|
|
description = "Very fast Python asyncio http client";
|
|
license = lib.licenses.mit;
|
|
homepage = "https://github.com/sonic182/aiosonic";
|
|
maintainers = with lib.maintainers; [ geraldog ];
|
|
};
|
|
}
|