1{ lib
2, buildPythonPackage
3, pythonOlder
4, fetchFromGitHub
5, deprecated
6, hatchling
7, importlib-metadata
8, opentelemetry-test-utils
9, setuptools
10, pytestCheckHook
11}:
12
13let
14 self = buildPythonPackage {
15 pname = "opentelemetry-api";
16 version = "1.18.0";
17 disabled = pythonOlder "3.7";
18
19 src = fetchFromGitHub {
20 owner = "open-telemetry";
21 repo = "opentelemetry-python";
22 rev = "refs/tags/v${self.version}";
23 hash = "sha256-h6XDzM29wYiC51S7OpBXvWFCfZ7DmIyGMG2pFjJV7pI=";
24 sparseCheckout = [ "/${self.pname}" ];
25 } + "/${self.pname}";
26
27 format = "pyproject";
28
29 nativeBuildInputs = [
30 hatchling
31 ];
32
33 propagatedBuildInputs = [
34 deprecated
35 importlib-metadata
36 setuptools
37 ];
38
39 nativeCheckInputs = [
40 opentelemetry-test-utils
41 pytestCheckHook
42 ];
43
44 pythonImportsCheck = [ "opentelemetry" ];
45
46 doCheck = false;
47
48 # Enable tests via passthru to avoid cyclic dependency with opentelemetry-test-utils.
49 passthru.tests.${self.pname} = self.overridePythonAttrs { doCheck = true; };
50
51 meta = with lib; {
52 homepage = "https://opentelemetry.io";
53 description = "OpenTelemetry Python API";
54 license = licenses.asl20;
55 maintainers = teams.deshaw.members;
56 };
57 };
58in self