@@ -0,0 +1,90 @@
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+
29+buildPythonPackage rec {
30+ pname = "elastic-apm";
31+ version = "6.7.2";
32+ format = "setuptools";
33+
34+ disabled = pythonOlder "3.8";
35+
36+ src = fetchFromGitHub {
37+ owner = "elastic";
38+ repo = "apm-agent-python";
39+ rev = "v${version}";
40+ sha256 = "sha256-NyoFJ3HVxE3AdCCZCZrEk4dDiTIv9cGZYPHVre/PMO4=";
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+}