Skip to content

Commit 4f89e75

Browse files
authored
fix: suppress ruff PLC0415 for conditional gevent import (#3842)
The generate_instrumentation_bootstrap.py script was failing with a ruff linting error (PLC0415: import should be at top-level) when checking the auto_instrumentation module. Add noqa comment to suppress this error for the gevent monkey patch import, which is intentionally inside a try-except block for conditional loading. This allows the bootstrap generation script to complete successfully.
1 parent 123f556 commit 4f89e75

File tree

24 files changed

+100
-78
lines changed

24 files changed

+100
-78
lines changed

.github/workflows/generate_workflows_lib/src/generate_workflows_lib/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ def get_contrib_job_datas(tox_envs: list) -> list:
143143

144144
contrib_job_datas.append(
145145
{
146-
"ui_name": (f"{groups['name']}" f"{contrib_requirements}"),
146+
"ui_name": (f"{groups['name']}{contrib_requirements}"),
147147
"tox_env": tox_env,
148148
}
149149
)

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
repos:
22
- repo: https://github.com/astral-sh/ruff-pre-commit
33
# Ruff version.
4-
rev: v0.6.9
4+
rev: v0.14.1
55
hooks:
66
# Run the linter.
77
- id: ruff

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4343
- `opentelemetry-instrumentation-aiohttp-server`: delay initialization of tracer, meter and excluded urls to instrumentation for testability
4444
([#3836](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3836))
4545
- `opentelemetry-instrumentation-elasticsearch`: Enhance elasticsearch query body sanitization
46-
([#3919](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3919))
46+
([#3919](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3919))
47+
- build: bump ruff to 0.14.1
48+
([#3842](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3842))
4749

4850

4951
## Version 1.38.0/0.59b0 (2025-10-16)

dev-requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ ruamel.yaml==0.17.21
1515
flaky==3.7.0
1616
pre-commit==3.7.0; python_version >= '3.9'
1717
pre-commit==3.5.0; python_version < '3.9'
18-
ruff==0.6.9
18+
ruff==0.14.1

exporter/opentelemetry-exporter-prometheus-remote-write/tests/test_prometheus_remote_write_exporter.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,9 @@ def test_parse_metric(metric, prom_rw):
122122
"bool_value": True,
123123
}
124124

125-
assert (
126-
len(metric.data.data_points) == 1
127-
), "We can only support a single datapoint in tests"
125+
assert len(metric.data.data_points) == 1, (
126+
"We can only support a single datapoint in tests"
127+
)
128128
series = prom_rw._parse_metric(metric, tuple(attributes.items()))
129129
timestamp = metric.data.data_points[0].time_unix_nano // 1_000_000
130130
for single_series in series:

gen-requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
astor==0.8.1
33
jinja2==3.1.6
44
markupsafe==2.0.1
5-
ruff==0.6.9
5+
ruff==0.14.1
66
requests
77
tomli
88
tomli_w

instrumentation-genai/opentelemetry-instrumentation-google-genai/tests/common/otel_mocker.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,9 @@ def get_span_named(self, name):
164164
def assert_has_span_named(self, name):
165165
span = self.get_span_named(name)
166166
finished_spans = [span.name for span in self.get_finished_spans()]
167-
assert (
168-
span is not None
169-
), f'Could not find span named "{name}"; finished spans: {finished_spans}'
167+
assert span is not None, (
168+
f'Could not find span named "{name}"; finished spans: {finished_spans}'
169+
)
170170

171171
def assert_does_not_have_span_named(self, name):
172172
span = self.get_span_named(name)
@@ -192,9 +192,9 @@ def get_events_named(self, event_name):
192192
def assert_has_event_named(self, name):
193193
event = self.get_event_named(name)
194194
finished_logs = self.get_finished_logs()
195-
assert (
196-
event is not None
197-
), f'Could not find event named "{name}"; finished logs: {finished_logs}'
195+
assert event is not None, (
196+
f'Could not find event named "{name}"; finished logs: {finished_logs}'
197+
)
198198

199199
def assert_does_not_have_event_named(self, name):
200200
event = self.get_event_named(name)

instrumentation-genai/opentelemetry-instrumentation-openai-v2/src/opentelemetry/instrumentation/openai_v2/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ def _instrument(self, **kwargs):
129129
)
130130

131131
def _uninstrument(self, **kwargs):
132-
import openai # pylint: disable=import-outside-toplevel
132+
import openai # pylint: disable=import-outside-toplevel # noqa: PLC0415
133133

134134
unwrap(openai.resources.chat.completions.Completions, "create")
135135
unwrap(openai.resources.chat.completions.AsyncCompletions, "create")

instrumentation-genai/opentelemetry-instrumentation-vertexai/src/opentelemetry/instrumentation/vertexai/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,14 @@ def _methods_to_wrap(
6868
):
6969
# This import is very slow, do it lazily in case instrument() is not called
7070
# pylint: disable=import-outside-toplevel
71-
from google.cloud.aiplatform_v1.services.prediction_service import (
71+
from google.cloud.aiplatform_v1.services.prediction_service import ( # noqa: PLC0415
7272
async_client,
7373
client,
7474
)
75-
from google.cloud.aiplatform_v1beta1.services.prediction_service import (
75+
from google.cloud.aiplatform_v1beta1.services.prediction_service import ( # noqa: PLC0415
7676
async_client as async_client_v1beta1,
7777
)
78-
from google.cloud.aiplatform_v1beta1.services.prediction_service import (
78+
from google.cloud.aiplatform_v1beta1.services.prediction_service import ( # noqa: PLC0415
7979
client as client_v1beta1,
8080
)
8181

instrumentation-genai/opentelemetry-instrumentation-vertexai/tests/test_function_calling.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
import pytest
2+
from tests.shared_test_utils import (
3+
ask_about_weather,
4+
ask_about_weather_function_response,
5+
)
26

37
from opentelemetry.instrumentation.vertexai import VertexAIInstrumentor
48
from opentelemetry.sdk._logs._internal.export.in_memory_log_exporter import (
@@ -7,10 +11,6 @@
711
from opentelemetry.sdk.trace.export.in_memory_span_exporter import (
812
InMemorySpanExporter,
913
)
10-
from tests.shared_test_utils import (
11-
ask_about_weather,
12-
ask_about_weather_function_response,
13-
)
1414

1515

1616
@pytest.mark.vcr()

0 commit comments

Comments
 (0)