1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 pythonOlder,
6
7 # install_requires
8 dnspython,
9 eventlet,
10 kombu,
11 mock,
12 packaging,
13 path,
14 pyyaml,
15 requests,
16 setuptools,
17 six,
18 werkzeug,
19 wrapt,
20}:
21
22buildPythonPackage rec {
23 pname = "nameko";
24 version = "2.14.1";
25 pyproject = true;
26
27 disabled = pythonOlder "3.9";
28
29 src = fetchPypi {
30 inherit pname version;
31 hash = "sha256-J1NXi7Tca5KAGuozTSkwuX37dEhucF7daRmDBqlGjIg=";
32 };
33
34 postPatch = ''
35 substituteInPlace setup.py --replace-fail "path.py" "path"
36 '';
37
38 build-system = [ setuptools ];
39
40 dependencies = [
41 dnspython
42 eventlet
43 kombu
44 mock
45 packaging
46 path
47 pyyaml
48 requests
49 setuptools
50 six
51 werkzeug
52 wrapt
53 ];
54
55 # tests depend on RabbitMQ being installed - https://nameko.readthedocs.io/en/stable/contributing.html#running-the-tests
56 # and most of the tests are network based
57 doCheck = false;
58
59 pythonImportsCheck = [ "nameko" ];
60
61 meta = with lib; {
62 description = "Microservices framework that lets service developers concentrate on application logic and encourages testability";
63 mainProgram = "nameko";
64 homepage = "https://www.nameko.io/";
65 changelog = "https://github.com/nameko/nameko/releases/tag/v${version}";
66 license = licenses.asl20;
67 maintainers = with maintainers; [ siddharthdhakane ];
68 };
69}