Skip to content

Commit 654fe25

Browse files
author
Liudmila Molkova
committed
lint
1 parent 73ead1e commit 654fe25

File tree

5 files changed

+45
-48
lines changed

5 files changed

+45
-48
lines changed

instrumentation/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
@@ -85,6 +85,6 @@ def _instrument(self, **kwargs):
8585
)
8686

8787
def _uninstrument(self, **kwargs):
88-
import openai
88+
import openai # pylint: disable=import-outside-toplevel
8989

9090
unwrap(openai.resources.chat.completions.Completions, "create")

instrumentation/opentelemetry-instrumentation-openai-v2/src/opentelemetry/instrumentation/openai_v2/patch.py

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -66,13 +66,13 @@ def traced_method(wrapped, instance, args, kwargs):
6666
return StreamWrapper(
6767
result, span, event_logger, capture_content
6868
)
69-
else:
70-
if span.is_recording():
71-
_set_response_attributes(
72-
span, result, event_logger, capture_content
73-
)
74-
span.end()
75-
return result
69+
70+
if span.is_recording():
71+
_set_response_attributes(
72+
span, result, event_logger, capture_content
73+
)
74+
span.end()
75+
return result
7676

7777
except Exception as error:
7878
span.set_status(Status(StatusCode.ERROR, str(error)))
@@ -161,7 +161,7 @@ def append_text_content(self, content):
161161
def append_tool_call(self, tool_call):
162162
idx = tool_call.index
163163
# make sure we have enough tool call buffers
164-
for i in range(len(self.tool_calls_buffers), idx + 1):
164+
for _ in range(len(self.tool_calls_buffers), idx + 1):
165165
self.tool_calls_buffers.append(None)
166166

167167
if not self.tool_calls_buffers[idx]:
@@ -241,9 +241,7 @@ def cleanup(self):
241241
self.finish_reasons,
242242
)
243243

244-
for c in range(len(self.choice_buffers)):
245-
choice = self.choice_buffers[c]
246-
244+
for idx, choice in enumerate(self.choice_buffers):
247245
message = {"role": "assistant"}
248246
if self.capture_content and choice.text_content:
249247
message["content"] = "".join(choice.text_content)
@@ -264,7 +262,7 @@ def cleanup(self):
264262
message["tool_calls"] = tool_calls
265263

266264
body = {
267-
"index": c,
265+
"index": idx,
268266
"finish_reason": choice.finish_reason or "error",
269267
"message": message,
270268
}
@@ -356,8 +354,8 @@ def build_streaming_response(self, chunk):
356354
continue
357355

358356
# make sure we have enough choice buffers
359-
for i in range(len(self.choice_buffers), choice.index + 1):
360-
self.choice_buffers.append(ChoiceBuffer(i))
357+
for idx in range(len(self.choice_buffers), choice.index + 1):
358+
self.choice_buffers.append(ChoiceBuffer(idx))
361359

