1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 flaky,
6 hatchling,
7 opentelemetry-api,
8 opentelemetry-semantic-conventions,
9 opentelemetry-test-utils,
10 setuptools,
11 typing-extensions,
12 pytestCheckHook,
13}:
14
15let
16 self = buildPythonPackage {
17 inherit (opentelemetry-api) version src;
18 pname = "opentelemetry-sdk";
19 pyproject = true;
20
21 disabled = pythonOlder "3.8";
22
23 sourceRoot = "${opentelemetry-api.src.name}/opentelemetry-sdk";
24
25 build-system = [ hatchling ];
26
27 dependencies = [
28 opentelemetry-api
29 opentelemetry-semantic-conventions
30 typing-extensions
31 ];
32
33 nativeCheckInputs = [
34 flaky
35 opentelemetry-test-utils
36 pytestCheckHook
37 ];
38
39 disabledTestPaths = [ "tests/performance/benchmarks/" ];
40
41 pythonImportsCheck = [ "opentelemetry.sdk" ];
42
43 doCheck = false;
44
45 # Enable tests via passthru to avoid cyclic dependency with opentelemetry-test-utils.
46 passthru.tests.${self.pname} = self.overridePythonAttrs { doCheck = true; };
47
48 meta = opentelemetry-api.meta // {
49 homepage = "https://github.com/open-telemetry/opentelemetry-python/tree/main/opentelemetry-sdk";
50 description = "OpenTelemetry Python SDK";
51 };
52 };
53in
54self