1{ lib
2, isPy27
3, buildPythonPackage
4, fetchFromGitHub
5, pycryptodome
6, uvloop
7}:
8
9buildPythonPackage rec {
10 pname = "pproxy";
11 version = "2.3.2";
12
13 disabled = isPy27;
14
15 # doesn't use tagged releases. Tests not in PyPi versioned releases
16 src = fetchFromGitHub {
17 owner = "qwj";
18 repo = "python-proxy";
19 rev = "818ab9cc10565789fe429a7be50ddefb9c583781";
20 sha256 = "0g3cyi5lzakhs5p3fpwywbl8jpapnr8890zw9w45dqg8k0svc1fi";
21 };
22
23 propagatedBuildInputs = [
24 pycryptodome
25 uvloop
26 ];
27
28 pythonImportsCheck = [ "pproxy" ];
29 disabledTests = [ "api_server" "api_client" ]; # try to connect to outside Internet, so disabled
30 # test suite doesn't use test runner. so need to run ``python ./tests/*``
31 checkPhase = ''
32 shopt -s extglob
33 for f in ./tests/!(${builtins.concatStringsSep "|" disabledTests}).py ; do
34 echo "***Testing $f***"
35 eval "python $f"
36 done
37 '';
38
39 meta = with lib; {
40 description = "Proxy server that can tunnel among remote servers by regex rules";
41 homepage = "https://github.com/qwj/python-proxy";
42 license = licenses.mit;
43 maintainers = with maintainers; [ drewrisinger ];
44 };
45}