1{ stdenv
2, lib
3, buildPythonPackage
4, fetchFromGitHub
5, openssl
6, paramiko
7, pytest-asyncio
8, pytest-mock
9, pytestCheckHook
10, pythonOlder
11, setuptools-scm
12, typing-extensions
13}:
14
15buildPythonPackage rec {
16 pname = "proxy-py";
17 version = "2.4.3";
18 format = "setuptools";
19
20 disabled = pythonOlder "3.7";
21
22 src = fetchFromGitHub {
23 owner = "abhinavsingh";
24 repo = "proxy.py";
25 rev = "refs/tags/v${version}";
26 sha256 = "sha256-dA7a9RicBFCSf6IoGX/CdvI8x/xMOFfNtyuvFn9YmHI=";
27 };
28
29 nativeBuildInputs = [
30 setuptools-scm
31 ];
32
33 propagatedBuildInputs = [
34 paramiko
35 typing-extensions
36 ];
37
38 checkInputs = [
39 openssl
40 pytest-asyncio
41 pytest-mock
42 pytestCheckHook
43 ];
44
45 preCheck = ''
46 export HOME=$(mktemp -d);
47 '';
48
49 postPatch = ''
50 substituteInPlace requirements.txt \
51 --replace "typing-extensions==3.7.4.3" "typing-extensions"
52 '';
53
54 pythonImportsCheck = [
55 "proxy"
56 ];
57
58 meta = with lib; {
59 broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
60 description = "Python proxy framework";
61 homepage = "https://github.com/abhinavsingh/proxy.py";
62 license = with licenses; [ bsd3 ];
63 maintainers = with maintainers; [ fab ];
64 };
65}