362360
if choice.finish_reason:
363361
self.choice_buffers[

instrumentation/opentelemetry-instrumentation-openai-v2/src/opentelemetry/instrumentation/openai_v2/utils.py

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def silently_fail(func):
5151
def wrapper(*args, **kwargs):
5252
try:
5353
return func(*args, **kwargs)
54-
except Exception as exception:
54+
except Exception as exception: # pylint: disable=broad-exception-caught
5555
logger.warning(
5656
"Failed to execute %s, error: %s",
5757
func.__name__,
@@ -64,7 +64,7 @@ def wrapper(*args, **kwargs):
6464
def extract_tool_calls(item, capture_content):
6565
tool_calls = get_property_value(item, "tool_calls")
6666
if tool_calls is None:
67-
return
67+
return None
6868

6969
calls = []
7070
for tool_call in tool_calls:
@@ -88,9 +88,7 @@ def extract_tool_calls(item, capture_content):
8888
arguments = get_property_value(func, "arguments")
8989
if capture_content and arguments:
9090
if isinstance(arguments, str):
91-
arguments = arguments.replace(
92-
"\n", ""
93-
)
91+
arguments = arguments.replace("\n", "")
9492
tool_call_dict["function"]["arguments"] = arguments
9593

9694
calls.append(tool_call_dict)
@@ -108,12 +106,9 @@ def set_server_address_and_port(client_instance, attributes):
108106
attributes[ServerAttributes.SERVER_ADDRESS] = base_url.host
109107
port = base_url.port
110108
elif isinstance(base_url, str):
111-
try:
112-
url = urlparse(base_url)
113-
attributes[ServerAttributes.SERVER_ADDRESS] = url.hostname
114-
port = url.port
115-
except Exception:
116-
pass
109+
url = urlparse(base_url)
110+
attributes[ServerAttributes.SERVER_ADDRESS] = url.hostname
111+
port = url.port
117112

118113
if port and port != 443 and port > 0:
119114
attributes[ServerAttributes.SERVER_PORT] = port

instrumentation/opentelemetry-instrumentation-openai-v2/tests/conftest.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,27 +22,27 @@
2222
)
2323

2424

25-
@pytest.fixture(scope="function")
26-
def span_exporter():
25+
@pytest.fixture(scope="function", name="span_exporter")
26+
def fixture_span_exporter():
2727
exporter = InMemorySpanExporter()
2828
yield exporter
2929

3030

31-
@pytest.fixture(scope="function")
32-
def log_exporter():
31+
@pytest.fixture(scope="function", name="log_exporter")
32+
def fixture_log_exporter():
3333
exporter = InMemoryLogExporter()
3434
yield exporter
3535

3636

37-
@pytest.fixture(scope="function")
38-
def tracer_provider(span_exporter):
37+
@pytest.fixture(scope="function", name="tracer_provider")
38+
def fixture_tracer_provider(span_exporter):
3939
provider = TracerProvider()
4040
provider.add_span_processor(SimpleSpanProcessor(span_exporter))
4141
return provider
4242

4343

44-
@pytest.fixture(scope="function")
45-
def event_logger_provider(log_exporter):
44+
@pytest.fixture(scope="function", name="event_logger_provider")
45+
def fixture_event_logger_provider(log_exporter):
4646
provider = LoggerProvider()
4747
provider.add_log_record_processor(SimpleLogRecordProcessor(log_exporter))
4848
event_logger_provider = EventLoggerProvider(provider)
@@ -74,7 +74,8 @@ def vcr_config():
7474
def instrument_no_content(tracer_provider, event_logger_provider):
7575
instrumentor = OpenAIInstrumentor()
7676
instrumentor.instrument(
77-
tracer_provider=tracer_provider, event_logger_provider=event_logger_provider
77+
tracer_provider=tracer_provider,
78+
event_logger_provider=event_logger_provider,
7879
)
7980

8081
yield instrumentor
@@ -88,7 +89,8 @@ def instrument_with_content(tracer_provider, event_logger_provider):
8889
)
8990
instrumentor = OpenAIInstrumentor()
9091
instrumentor.instrument(
91-
tracer_provider=tracer_provider, event_logger_provider=event_logger_provider
92+
tracer_provider=tracer_provider,
93+
event_logger_provider=event_logger_provider,
9294
)
9395

9496
yield instrumentor

instrumentation/opentelemetry-instrumentation-openai-v2/tests/test_chat_completions.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,15 @@ def test_chat_completion_bad_endpoint(span_exporter, instrument_no_content):
5858

5959
client = OpenAI(base_url="http://localhost:4242")
6060

61+
exception = None
6162
try:
6263
client.chat.completions.create(
6364
messages=messages_value,
6465
model=llm_model_value,
6566
timeout=0.1,
6667
)
6768
assert False, "Expected an exception"
68-
except Exception as ex:
69+
except Exception as ex: # pylint: disable=broad-exception-caught
6970
exception = ex
7071

7172
spans = span_exporter.get_finished_spans()
@@ -86,14 +87,15 @@ def test_chat_completion_404(
8687
llm_model_value = "this-model-does-not-exist"
8788
messages_value = [{"role": "user", "content": "Say this is a test"}]
8889

90+
exception = None
8991
try:
9092
openai_client.chat.completions.create(
9193
messages=messages_value,
9294
model=llm_model_value,
9395
timeout=0.1,
9496
)
9597
assert False, "Expected an exception"
96-
except Exception as ex:
98+
except Exception as ex: # pylint: disable=broad-exception-caught
9799
exception = ex
98100

99101
spans = span_exporter.get_finished_spans()
@@ -436,10 +438,10 @@ def test_chat_completion_streaming_not_complete(
436438
response_stream_id = None
437439
response_stream_result = ""
438440
response = openai_client.chat.completions.create(**kwargs)
439-
for i, chunk in enumerate(response):
441+
for idx, chunk in enumerate(response):
440442
if chunk.choices:
441443
response_stream_result += chunk.choices[0].delta.content or ""
442-
if i == 1:
444+
if idx == 1:
443445
# fake a stop
444446
break
445447

@@ -702,17 +704,17 @@ def assert_message_in_logs(log, event_name, expected_content, parent_span):
702704
assert_log_parent(log, parent_span)
703705

704706

705-
def remove_none_values(d):
707+
def remove_none_values(body):
706708
result = {}
707-
for k, v in d.items():
708-
if v is None:
709+
for key, value in body.items():
710+
if value is None:
709711
continue
710-
elif isinstance(v, dict):
711-
result[k] = remove_none_values(v)
712-
elif isinstance(v, list):
713-
result[k] = [remove_none_values(i) for i in v]
712+
elif isinstance(value, dict):
713+
result[key] = remove_none_values(value)
714+
elif isinstance(value, list):
715+
result[key] = [remove_none_values(i) for i in value]
714716
else:
715-
result[k] = v
717+
result[key] = value
716718
return result
717719

718720

0 commit comments

Comments
 (0)