diff --git a/packages/service/ni_measurement_plugin_sdk_service/_tracelogging.py b/packages/service/ni_measurement_plugin_sdk_service/_tracelogging.py index 99724a5a6..8d0d33523 100644 --- a/packages/service/ni_measurement_plugin_sdk_service/_tracelogging.py +++ b/packages/service/ni_measurement_plugin_sdk_service/_tracelogging.py @@ -3,12 +3,21 @@ import ctypes import sys import uuid +from typing import TYPE_CHECKING -try: - import traceloggingdynamic +if sys.platform == "win32": + try: + import traceloggingdynamic + + _event_provider: traceloggingdynamic.Provider | None = traceloggingdynamic.Provider( + b"NI-Measurement-Plug-In-Python" + ) + except ImportError: + _event_provider = None +else: + if TYPE_CHECKING: + import traceloggingdynamic - _event_provider = traceloggingdynamic.Provider(b"NI-Measurement-Plug-In-Python") -except ImportError: _event_provider = None _LEVEL_LOG_ALWAYS = 0 @@ -72,7 +81,7 @@ def _get_current_thread_activity_id() -> uuid.UUID: def is_enabled() -> bool: """Queries whether the event provider is enabled.""" - return _event_provider and _event_provider.is_enabled() + return _event_provider is not None and _event_provider.is_enabled() def log_grpc_client_call_start(method_name: str) -> uuid.UUID | None: diff --git a/packages/service/poetry.lock b/packages/service/poetry.lock index 54696a0f3..1ebb2b813 100644 --- a/packages/service/poetry.lock +++ b/packages/service/poetry.lock @@ -2184,12 +2184,13 @@ test = ["devpi-process (>=1.0.2)", "pytest (>=8.3.4)", "pytest-mock (>=3.14)"] [[package]] name = "traceloggingdynamic" -version = "1.0.0" +version = "1.0.1" description = "Generates Event Tracing for Windows events using TraceLogging" optional = false python-versions = ">=3.6" files = [ - {file = "traceloggingdynamic-1.0.0.tar.gz", hash = "sha256:09b6129438b99432733de18519017a7eed8285aeaa08c0cff6de45ac60e04b75"}, + {file = "traceloggingdynamic-1.0.1-py3-none-any.whl", hash = "sha256:0e19da491a8960725b3622366487ae35f49d8f595bb2e4e5ce1795eb5928db7c"}, + {file = "traceloggingdynamic-1.0.1.tar.gz", hash = "sha256:d9dd4b291dd04c15e34181eed06f73fdf4ffa7b1f895b78217163def48ab1a52"}, ] [[package]] @@ -2361,4 +2362,4 @@ niswitch = ["niswitch"] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "1d06f08d41235fbcfe4790c57fde4b1a2b1cbe7dd5ee4faf40c046a373eaea4d" +content-hash = "cb4e521c7dedf9870d66a04f1e99d9ee1862671eb0cd03a6f0a6d46c4026a2a3" diff --git a/packages/service/pyproject.toml b/packages/service/pyproject.toml index a5961b87c..97d486df1 100644 --- a/packages/service/pyproject.toml +++ b/packages/service/pyproject.toml @@ -82,6 +82,8 @@ numpy = [ {version = ">=1.26", python = "^3.12"}, ] bandit = { version = ">=1.7", extras = ["toml"] } +# Install traceloggingdynamic on Linux for type checking. +traceloggingdynamic = { version = ">=1.0", platform = "linux" } [tool.poetry.group.docs] optional = true @@ -134,8 +136,6 @@ module = [ "grpc.framework.foundation.*", # https://github.com/ni/hightime/issues/4 - Add type annotations "hightime.*", - # https://github.com/microsoft/tracelogging/issues/57 - Python traceloggingdynamic package is missing py.typed marker file - "traceloggingdynamic", # https://github.com/ni/nidaqmx-python/issues/209 - Support type annotations "nidaqmx", # https://github.com/ni/nimi-python/issues/1887 - Support type annotations