1{ lib
2, buildPythonPackage
3, pythonOlder
4, fetchFromGitHub
5, deprecated
6, hatchling
7, importlib-metadata
8, opentelemetry-test-utils
9, setuptools
10, pytestCheckHook
11, pythonRelaxDepsHook
12}:
13
14let
15 self = buildPythonPackage rec {
16 pname = "opentelemetry-api";
17 version = "1.20.0";
18 disabled = pythonOlder "3.7";
19
20 # to avoid breakage, every package in opentelemetry-python must inherit this version, src, and meta
21 src = fetchFromGitHub {
22 owner = "open-telemetry";
23 repo = "opentelemetry-python";
24 rev = "refs/tags/v${version}";
25 hash = "sha256-tOg3G6BjHInY5TFYyS7/JA4mQajeP0b1QjrZBGqiqnM=";
26 };
27
28 sourceRoot = "${src.name}/opentelemetry-api";
29
30 format = "pyproject";
31
32 nativeBuildInputs = [
33 hatchling
34 pythonRelaxDepsHook
35 ];
36
37 propagatedBuildInputs = [
38 deprecated
39 importlib-metadata
40 setuptools
41 ];
42
43 pythonRelaxDeps = [
44 "importlib-metadata"
45 ];
46
47 nativeCheckInputs = [
48 opentelemetry-test-utils
49 pytestCheckHook
50 ];
51
52 pythonImportsCheck = [ "opentelemetry" ];
53
54 doCheck = false;
55
56 # Enable tests via passthru to avoid cyclic dependency with opentelemetry-test-utils.
57 passthru.tests.${self.pname} = self.overridePythonAttrs { doCheck = true; };
58
59 meta = with lib; {
60 homepage = "https://github.com/open-telemetry/opentelemetry-python/tree/main/opentelemetry-api";
61 description = "OpenTelemetry Python API";
62 changelog = "https://github.com/open-telemetry/opentelemetry-python/releases/tag/${self.src.rev}";
63 license = licenses.asl20;
64 maintainers = teams.deshaw.members ++ [ maintainers.natsukium ];
65 };
66 };
67in self