1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 hatchling,
6 opentelemetry-api,
7 opentelemetry-test-utils,
8 pytestCheckHook,
9 pythonOlder,
10 setuptools,
11 wrapt,
12}:
13
14buildPythonPackage rec {
15 pname = "opentelemetry-instrumentation";
16 version = "0.55b0";
17 pyproject = true;
18
19 disabled = pythonOlder "3.8";
20
21 # To avoid breakage, every package in opentelemetry-python-contrib must inherit this version, src, and meta
22 src = fetchFromGitHub {
23 owner = "open-telemetry";
24 repo = "opentelemetry-python-contrib";
25 tag = "v${version}";
26 hash = "sha256-UM9ezCh3TVwyj257O0rvTCIgfrddobWcVIgJmBUj/Vo=";
27 };
28
29 sourceRoot = "${src.name}/opentelemetry-instrumentation";
30
31 build-system = [ hatchling ];
32
33 dependencies = [
34 opentelemetry-api
35 setuptools
36 wrapt
37 ];
38
39 nativeCheckInputs = [
40 opentelemetry-test-utils
41 pytestCheckHook
42 ];
43
44 pythonImportsCheck = [ "opentelemetry.instrumentation" ];
45
46 disabledTests = [
47 # bootstrap: error: argument -a/--action: invalid choice: 'pipenv' (choose from install, requirements)
48 # RuntimeError: Patch is already started
49 "test_run_cmd_install"
50 "test_run_cmd_print"
51 "test_run_unknown_cmd"
52 ];
53
54 passthru.updateScript = opentelemetry-api.updateScript;
55
56 meta = with lib; {
57 description = "Instrumentation Tools & Auto Instrumentation for OpenTelemetry Python";
58 homepage = "https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/opentelemetry-instrumentation";
59 changelog = "https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/v${version}";
60 license = licenses.asl20;
61 maintainers = [ maintainers.natsukium ];
62 teams = [ teams.deshaw ];
63 };
64}