|
8 | 8 | import io |
9 | 9 | import json |
10 | 10 | import logging |
11 | | - |
12 | | -# logging.handlers is not imported by logging. This extra import is necessary |
13 | 11 | import logging.handlers |
14 | 12 | import os |
15 | 13 | import platform |
|
18 | 16 | from contextlib import contextmanager |
19 | 17 | from copy import copy |
20 | 18 | from datetime import datetime |
21 | | -from typing import TYPE_CHECKING, Optional, Union |
| 19 | +from typing import TYPE_CHECKING, Any, Optional, Union |
| 20 | + |
| 21 | +from typing_extensions import deprecated |
22 | 22 |
|
23 | 23 | if TYPE_CHECKING: |
24 | 24 | from collections.abc import Iterator, Sequence |
25 | 25 | from types import TracebackType |
26 | 26 |
|
27 | | - from opencensus.ext.azure.common.protocol import ( # type: ignore[import-untyped] |
28 | | - Envelope, |
29 | | - ) |
30 | | - from opencensus.ext.azure.log_exporter import ( # type: ignore[import-untyped] |
31 | | - AzureLogHandler, |
32 | | - ) |
33 | | - |
34 | 27 | import qcodes as qc |
35 | 28 | from qcodes.utils import ( |
| 29 | + QCoDeSDeprecationWarning, |
36 | 30 | get_all_installed_package_versions, |
37 | 31 | get_qcodes_user_path, |
38 | 32 | is_qcodes_installed_editably, |
39 | 33 | ) |
40 | 34 |
|
| 35 | +AzureLogHandler = Any |
| 36 | +Envelope = Any |
| 37 | + |
41 | 38 | log: logging.Logger = logging.getLogger(__name__) |
42 | 39 |
|
43 | 40 | LevelType = Union[int, str] |
@@ -201,11 +198,17 @@ def flush_telemetry_traces() -> None: |
201 | 198 | telemetry_handler.flush() |
202 | 199 |
|
203 | 200 |
|
| 201 | +@deprecated( |
| 202 | + "OpenCensus integration is deprecated. Please use your own telemetry integration as needed, we recommend OpenTelemetry", |
| 203 | + category=QCoDeSDeprecationWarning, |
| 204 | +) |
204 | 205 | def _create_telemetry_handler() -> "AzureLogHandler": |
205 | 206 | """ |
206 | 207 | Configure, create, and return the telemetry handler |
207 | 208 | """ |
208 | | - from opencensus.ext.azure.log_exporter import AzureLogHandler |
| 209 | + from opencensus.ext.azure.log_exporter import ( # type: ignore[import-not-found] |
| 210 | + AzureLogHandler, |
| 211 | + ) |
209 | 212 | global telemetry_handler |
210 | 213 |
|
211 | 214 | # The default_custom_dimensions will appear in the "customDimensions" |
@@ -251,6 +254,7 @@ def callback_function(envelope: "Envelope") -> bool: |
251 | 254 | connection_string=f"InstrumentationKey=" |
252 | 255 | f"{qc.config.telemetry.instrumentation_key}" |
253 | 256 | ) |
| 257 | + assert telemetry_handler is not None |
254 | 258 | telemetry_handler.add_telemetry_processor(callback_function) |
255 | 259 | telemetry_handler.setLevel(logging.INFO) |
256 | 260 | telemetry_handler.addFilter(CustomDimensionsFilter(default_custom_dimensions)) |
@@ -312,7 +316,9 @@ def start_logger() -> None: |
312 | 316 | logging.captureWarnings(capture=True) |
313 | 317 |
|
314 | 318 | if qc.config.telemetry.enabled: |
315 | | - root_logger.addHandler(_create_telemetry_handler()) |
| 319 | + root_logger.addHandler( |
| 320 | + _create_telemetry_handler() # pyright: ignore[reportDeprecated] |
| 321 | + ) |
316 | 322 |
|
317 | 323 | log.info("QCoDes logger setup completed") |
318 | 324 |
|
|
0 commit comments