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