Skip to content

Commit 0f78816

Browse files
committed
Enforce from __future__ import annotations
1 parent 0848eab commit 0f78816

File tree

11 files changed

+80
-97
lines changed

11 files changed

+80
-97
lines changed

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
@@ -314,18 +314,18 @@ def test_invalid_export(prom_rw):
314314
@patch("requests.post")
315315
def test_valid_send_message(mock_post, prom_rw):
316316
mock_post.return_value.configure_mock(**{"ok": True})
317-
result = prom_rw._send_message(bytes(), {})
317+
result = prom_rw._send_message(b"", {})
318318
assert mock_post.call_count == 1
319319
assert result == MetricExportResult.SUCCESS
320320

321321

322322
def test_invalid_send_message(prom_rw):
323-
result = prom_rw._send_message(bytes(), {})
323+
result = prom_rw._send_message(b"", {})
324324
assert result == MetricExportResult.FAILURE
325325

326326

327327
# Verifies that build_message calls snappy.compress and returns SerializedString
328-
@patch("snappy.compress", return_value=bytes())
328+
@patch("snappy.compress", return_value=b"")
329329
def test_build_message(mock_compress, prom_rw):
330330
message = prom_rw._build_message([TimeSeries()])
331331
assert mock_compress.call_count == 1

instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15+
from __future__ import annotations
16+
1517
import asyncio
1618
import contextlib
1719
import typing
@@ -51,7 +53,7 @@
5153

5254
def run_with_test_server(
5355
runnable: typing.Callable, url: str, handler: typing.Callable
54-
) -> typing.Tuple[str, int]:
56+
) -> str | int:
5557
async def do_request():
5658
app = aiohttp.web.Application()
5759
parsed_url = urllib.parse.urlparse(url)
@@ -107,7 +109,7 @@ def _http_request(
107109
status_code: int = HTTPStatus.OK,
108110
request_handler: typing.Callable = None,
109111
**kwargs,
110-
) -> typing.Tuple[str, int]:
112+
) -> tuple[str, int]:
111113
"""Helper to start an aiohttp test server and send an actual HTTP request to it."""
112114

113115
async def default_handler(request):
@@ -269,10 +271,8 @@ def request_hook(span: Span, params: aiohttp.TraceRequestStartParams):
269271

270272
def response_hook(
271273
span: Span,
272-
params: typing.Union[
273-
aiohttp.TraceRequestEndParams,
274-
aiohttp.TraceRequestExceptionParams,
275-
],
274+
params: aiohttp.TraceRequestEndParams
275+
| aiohttp.TraceRequestExceptionParams,
276276
):
277277
span.set_attribute("response_hook_attr", "value")
278278

@@ -646,7 +646,7 @@ def tearDown(self):
646646
@staticmethod
647647
# pylint:disable=unused-argument
648648
async def default_handler(request):
649-
return aiohttp.web.Response(status=int(200))
649+
return aiohttp.web.Response(status=200)
650650

651651
@staticmethod
652652
def get_default_request(url: str = URL):
@@ -861,10 +861,8 @@ def request_hook(span: Span, params: aiohttp.TraceRequestStartParams):
861861

862862
def response_hook(
863863
span: Span,
864-
params: typing.Union[
865-
aiohttp.TraceRequestEndParams,
866-
aiohttp.TraceRequestExceptionParams,
867-
],
864+
params: aiohttp.TraceRequestEndParams
865+
| aiohttp.TraceRequestExceptionParams,
868866
):
869867
span.set_attribute("response_hook_attr", "value")
870868

instrumentation/opentelemetry-instrumentation-aiokafka/tests/test_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def test_context_setter(self) -> None:
4242

4343
carrier_list = [("key1", b"val1")]
4444
context_setter.set(carrier_list, "key2", "val2")
45-
self.assertTrue(("key2", "val2".encode()) in carrier_list)
45+
self.assertTrue(("key2", b"val2") in carrier_list)
4646

4747
def test_context_getter(self) -> None:
4848
context_setter = AIOKafkaContextSetter()

instrumentation/opentelemetry-instrumentation-confluent-kafka/tests/test_instrumentation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,12 @@ def test_context_setter(self) -> None:
8989
carrier_dict = {"key1": "val1"}
9090
context_setter.set(carrier_dict, "key2", "val2")
9191
self.assertGreaterEqual(
92-
carrier_dict.items(), {"key2": "val2".encode()}.items()
92+
carrier_dict.items(), {"key2": b"val2"}.items()
9393
)
9494

