Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions src/nipanel/_panel_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,18 @@

import logging
import threading
from typing import TYPE_CHECKING, Callable, TypeVar
from typing import TypeVar, Callable

import grpc
from ni.pythonpanel.v1.python_panel_service_pb2 import OpenPanelRequest
from ni.pythonpanel.v1.python_panel_service_pb2_grpc import PythonPanelServiceStub
from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool

_T = TypeVar("_T")

if TYPE_CHECKING:
from typing_extensions import ParamSpec

_P = ParamSpec("_P")
from nipanel._typing import ParamSpec

_P = ParamSpec("_P")
_T = TypeVar("_T")

_logger = logging.getLogger(__name__)

Expand Down
25 changes: 25 additions & 0 deletions src/nipanel/_typing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
"""Single source for typing backports to avoid depending on typing_extensions at run time."""

from __future__ import annotations

import sys
from typing import TYPE_CHECKING

if sys.version_info >= (3, 11):
from typing import Self
elif TYPE_CHECKING:
from typing_extensions import Self
else:
Self = None

if sys.version_info >= (3, 10):
from typing import ParamSpec
elif TYPE_CHECKING:
from typing_extensions import ParamSpec
else:
from typing import TypeVar as ParamSpec

__all__ = [
"Self",
"ParamSpec",
]