1{ lib
2, stdenv
3, brotlicffi
4, buildPythonPackage
5, certifi
6, chardet
7, charset-normalizer
8, fetchPypi
9, fetchpatch
10, idna
11, pysocks
12, pytest-mock
13, pytest-xdist
14, pytestCheckHook
15, pythonOlder
16, urllib3
17}:
18
19buildPythonPackage rec {
20 pname = "requests";
21 version = "2.31.0";
22 format = "setuptools";
23
24 disabled = pythonOlder "3.7";
25
26 __darwinAllowLocalNetworking = true;
27
28 src = fetchPypi {
29 inherit pname version;
30 hash = "sha256-lCxadY+Y15Dq7Ropy27vx/+w0c968Fw9J5Flbb1q0eE=";
31 };
32
33 propagatedBuildInputs = [
34 brotlicffi
35 certifi
36 charset-normalizer
37 idna
38 urllib3
39 ];
40
41 passthru.optional-dependencies = {
42 security = [];
43 socks = [
44 pysocks
45 ];
46 use_chardet_on_py3 = [
47 chardet
48 ];
49 };
50
51 nativeCheckInputs = [
52 pytest-mock
53 pytest-xdist
54 pytestCheckHook
55 ]
56 ++ passthru.optional-dependencies.socks;
57
58 disabledTests = [
59 # Disable tests that require network access and use httpbin
60 "requests.api.request"
61 "requests.models.PreparedRequest"
62 "requests.sessions.Session"
63 "requests"
64 "test_redirecting_to_bad_url"
65 "test_requests_are_updated_each_time"
66 "test_should_bypass_proxies_pass_only_hostname"
67 "test_urllib3_pool_connection_closed"
68 "test_urllib3_retries"
69 "test_use_proxy_from_environment"
70 "TestRequests"
71 "TestTimeout"
72 ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
73 # Fatal Python error: Aborted
74 "test_basic_response"
75 "test_text_response"
76 ];
77
78 disabledTestPaths = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
79 # Fatal Python error: Aborted
80 "tests/test_lowlevel.py"
81 ];
82
83 pythonImportsCheck = [
84 "requests"
85 ];
86
87 meta = with lib; {
88 description = "HTTP library for Python";
89 homepage = "http://docs.python-requests.org/";
90 changelog = "https://github.com/psf/requests/blob/v${version}/HISTORY.md";
91 license = licenses.asl20;
92 maintainers = with maintainers; [ fab ];
93 };
94}