1{ lib
2, asynctest
3, aiohttp
4, blinker
5, buildPythonPackage
6, certifi
7, ecs-logging
8, fetchFromGitHub
9, httpx
10, jinja2
11, jsonschema
12, Logbook
13, mock
14, pytest-asyncio
15, pytest-bdd
16, pytest-localserver
17, pytest-mock
18, pytestCheckHook
19, pythonOlder
20, sanic
21, sanic-testing
22, starlette
23, structlog
24, tornado
25, urllib3
26, webob
27}:
28
29buildPythonPackage rec {
30 pname = "elastic-apm";
31 version = "6.12.0";
32 format = "setuptools";
33
34 disabled = pythonOlder "3.8";
35
36 src = fetchFromGitHub {
37 owner = "elastic";
38 repo = "apm-agent-python";
39 rev = "refs/tags/v${version}";
40 hash = "sha256-tAX96aOPuwtchLk5A1ANuZI5w5H9/yX3Zj9bRSyHv90=";
41 };
42
43 propagatedBuildInputs = [
44 aiohttp
45 blinker
46 certifi
47 sanic
48 starlette
49 tornado
50 urllib3
51 ];
52
53 checkInputs = [
54 asynctest
55 ecs-logging
56 jinja2
57 jsonschema
58 Logbook
59 mock
60 httpx
61 pytest-asyncio
62 pytest-bdd
63 pytest-mock
64 pytest-localserver
65 sanic-testing
66 pytestCheckHook
67 structlog
68 webob
69 ];
70
71 disabledTests = [
72 "elasticapm_client"
73 ];
74
75 disabledTestPaths = [
76 # Exclude tornado tests
77 "tests/contrib/asyncio/tornado/tornado_tests.py"
78 ];
79
80 pythonImportsCheck = [
81 "elasticapm"
82 ];
83
84 meta = with lib; {
85 description = "Python agent for the Elastic APM";
86 homepage = "https://github.com/elastic/apm-agent-python";
87 license = with licenses; [ bsd3 ];
88 maintainers = with maintainers; [ fab ];
89 };
90}