1{ lib
2, buildPythonPackage
3, pythonOlder
4, fetchFromGitHub
5, hatchling
6, opentelemetry-api
7, opentelemetry-sdk
8, opentelemetry-test-utils
9, setuptools
10, wrapt
11, pytestCheckHook
12}:
13
14buildPythonPackage rec {
15 pname = "opentelemetry-instrumentation";
16 version = "1.16.0";
17 disabled = pythonOlder "3.7";
18
19 # to avoid breakage, every package in opentelemetry-python-contrib must inherit this version, src, and meta
20 src = fetchFromGitHub {
21 owner = "open-telemetry";
22 repo = "opentelemetry-python-contrib";
23 rev = "refs/tags/v${version}";
24 hash = "sha256-6tGQjPBej2zv5yJN0S46le3kyD7q3TELYyDmyxlp5Wo=";
25 };
26
27 sourceRoot = "${src.name}/opentelemetry-instrumentation";
28
29 format = "pyproject";
30
31 nativeBuildInputs = [
32 hatchling
33 ];
34
35 propagatedBuildInputs = [
36 opentelemetry-api
37 opentelemetry-sdk
38 setuptools
39 wrapt
40 ];
41
42 nativeCheckInputs = [
43 opentelemetry-test-utils
44 pytestCheckHook
45 ];
46
47 pythonImportsCheck = [ "opentelemetry.instrumentation" ];
48
49 meta = with lib; {
50 homepage = "https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/opentelemetry-instrumentation";
51 description = "Instrumentation Tools & Auto Instrumentation for OpenTelemetry Python";
52 changelog = "https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/${src.rev}";
53 license = licenses.asl20;
54 maintainers = teams.deshaw.members ++ [ maintainers.natsukium ];
55 };
56}