9595
carrier_list = [("key1", "val1")]
9696
context_setter.set(carrier_list, "key2", "val2")
97-
self.assertTrue(("key2", "val2".encode()) in carrier_list)
97+
self.assertTrue(("key2", b"val2") in carrier_list)
9898

9999
def test_context_getter(self) -> None:
100100
context_setter = KafkaContextSetter()

instrumentation/opentelemetry-instrumentation-httpx/src/opentelemetry/instrumentation/httpx/__init__.py

Lines changed: 27 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -253,17 +253,15 @@ class RequestInfo(typing.NamedTuple):
253253
method: bytes
254254
url: httpx.URL
255255
headers: httpx.Headers | None
256-
stream: typing.Optional[
257-
typing.Union[httpx.SyncByteStream, httpx.AsyncByteStream]
258-
]
259-
extensions: typing.Optional[dict]
256+
stream: httpx.SyncByteStream | httpx.AsyncByteStream | None
257+
extensions: dict | None
260258

261259

262260
class ResponseInfo(typing.NamedTuple):
263261
status_code: int
264262
headers: httpx.Headers | None
265263
stream: typing.Iterable[bytes]
266-
extensions: typing.Optional[dict]
264+
extensions: dict | None
267265

268266

269267
def _get_default_span_name(method: str) -> str:
@@ -274,7 +272,7 @@ def _get_default_span_name(method: str) -> str:
274272
return method
275273

276274

277-
def _prepare_headers(headers: typing.Optional[Headers]) -> httpx.Headers:
275+
def _prepare_headers(headers: Headers | None) -> httpx.Headers:
278276
return httpx.Headers(headers)
279277

280278

@@ -311,10 +309,8 @@ def _inject_propagation_headers(headers, args, kwargs):
311309

312310

