{ 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.hostPlatform.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.hostPlatform.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 ]; }; }