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