Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
9 changes: 1 addition & 8 deletions src/nipanel/_panel.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,14 @@
from __future__ import annotations

import sys
from abc import ABC
from types import TracebackType
from typing import TYPE_CHECKING

import grpc
from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool

from nipanel._panel_client import PanelClient

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


class Panel(ABC):
Expand Down
8 changes: 1 addition & 7 deletions src/nipanel/_panel_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,14 @@

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

import grpc
from ni.pythonpanel.v1.python_panel_service_pb2 import ConnectRequest, DisconnectRequest
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 Callable, _T, _P


_logger = logging.getLogger(__name__)
Expand Down
29 changes: 29 additions & 0 deletions src/nipanel/_typing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
"""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, Callable

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

if TYPE_CHECKING:
from typing_extensions import ParamSpec, TypeVar

_P = ParamSpec("_P")
_T = TypeVar("_T")
else:
_P = None
_T = None

__all__ = [
"Callable",
"Self",
"_P",
"_T",
]