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