Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 deprecated,
6 hatchling,
7 importlib-metadata,
8 typing-extensions,
9 opentelemetry-test-utils,
10 pytestCheckHook,
11 writeScript,
12}:
13
14let
15 self = buildPythonPackage rec {
16 pname = "opentelemetry-api";
17 version = "1.34.0";
18 pyproject = true;
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 tag = "v${version}";
25 hash = "sha256-fAXcS2VyDMk+UDW3ru5ZvwzXjydsY1uFcT2GvZuiGWw=";
26 };
27
28 sourceRoot = "${src.name}/opentelemetry-api";
29
30 build-system = [ hatchling ];
31
32 dependencies = [
33 deprecated
34 importlib-metadata
35 typing-extensions
36 ];
37
38 pythonRelaxDeps = [ "importlib-metadata" ];
39
40 nativeCheckInputs = [
41 opentelemetry-test-utils
42 pytestCheckHook
43 ];
44
45 pythonImportsCheck = [ "opentelemetry" ];
46
47 doCheck = false;
48
49 passthru = {
50 updateScript = writeScript "update.sh" ''
51 #!/usr/bin/env nix-shell
52 #!nix-shell -i bash -p nix-update
53
54 set -eu -o pipefail
55 nix-update --version-regex 'v(.*)' python3Packages.opentelemetry-api
56 nix-update python3Packages.opentelemetry-instrumentation
57 '';
58 # Enable tests via passthru to avoid cyclic dependency with opentelemetry-test-utils.
59 tests.${self.pname} = self.overridePythonAttrs { doCheck = true; };
60 };
61
62 meta = {
63 homepage = "https://github.com/open-telemetry/opentelemetry-python/tree/main/opentelemetry-api";
64 description = "OpenTelemetry Python API";
65 changelog = "https://github.com/open-telemetry/opentelemetry-python/releases/tag/${src.tag}";
66 license = lib.licenses.asl20;
67 maintainers = [ lib.maintainers.natsukium ];
68 };
69 };
70in
71self