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