nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 async-timeout,
4 buildPythonPackage,
5 curio,
6 fetchFromGitHub,
7 anyio,
8 flask,
9 pytest-asyncio,
10 pytest-trio,
11 pythonOlder,
12 pytestCheckHook,
13 setuptools,
14 trio,
15 trustme,
16 yarl,
17}:
18
19buildPythonPackage rec {
20 pname = "python-socks";
21 version = "2.8.0";
22 pyproject = true;
23
24 __darwinAllowLocalNetworking = true;
25
26 src = fetchFromGitHub {
27 owner = "romis2012";
28 repo = "python-socks";
29 tag = "v${version}";
30 hash = "sha256-b19DfvoJo/9NCjgZ+07WdZGnXNS7/f+FgGdU8s1k2io=";
31 };
32
33 build-system = [ setuptools ];
34
35 dependencies = [
36 trio
37 curio
38 async-timeout
39 ];
40
41 optional-dependencies = {
42 asyncio = lib.optionals (pythonOlder "3.11") [ async-timeout ];
43 trio = [ trio ];
44 curio = [ curio ];
45 anyio = [ anyio ];
46 };
47
48 doCheck = false; # requires tiny_proxy module
49
50 nativeCheckInputs = [
51 anyio
52 flask
53 pytest-asyncio
54 pytest-trio
55 pytestCheckHook
56 trustme
57 yarl
58 ];
59
60 pythonImportsCheck = [ "python_socks" ];
61
62 meta = {
63 changelog = "https://github.com/romis2012/python-socks/releases/tag/${src.tag}";
64 description = "Core proxy client (SOCKS4, SOCKS5, HTTP) functionality for Python";
65 homepage = "https://github.com/romis2012/python-socks";
66 license = lib.licenses.asl20;
67 maintainers = [ ];
68 };
69}