1{ lib
2, isPy27
3, buildPythonPackage
4, fetchFromGitHub
5, pycryptodome
6, uvloop
7}:
8
9buildPythonPackage rec {
10 pname = "pproxy";
11 version = "2.3.7";
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 = "7fccf8dd62204f34b0aa3a70fc568fd6ddff7728";
20 sha256 = "1sl2i0kymnbsk49ina81yjnkxjy09541f7pmic8r6rwsv1s87skc";
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}