1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 pythonOlder,
6 hatchling,
7 opentelemetry-api,
8 opentelemetry-instrumentation,
9 opentelemetry-sdk,
10 opentelemetry-semantic-conventions,
11 opentelemetry-test-utils,
12 wrapt,
13 pytestCheckHook,
14 grpcio,
15}:
16
17buildPythonPackage {
18 inherit (opentelemetry-instrumentation) version src;
19 pname = "opentelemetry-instrumentation-grpc";
20 pyproject = true;
21
22 disabled = pythonOlder "3.8";
23
24 sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-grpc";
25
26 build-system = [ hatchling ];
27
28 dependencies = [
29 opentelemetry-api
30 opentelemetry-instrumentation
31 opentelemetry-sdk
32 opentelemetry-semantic-conventions
33 wrapt
34 ];
35
36 passthru.optional-dependencies = {
37 instruments = [ grpcio ];
38 };
39
40 nativeCheckInputs = [
41 opentelemetry-test-utils
42 grpcio
43 pytestCheckHook
44 ];
45
46 disabledTests = lib.optionals stdenv.isDarwin [
47 # RuntimeError: Failed to bind to address
48 "TestOpenTelemetryServerInterceptorUnix"
49 ];
50
51 pythonImportsCheck = [ "opentelemetry.instrumentation.grpc" ];
52
53 __darwinAllowLocalNetworking = true;
54
55 meta = opentelemetry-instrumentation.meta // {
56 homepage = "https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-grpc";
57 description = "OpenTelemetry Instrumentation for grpc";
58 };
59}