313311
def _extract_response(
314-
response: typing.Union[
315-
httpx.Response, typing.Tuple[int, Headers, httpx.SyncByteStream, dict]
316-
],
317-
) -> typing.Tuple[int, Headers, httpx.SyncByteStream, dict, str]:
312+
response: httpx.Response | tuple[int, Headers, httpx.SyncByteStream, dict],
313+
) -> tuple[int, Headers, httpx.SyncByteStream, dict, str]:
318314
if isinstance(response, httpx.Response):
319315
status_code = response.status_code
320316
headers = response.headers
@@ -332,7 +328,7 @@ def _extract_response(
332328

333329
def _apply_request_client_attributes_to_span(
334330
span_attributes: dict,
335-
url: typing.Union[str, URL, httpx.URL],
331+
url: str | URL | httpx.URL,
336332
method_original: str,
337333
semconv: _StabilityMode,
338334
):
@@ -407,9 +403,9 @@ class SyncOpenTelemetryTransport(httpx.BaseTransport):
407403
def __init__(
408404
self,
409405
transport: httpx.BaseTransport,
410-
tracer_provider: typing.Optional[TracerProvider] = None,
411-
request_hook: typing.Optional[RequestHook] = None,
412-
response_hook: typing.Optional[ResponseHook] = None,
406+
tracer_provider: TracerProvider | None = None,
407+
request_hook: RequestHook | None = None,
408+
response_hook: ResponseHook | None = None,
413409
):
414410
_OpenTelemetrySemanticConventionStability._initialize()
415411
self._sem_conv_opt_in_mode = _OpenTelemetrySemanticConventionStability._get_opentelemetry_stability_opt_in_mode(
@@ -426,15 +422,15 @@ def __init__(
426422
self._request_hook = request_hook
427423
self._response_hook = response_hook
428424

429-
def __enter__(self) -> "SyncOpenTelemetryTransport":
425+
def __enter__(self) -> SyncOpenTelemetryTransport:
430426
self._transport.__enter__()
431427
return self
432428

433429
def __exit__(
434430
self,
435-
exc_type: typing.Optional[typing.Type[BaseException]] = None,
436-
exc_value: typing.Optional[BaseException] = None,
437-
traceback: typing.Optional[TracebackType] = None,
431+
exc_type: type[BaseException] | None = None,
432+
exc_value: BaseException | None = None,
433+
traceback: TracebackType | None = None,
438434
) -> None:
439435
self._transport.__exit__(exc_type, exc_value, traceback)
440436

@@ -443,10 +439,7 @@ def handle_request(
443439
self,
444440
*args,
445441
**kwargs,
446-
) -> typing.Union[
447-
typing.Tuple[int, "Headers", httpx.SyncByteStream, dict],
448-
httpx.Response,
449-
]:
442+
) -> tuple[int, Headers, httpx.SyncByteStream, dict] | httpx.Response:
450443
"""Add request info to span."""
451444
if not is_http_instrumentation_enabled():
452445
return self._transport.handle_request(*args, **kwargs)
@@ -532,9 +525,9 @@ class AsyncOpenTelemetryTransport(httpx.AsyncBaseTransport):
532525
def __init__(
533526
self,
534527
transport: httpx.AsyncBaseTransport,
535-
tracer_provider: typing.Optional[TracerProvider] = None,
536-
request_hook: typing.Optional[AsyncRequestHook] = None,
537-
response_hook: typing.Optional[AsyncResponseHook] = None,
528+
tracer_provider: TracerProvider | None = None,
529+
request_hook: AsyncRequestHook | None = None,
530+
response_hook: AsyncResponseHook | None = None,
538531
):
539532
_OpenTelemetrySemanticConventionStability._initialize()
540533
self._sem_conv_opt_in_mode = _OpenTelemetrySemanticConventionStability._get_opentelemetry_stability_opt_in_mode(
@@ -551,25 +544,22 @@ def __init__(
551544
self._request_hook = request_hook
552545
self._response_hook = response_hook
553546

554-
async def __aenter__(self) -> "AsyncOpenTelemetryTransport":
547+
async def __aenter__(self) -> AsyncOpenTelemetryTransport:
555548
await self._transport.__aenter__()
556549
return self
557550

558551
async def __aexit__(
559552
self,
560-
exc_type: typing.Optional[typing.Type[BaseException]] = None,
561-
exc_value: typing.Optional[BaseException] = None,
562-
traceback: typing.Optional[TracebackType] = None,
553+
exc_type: type[BaseException] | None = None,
554+
exc_value: BaseException | None = None,
555+
traceback: TracebackType | None = None,
563556
) -> None:
564557
await self._transport.__aexit__(exc_type, exc_value, traceback)
565558

566559
# pylint: disable=R0914
567560
async def handle_async_request(
568561
self, *args, **kwargs
569-
) -> typing.Union[
570-
typing.Tuple[int, "Headers", httpx.AsyncByteStream, dict],
571-
httpx.Response,
572-
]:
562+
) -> tuple[int, Headers, httpx.AsyncByteStream, dict] | httpx.Response:
573563
"""Add request info to span."""
574564
if not is_http_instrumentation_enabled():
575565
return await self._transport.handle_async_request(*args, **kwargs)
@@ -872,14 +862,10 @@ async def _handle_async_request_wrapper( # pylint: disable=too-many-locals
872862
@classmethod
873863
def instrument_client(
874864
cls,
875-
client: typing.Union[httpx.Client, httpx.AsyncClient],
865+
client: httpx.Client | httpx.AsyncClient,
876866
tracer_provider: TracerProvider = None,
877-
request_hook: typing.Union[
878-
typing.Optional[RequestHook], typing.Optional[AsyncRequestHook]
879-
] = None,
880-
response_hook: typing.Union[
881-
typing.Optional[ResponseHook], typing.Optional[AsyncResponseHook]
882-
] = None,
867+
request_hook: RequestHook | AsyncRequestHook | None = None,
868+
response_hook: ResponseHook | AsyncResponseHook | None = None,
883869
) -> None:
884870
"""Instrument httpx Client or AsyncClient
885871
@@ -978,7 +964,7 @@ def instrument_client(
978964

979965
@staticmethod
980966
def uninstrument_client(
981-
client: typing.Union[httpx.Client, httpx.AsyncClient],
967+
client: httpx.Client | httpx.AsyncClient,
982968
):
983969
"""Disables instrumentation for the given client instance
984970

instrumentation/opentelemetry-instrumentation-logging/src/opentelemetry/instrumentation/logging/constants.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
DEFAULT_LOGGING_FORMAT = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s:%(lineno)d] [trace_id=%(otelTraceID)s span_id=%(otelSpanID)s resource.service.name=%(otelServiceName)s trace_sampled=%(otelTraceSampled)s] - %(message)s"
1616

1717

18-
_MODULE_DOC = """
18+
_MODULE_DOC = f"""
1919
The OpenTelemetry ``logging`` integration automatically injects tracing context into log statements.
2020
2121
The integration registers a custom log record factory with the the standard library logging module that automatically inject
@@ -33,7 +33,7 @@
3333
3434
.. code-block::
3535
36-
{default_logging_format}
36+
{DEFAULT_LOGGING_FORMAT}
3737
3838
Enable trace context injection
3939
------------------------------
@@ -77,7 +77,7 @@
7777
7878
.. code-block::
7979
80-
{default_logging_format}
80+
{DEFAULT_LOGGING_FORMAT}
8181
8282
.. envvar:: OTEL_PYTHON_LOG_LEVEL
8383
@@ -136,4 +136,4 @@
136136
are not injected into the log record objects. This means any attempted log statements made after setting the logging format and before enabling this integration
137137
will result in KeyError exceptions. Such exceptions are automatically swallowed by the logging module and do not result in crashes but you may still lose out
138138
on important log messages.
139-
""".format(default_logging_format=DEFAULT_LOGGING_FORMAT)
139+
"""

instrumentation/opentelemetry-instrumentation-urllib/tests/test_metrics_instrumentation.py

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -406,12 +406,10 @@ def test_metric_uninstrument(self):
406406
with request.urlopen(self.URL):
407407
self.assertEqual(
408408
len(
409-
(
410-
self.memory_metrics_reader.get_metrics_data()
411-
.resource_metrics[0]
412-
.scope_metrics[0]
413-
.metrics
414-
)
409+
self.memory_metrics_reader.get_metrics_data()
410+
.resource_metrics[0]
411+
.scope_metrics[0]
412+
.metrics
415413
),
416414
3,
417415
)
@@ -453,12 +451,10 @@ def test_metric_uninstrument(self):
453451
with request.urlopen(self.URL):
454452
self.assertEqual(
455453
len(
456-
(
457-
self.memory_metrics_reader.get_metrics_data()
458-
.resource_metrics[0]
459-
.scope_metrics[0]
460-
.metrics
461-
)
454+
self.memory_metrics_reader.get_metrics_data()
455+
.resource_metrics[0]
456+
.scope_metrics[0]
457+
.metrics
462458
),
463459
3,
464460
)
@@ -502,12 +498,10 @@ def test_metric_uninstrument(self):
502498
with request.urlopen(self.URL):
503499
self.assertEqual(
504500
len(
505-
(
506-
self.memory_metrics_reader.get_metrics_data()
507-
.resource_metrics[0]
508-
.scope_metrics[0]
509-
.metrics
510-
)
501+
self.memory_metrics_reader.get_metrics_data()
502+
.resource_metrics[0]
503+
.scope_metrics[0]
504+
.metrics
511505
),
512506
3,
513507
)

scripts/eachdist.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -588,11 +588,11 @@ def update_changelog(path, version, new_entry):
588588

589589
def update_changelogs(version):
590590
today = datetime.now().strftime("%Y-%m-%d")
591-
new_entry = """## [Unreleased](https://github.com/open-telemetry/opentelemetry-python/compare/v{version}...HEAD)
591+
new_entry = f"""## [Unreleased](https://github.com/open-telemetry/opentelemetry-python/compare/v{version}...HEAD)
592592
593593
## [{version}](https://github.com/open-telemetry/opentelemetry-python/releases/tag/v{version}) - {today}
594594
595-
""".format(version=version, today=today)
595+
"""
596596
errors = False
597597
try:
598598
update_changelog("./CHANGELOG.md", version, new_entry)

scripts/update_sha.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def update_sha(sha):
4141
yaml = YAML()
4242
yaml.preserve_quotes = True
4343
for workflow_file in workflow_files:
44-
with open(workflow_file, "r") as file:
44+
with open(workflow_file) as file:
4545
workflow = yaml.load(file)
4646
workflow["env"]["CORE_REPO_SHA"] = sha
4747
with open(workflow_file, "w") as file:

0 commit comments

Comments
 (0)