Skip to content

Commit 09c7e7e

Browse files
mjohanse-emrMichael Johansencsjall
authored
Replace ni.protobuf.types stubs with dependency on ni.protobuf.types package (#1212)
* First pass at removing protobuf and panel generated stubs and pulling them in from ni.protobuf.types Signed-off-by: Michael Johansen <michael.johansen@ni.com> * Fix linting errors. Signed-off-by: Michael Johansen <michael.johansen@ni.com> * Modified stub generation to exclude protobuf and panels * Lint * Add code to stop adding the _internal stub path to ni.protobuf.types and ni.panels.v1. Signed-off-by: Michael Johansen <michael.johansen@ni.com> * Fix example_renders to match what is generated and add them to the styleguide exclude list since they don't conform to the styleguide as generated. Signed-off-by: Michael Johansen <michael.johansen@ni.com> * Missing a comma. Signed-off-by: Michael Johansen <michael.johansen@ni.com> * Re-lock dependencies after simplifying numpy deps Signed-off-by: Michael Johansen <michael.johansen@ni.com> * Run poetry lock on the examples. Signed-off-by: Michael Johansen <michael.johansen@ni.com> * Refactor stub namespace exclusions. Signed-off-by: Michael Johansen <michael.johansen@ni.com> * Add dev dependencies for numpy to fix errors on python 3.13. Signed-off-by: Michael Johansen <michael.johansen@ni.com> --------- Signed-off-by: Michael Johansen <michael.johansen@ni.com> Co-authored-by: Michael Johansen <michael.johansen@ni.com> Co-authored-by: Johann Scholtz <johann.scholtz@ni.com>
1 parent 145381e commit 09c7e7e

68 files changed

Lines changed: 281 additions & 2414 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

examples/game_of_life/measurement.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@
1111
import grpc
1212
import ni_measurement_plugin_sdk_service as nims
1313
from _helpers import configure_logging, verbosity_option
14-
from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types import (
15-
xydata_pb2,
16-
)
14+
from ni.protobuf.types import xydata_pb2
15+
1716

1817
service_directory = pathlib.Path(__file__).resolve().parent
1918
measurement_service = nims.MeasurementService(

examples/game_of_life/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ authors = ["National Instruments"]
99
python = "^3.9"
1010
ni-measurement-plugin-sdk-service = {version = "^2.3.1"}
1111
click = ">=7.1.2, !=8.1.4" # mypy fails with click 8.1.4: https://github.com/pallets/click/issues/2558
12+
ni-protobuf-types = { version = ">=0.1.0dev2", allow-prereleases = true }
1213

1314
[tool.poetry.group.dev.dependencies]
1415
ni-python-styleguide = ">=0.4.1"

examples/sample_measurement/_array_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from typing import TYPE_CHECKING
66

7-
from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types import array_pb2
7+
from ni.protobuf.types import array_pb2
88

99
if TYPE_CHECKING:
1010
import numpy as np

examples/sample_measurement/measurement.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import click
1111
import ni_measurement_plugin_sdk_service as nims
1212
from _helpers import configure_logging, verbosity_option
13-
from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types import (
13+
from ni.protobuf.types import (
1414
array_pb2,
1515
)
1616

examples/sample_measurement/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ authors = ["National Instruments"]
99
python = "^3.9"
1010
ni-measurement-plugin-sdk-service = {version = "^2.3.1"}
1111
click = ">=7.1.2, !=8.1.4" # mypy fails with click 8.1.4: https://github.com/pallets/click/issues/2558
12+
ni-protobuf-types = { version = ">=0.1.0dev2", allow-prereleases = true }
1213

1314
[tool.poetry.group.dev.dependencies]
1415
ni-python-styleguide = ">=0.4.1"

packages/generator/ni_measurement_plugin_sdk_generator/client/_support.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@
3434

3535
_INVALID_CHARS = "`~!@#$%^&*()-+={}[]\\|:;',<>.?/ \n"
3636

37-
_XY_DATA_IMPORT = "from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types.xydata_pb2 import DoubleXYData"
38-
_DOUBLE2DARRAY_DATA_IMPORT = "from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types.array_pb2 import Double2DArray"
39-
_STRING2DARRAY_DATA_IMPORT = "from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types.array_pb2 import String2DArray"
37+
_XY_DATA_IMPORT = "from ni.protobuf.types.xydata_pb2 import DoubleXYData"
38+
_DOUBLE2DARRAY_DATA_IMPORT = "from ni.protobuf.types.array_pb2 import Double2DArray"
39+
_STRING2DARRAY_DATA_IMPORT = "from ni.protobuf.types.array_pb2 import String2DArray"
4040
_PATH_IMPORT = "import pathlib"
4141

4242
_PROTO_DATATYPE_TO_PYTYPE_LOOKUP = {

packages/generator/poetry.lock

Lines changed: 180 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/generator/pyproject.toml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ protobuf = ">=4.21"
3131
black = ">=24.8.0"
3232
click-option-group = ">=0.5.6"
3333
ni-measurement-plugin-sdk-service = {version = "^2.2.0"}
34+
ni-protobuf-types = { version = ">=0.1.0dev2", allow-prereleases = true }
3435

3536
[tool.poetry.group.dev.dependencies]
3637
pytest = ">=7.2.0"
@@ -50,6 +51,13 @@ grpcio-tools = [
5051
{version = "1.59.0", python = ">=3.12,<3.13"},
5152
{version = "1.67.0", python = "^3.13"},
5253
]
54+
# NumPy dropped support for Python 3.8 before adding support for Python 3.12, so
55+
# we need to include multiple NumPy versions in poetry.lock.
56+
numpy = [
57+
{ version = ">=1.22", python = ">=3.9,<3.12"},
58+
{ version = ">=1.26", python = ">=3.12,<3.13"},
59+
{ version = ">=2.1", python = "^3.13"},
60+
]
5361

5462
[tool.poetry.scripts]
5563
ni-measurement-plugin-generator = "ni_measurement_plugin_sdk_generator.plugin:create_measurement"
@@ -64,7 +72,7 @@ extend_exclude = '\.tox/|_pb2(_grpc)?\.(py|pyi)$'
6472
line-length = 100
6573

6674
[tool.ni-python-styleguide]
67-
extend_exclude = '.tox/,*_pb2_grpc.py,*_pb2_grpc.pyi,*_pb2.py,*_pb2.pyi'
75+
extend_exclude = 'tests/test_assets/example_renders/,.tox/,*_pb2_grpc.py,*_pb2_grpc.pyi,*_pb2.py,*_pb2.pyi'
6876

6977
[tool.mypy]
7078
files = "ni_measurement_plugin_sdk_generator/,tests/"

packages/generator/tests/acceptance/test_non_streaming_measurement_client.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88
from typing import Any
99

1010
import pytest
11-
from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types import (
12-
array_pb2,
13-
)
11+
from ni.protobuf.types import array_pb2
1412
from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
1513

1614
from tests.conftest import CliRunnerFunction

packages/generator/tests/test_assets/example_renders/measurement_plugin_client/localized_measurement_client.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,9 @@
1616
measurement_service_pb2 as v2_measurement_service_pb2,
1717
measurement_service_pb2_grpc as v2_measurement_service_pb2_grpc,
1818
)
19-
from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types.array_pb2 import (
20-
Double2DArray,
21-
)
22-
from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types.array_pb2 import (
23-
String2DArray,
24-
)
25-
from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types.xydata_pb2 import (
26-
DoubleXYData,
27-
)
19+
from ni.protobuf.types.array_pb2 import Double2DArray
20+
from ni.protobuf.types.array_pb2 import String2DArray
21+
from ni.protobuf.types.xydata_pb2 import DoubleXYData
2822
from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
2923
from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
3024
from ni_measurement_plugin_sdk_service.measurement import WrongMessageTypeWarning

0 commit comments

Comments
 (0)