diff --git a/.github/workflows/Publish_NIMS.yml b/.github/workflows/Publish_NIMS.yml index c37aa5985..707b5ff48 100644 --- a/.github/workflows/Publish_NIMS.yml +++ b/.github/workflows/Publish_NIMS.yml @@ -47,11 +47,17 @@ jobs: - name: Update NIMS package version based on tag name. run: | poetry version ${{ steps.vars.outputs.tag }} + working-directory: ./packages/service - name: Update NIMG package version based on tag name. run: | poetry version ${{ steps.vars.outputs.tag }} - working-directory: ./ni_measurement_plugin_sdk_generator + working-directory: ./packages/generator + + - name: Update SDK package version based on tag name. + run: | + poetry version ${{ steps.vars.outputs.tag }} + working-directory: ./packages/sdk - name: Commit file changes id: commit @@ -84,7 +90,13 @@ jobs: if: ${{ startsWith(github.event.release.target_commitish, 'main') || startsWith(github.event.release.target_commitish, 'releases/') }} run: | poetry publish --build --username __token__ --password ${{ secrets.PYPI_TOKEN }} - working-directory: ./ni_measurement_plugin_sdk_generator + working-directory: ./packages/generator + + - name: Build SDK Python package and publish to PyPI + if: ${{ startsWith(github.event.release.target_commitish, 'main') || startsWith(github.event.release.target_commitish, 'releases/') }} + run: | + poetry publish --build --username __token__ --password ${{ secrets.PYPI_TOKEN }} + working-directory: ./packages/sdk - name: Create archives of the examples env: diff --git a/.github/workflows/check_examples.yml b/.github/workflows/check_examples.yml index 8e54a41ff..2ea2a2420 100644 --- a/.github/workflows/check_examples.yml +++ b/.github/workflows/check_examples.yml @@ -31,7 +31,7 @@ jobs: with: path: 'examples/**/poetry.lock' # Include the main project's poetry.lock in the hash to detect upstream dependency updates. - key: examples-poetry-lock-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('examples/**/pyproject.toml', 'poetry.lock') }} + key: examples-poetry-lock-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('examples/**/pyproject.toml', 'packages/service/poetry.lock') }} - name: Lock examples if: steps.cache-poetry-lock.outputs.cache-hit != 'true' run: | diff --git a/.github/workflows/check_nimg.yml b/.github/workflows/check_nimg.yml index 67c55d58d..9990a0339 100644 --- a/.github/workflows/check_nimg.yml +++ b/.github/workflows/check_nimg.yml @@ -15,7 +15,7 @@ jobs: defaults: run: # Set the working-directory for all steps in this job. - working-directory: ./ni_measurement_plugin_sdk_generator + working-directory: ./packages/generator steps: - name: Check out repo uses: actions/checkout@v4 @@ -34,8 +34,8 @@ jobs: uses: actions/cache@v4 id: cache with: - path: ni_measurement_plugin_sdk_generator/.venv - key: ni-measurement-plugin-sdk-generator-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }} + path: packages/generator/.venv + key: ni-measurement-plugin-sdk-generator-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('packages/generator/poetry.lock') }} - name: Install ni-measurement-plugin-sdk-generator run: poetry install -v - name: Lint ni-measurement-plugin-sdk-generator diff --git a/.github/workflows/check_nims.yml b/.github/workflows/check_nims.yml index 4390f7653..5d4d8db8b 100644 --- a/.github/workflows/check_nims.yml +++ b/.github/workflows/check_nims.yml @@ -12,6 +12,10 @@ jobs: check_nims: name: Check NIMS runs-on: ubuntu-latest + defaults: + run: + # Set the working-directory for all steps in this job. + working-directory: ./packages/service steps: - name: Check out repo uses: actions/checkout@v4 @@ -34,15 +38,15 @@ jobs: uses: actions/cache/restore@v4 id: restore-nims-all-extras with: - path: .venv - key: ni-measurement-plugin-sdk-service-all-extras-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }} + path: packages/service/.venv + key: ni-measurement-plugin-sdk-service-all-extras-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('packages/service/poetry.lock') }} - name: Install ni-measurement-plugin-sdk-service (all extras) run: poetry install -v --all-extras - name: Save cached virtualenv (ni-measurement-plugin-sdk-service, all extras) uses: actions/cache/save@v4 if: steps.restore-nims-all-extras.outputs.cache-hit != 'true' with: - path: .venv + path: packages/service/.venv key: ${{ steps.restore-nims-all-extras.outputs.cache-primary-key }} - name: Lint ni-measurement-plugin-sdk-service run: poetry run ni-python-styleguide lint @@ -60,15 +64,15 @@ jobs: uses: actions/cache/restore@v4 id: restore-nims-all-extras-docs with: - path: .venv - key: ni-measurement-plugin-sdk-service-all-extras-docs-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }} + path: packages/service/.venv + key: ni-measurement-plugin-sdk-service-all-extras-docs-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('packages/service/poetry.lock') }} - name: Install ni-measurement-plugin-sdk-service (all extras, docs) run: poetry install -v --all-extras --with docs - name: Save cached virtualenv (ni-measurement-plugin-sdk-service, all extras, docs) uses: actions/cache/save@v4 if: steps.restore-nims-all-extras-docs.outputs.cache-hit != 'true' with: - path: .venv + path: packages/service/.venv key: ${{ steps.restore-nims-all-extras-docs.outputs.cache-primary-key }} - name: Build docs and check for errors/warnings run: | @@ -76,7 +80,7 @@ jobs: mkdir -p docs poetry run sphinx-build _docs_source docs -b html -W --keep-going - name: Revert docs - run: git clean -dfx docs/ && git restore docs/ + run: rm -rf docs - name: Generate gRPC stubs run: | find ni_measurement_plugin_sdk_service/_internal/stubs/ -name \*_pb2.py\* -o -name \*_pb2_grpc.py\* -delete diff --git a/.github/workflows/run_system_tests.yml b/.github/workflows/run_system_tests.yml index 4c2967e1a..f49c6c2c2 100644 --- a/.github/workflows/run_system_tests.yml +++ b/.github/workflows/run_system_tests.yml @@ -12,6 +12,10 @@ jobs: - windows - x64 - rdss-measlinkbot-win-10-${{ matrix.configuration }} + defaults: + run: + # Set the working-directory for all steps in this job. + working-directory: ./packages/service strategy: matrix: configuration: ["py32", "py64"] @@ -24,14 +28,15 @@ jobs: uses: actions/checkout@v4 - name: Copy and rename .env.simulation to .env run: cp examples/.env.simulation .env + working-directory: ./ - name: Cache virtualenvs uses: actions/cache@v4 id: cache with: path: | - .venv - .tox - key: run-system-tests-${{ runner.os }}-${{ matrix.configuration }}-${{ hashFiles('poetry.lock') }} + packages/service/.venv + packages/service/.tox + key: run-system-tests-${{ runner.os }}-${{ matrix.configuration }}-${{ hashFiles('packages/service/poetry.lock') }} - name: Install dependencies run: poetry install -v - name: Run system tests @@ -40,5 +45,5 @@ jobs: uses: actions/upload-artifact@v3 with: name: test_results - path: test_results/*.xml + path: ./packages/service/test_results/*.xml if: always() diff --git a/.github/workflows/run_unit_tests.yml b/.github/workflows/run_unit_tests.yml index 158056744..aa2fda1dc 100644 --- a/.github/workflows/run_unit_tests.yml +++ b/.github/workflows/run_unit_tests.yml @@ -36,56 +36,60 @@ jobs: uses: actions/cache/restore@v4 id: restore-nims-no-extras with: - path: .venv - key: ni-measurement-plugin-sdk-service-no-extras-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }} + path: packages/service/.venv + key: ni-measurement-plugin-sdk-service-no-extras-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('packages/service/poetry.lock') }} - name: Install ni-measurement-plugin-sdk-service (no extras) run: poetry install -v + working-directory: ./packages/service - name: Save cached virtualenv (ni-measurement-plugin-sdk-service, no extras) uses: actions/cache/save@v4 if: steps.restore-nims-no-extras.outputs.cache-hit != 'true' with: - path: .venv + path: packages/service/.venv key: ${{ steps.restore-nims-no-extras.outputs.cache-primary-key }} - name: Run unit tests and code coverage (ni-measurement-plugin-sdk-service, no extras) run: poetry run pytest ./tests/unit -v --cov=ni_measurement_plugin_sdk_service --junitxml=test_results/nims-${{ matrix.os }}-py${{ matrix.python-version}}-no-extras.xml + working-directory: ./packages/service # ni-measurement-plugin-sdk-service, all extras - name: Restore cached virtualenv (ni-measurement-plugin-sdk-service, all extras) uses: actions/cache/restore@v4 id: restore-nims-all-extras with: - path: .venv - key: ni-measurement-plugin-sdk-service-all-extras-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }} + path: packages/service/.venv + key: ni-measurement-plugin-sdk-service-all-extras-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('packages/service/poetry.lock') }} - name: Install ni-measurement-plugin-sdk-service (all extras) run: poetry install -v --all-extras + working-directory: ./packages/service - name: Save cached ni-measurement-plugin-sdk-service virtualenv (all extras) uses: actions/cache/save@v4 if: steps.restore-nims-all-extras.outputs.cache-hit != 'true' with: - path: .venv + path: packages/service/.venv key: ${{ steps.restore-nims-all-extras.outputs.cache-primary-key }} - name: Run unit tests and code coverage (ni-measurement-plugin-sdk-service, all extras) run: poetry run pytest ./tests/unit -v --cov=ni_measurement_plugin_sdk_service --junitxml=test_results/nims-${{ matrix.os }}-py${{ matrix.python-version}}-all-extras.xml + working-directory: ./packages/service # ni-measurement-plugin-sdk-generator - name: Restore cached virtualenv (ni-measurement-plugin-sdk-generator) uses: actions/cache/restore@v4 id: restore-nimg with: - path: ni_measurement_plugin_sdk_generator/.venv - key: ni-measurement-plugin-sdk-generator-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }} + path: packages/generator/.venv + key: ni-measurement-plugin-sdk-generator-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('packages/generator/poetry.lock') }} - name: Install ni-measurement-plugin-sdk-generator run: poetry install -v - working-directory: ./ni_measurement_plugin_sdk_generator + working-directory: ./packages/generator - name: Save cached virtualenv (ni-measurement-plugin-sdk-generator) uses: actions/cache/save@v4 if: steps.restore-nimg.outputs.cache-hit != 'true' with: - path: ni_measurement_plugin_sdk_generator/.venv + path: packages/generator/.venv key: ${{ steps.restore-nimg.outputs.cache-primary-key }} - name: Run tests and code coverage (ni-measurement-plugin-sdk-generator) run: poetry run pytest -v --cov=ni_measurement_plugin_sdk_generator --junitxml=test_results/nimg-${{ matrix.os }}-py${{ matrix.python-version}}.xml - working-directory: ./ni_measurement_plugin_sdk_generator + working-directory: ./packages/generator - name: Upload test results uses: actions/upload-artifact@v3 diff --git a/.readthedocs.yml b/.readthedocs.yml index 4da5fc8fd..3f8152860 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -6,11 +6,11 @@ build: python: "3.9" jobs: post_create_environment: - - pip install poetry==1.2.2 + - pip install poetry==1.8.2 # Tell poetry to not use a virtual environment - poetry config virtualenvs.create false post_install: - poetry install --with docs sphinx: - configuration: _docs_source/conf.py \ No newline at end of file + configuration: packages/service/_docs_source/conf.py \ No newline at end of file diff --git a/docs/CNAME b/docs/CNAME index 18027287e..64f410635 100644 --- a/docs/CNAME +++ b/docs/CNAME @@ -1 +1 @@ -measurementlink-python.readthedocs.io \ No newline at end of file +measurement-plugin-python.readthedocs.io \ No newline at end of file diff --git a/ni_measurement_plugin_sdk_generator/README.md b/packages/generator/README.md similarity index 100% rename from ni_measurement_plugin_sdk_generator/README.md rename to packages/generator/README.md diff --git a/ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/__main__.py b/packages/generator/ni_measurement_plugin_sdk_generator/__main__.py similarity index 100% rename from ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/__main__.py rename to packages/generator/ni_measurement_plugin_sdk_generator/__main__.py diff --git a/ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/py.typed b/packages/generator/ni_measurement_plugin_sdk_generator/py.typed similarity index 100% rename from ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/py.typed rename to packages/generator/ni_measurement_plugin_sdk_generator/py.typed diff --git a/ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/template.py b/packages/generator/ni_measurement_plugin_sdk_generator/template.py similarity index 100% rename from ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/template.py rename to packages/generator/ni_measurement_plugin_sdk_generator/template.py diff --git a/ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/templates/_helpers.py.mako b/packages/generator/ni_measurement_plugin_sdk_generator/templates/_helpers.py.mako similarity index 100% rename from ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/templates/_helpers.py.mako rename to packages/generator/ni_measurement_plugin_sdk_generator/templates/_helpers.py.mako diff --git a/ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/templates/measurement.measproj.mako b/packages/generator/ni_measurement_plugin_sdk_generator/templates/measurement.measproj.mako similarity index 100% rename from ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/templates/measurement.measproj.mako rename to packages/generator/ni_measurement_plugin_sdk_generator/templates/measurement.measproj.mako diff --git a/ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/templates/measurement.measui.mako b/packages/generator/ni_measurement_plugin_sdk_generator/templates/measurement.measui.mako similarity index 100% rename from ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/templates/measurement.measui.mako rename to packages/generator/ni_measurement_plugin_sdk_generator/templates/measurement.measui.mako diff --git a/ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/templates/measurement.py.mako b/packages/generator/ni_measurement_plugin_sdk_generator/templates/measurement.py.mako similarity index 100% rename from ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/templates/measurement.py.mako rename to packages/generator/ni_measurement_plugin_sdk_generator/templates/measurement.py.mako diff --git a/ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/templates/measurement.serviceconfig.mako b/packages/generator/ni_measurement_plugin_sdk_generator/templates/measurement.serviceconfig.mako similarity index 100% rename from ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/templates/measurement.serviceconfig.mako rename to packages/generator/ni_measurement_plugin_sdk_generator/templates/measurement.serviceconfig.mako diff --git a/ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/templates/start.bat.mako b/packages/generator/ni_measurement_plugin_sdk_generator/templates/start.bat.mako similarity index 100% rename from ni_measurement_plugin_sdk_generator/ni_measurement_plugin_sdk_generator/templates/start.bat.mako rename to packages/generator/ni_measurement_plugin_sdk_generator/templates/start.bat.mako diff --git a/ni_measurement_plugin_sdk_generator/poetry.lock b/packages/generator/poetry.lock similarity index 100% rename from ni_measurement_plugin_sdk_generator/poetry.lock rename to packages/generator/poetry.lock diff --git a/ni_measurement_plugin_sdk_generator/poetry.toml b/packages/generator/poetry.toml similarity index 100% rename from ni_measurement_plugin_sdk_generator/poetry.toml rename to packages/generator/poetry.toml diff --git a/ni_measurement_plugin_sdk_generator/pyproject.toml b/packages/generator/pyproject.toml similarity index 100% rename from ni_measurement_plugin_sdk_generator/pyproject.toml rename to packages/generator/pyproject.toml diff --git a/ni_measurement_plugin_sdk_generator/tests/acceptance/test_generator.py b/packages/generator/tests/acceptance/test_generator.py similarity index 100% rename from ni_measurement_plugin_sdk_generator/tests/acceptance/test_generator.py rename to packages/generator/tests/acceptance/test_generator.py diff --git a/ni_measurement_plugin_sdk_generator/tests/conftest.py b/packages/generator/tests/conftest.py similarity index 100% rename from ni_measurement_plugin_sdk_generator/tests/conftest.py rename to packages/generator/tests/conftest.py diff --git a/ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement/SampleMeasurement.serviceconfig b/packages/generator/tests/test_assets/example_renders/measurement/SampleMeasurement.serviceconfig similarity index 100% rename from ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement/SampleMeasurement.serviceconfig rename to packages/generator/tests/test_assets/example_renders/measurement/SampleMeasurement.serviceconfig diff --git a/ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement/_helpers.py b/packages/generator/tests/test_assets/example_renders/measurement/_helpers.py similarity index 100% rename from ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement/_helpers.py rename to packages/generator/tests/test_assets/example_renders/measurement/_helpers.py diff --git a/ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement/measurement.py b/packages/generator/tests/test_assets/example_renders/measurement/measurement.py similarity index 100% rename from ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement/measurement.py rename to packages/generator/tests/test_assets/example_renders/measurement/measurement.py diff --git a/ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement/start.bat b/packages/generator/tests/test_assets/example_renders/measurement/start.bat similarity index 100% rename from ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement/start.bat rename to packages/generator/tests/test_assets/example_renders/measurement/start.bat diff --git a/ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement_with_annotations/SampleMeasurement.serviceconfig b/packages/generator/tests/test_assets/example_renders/measurement_with_annotations/SampleMeasurement.serviceconfig similarity index 100% rename from ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement_with_annotations/SampleMeasurement.serviceconfig rename to packages/generator/tests/test_assets/example_renders/measurement_with_annotations/SampleMeasurement.serviceconfig diff --git a/ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement_with_annotations/_helpers.py b/packages/generator/tests/test_assets/example_renders/measurement_with_annotations/_helpers.py similarity index 100% rename from ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement_with_annotations/_helpers.py rename to packages/generator/tests/test_assets/example_renders/measurement_with_annotations/_helpers.py diff --git a/ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement_with_annotations/measurement.py b/packages/generator/tests/test_assets/example_renders/measurement_with_annotations/measurement.py similarity index 100% rename from ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement_with_annotations/measurement.py rename to packages/generator/tests/test_assets/example_renders/measurement_with_annotations/measurement.py diff --git a/ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement_with_annotations/start.bat b/packages/generator/tests/test_assets/example_renders/measurement_with_annotations/start.bat similarity index 100% rename from ni_measurement_plugin_sdk_generator/tests/test_assets/example_renders/measurement_with_annotations/start.bat rename to packages/generator/tests/test_assets/example_renders/measurement_with_annotations/start.bat diff --git a/packages/sdk/README.md b/packages/sdk/README.md new file mode 100644 index 000000000..7bde6775b --- /dev/null +++ b/packages/sdk/README.md @@ -0,0 +1,23 @@ +# Measurement Plug-In SDK for Python +--- + +## Introduction + +Measurement Plug-In SDK for Python (`ni-measurement-plugin-sdk`) is a +tool for generating and writing reusable measurement plug-ins using gRPC services. + +The purpose of this package is as a meta-package that depends on `ni-measurement-plugin-sdk-generator` +and `ni-measurement-plugin-sdk-service` so as to easily install all the things needed for the +Measurement Plug-In SDK. + +For installation and usage, see [Measurement Plug-In SDK for Python (`ni-measurement-plugin-sdk-service`)](https://pypi.org/project/ni-measurement-plugin-sdk-service/). + +--- + +## Dependencies + +- Python >= 3.8 [(3.9 recommended)](https://www.python.org/downloads/release/python-3913/) +- [mako >= 1.2.1, < 2.x](https://pypi.org/project/Mako/1.2.1/) +- [click >= 8.1.3](https://pypi.org/project/click/8.1.3/) + +--- diff --git a/packages/sdk/ni_measurement_plugin_sdk/__init__.py b/packages/sdk/ni_measurement_plugin_sdk/__init__.py new file mode 100644 index 000000000..e6b880dce --- /dev/null +++ b/packages/sdk/ni_measurement_plugin_sdk/__init__.py @@ -0,0 +1 @@ +"""Measurement Plugin SDK for Python.""" diff --git a/packages/sdk/poetry.lock b/packages/sdk/poetry.lock new file mode 100644 index 000000000..43a6ac1b0 --- /dev/null +++ b/packages/sdk/poetry.lock @@ -0,0 +1,310 @@ +# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "deprecation" +version = "2.1.0" +description = "A library to handle automated deprecations" +optional = false +python-versions = "*" +files = [ + {file = "deprecation-2.1.0-py2.py3-none-any.whl", hash = "sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a"}, + {file = "deprecation-2.1.0.tar.gz", hash = "sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff"}, +] + +[package.dependencies] +packaging = "*" + +[[package]] +name = "grpcio" +version = "1.64.1" +description = "HTTP/2-based RPC framework" +optional = false +python-versions = ">=3.8" +files = [ + {file = "grpcio-1.64.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:55697ecec192bc3f2f3cc13a295ab670f51de29884ca9ae6cd6247df55df2502"}, + {file = "grpcio-1.64.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:3b64ae304c175671efdaa7ec9ae2cc36996b681eb63ca39c464958396697daff"}, + {file = "grpcio-1.64.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:bac71b4b28bc9af61efcdc7630b166440bbfbaa80940c9a697271b5e1dabbc61"}, + {file = "grpcio-1.64.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c024ffc22d6dc59000faf8ad781696d81e8e38f4078cb0f2630b4a3cf231a90"}, + {file = "grpcio-1.64.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7cd5c1325f6808b8ae31657d281aadb2a51ac11ab081ae335f4f7fc44c1721d"}, + {file = "grpcio-1.64.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0a2813093ddb27418a4c99f9b1c223fab0b053157176a64cc9db0f4557b69bd9"}, + {file = "grpcio-1.64.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2981c7365a9353f9b5c864595c510c983251b1ab403e05b1ccc70a3d9541a73b"}, + {file = "grpcio-1.64.1-cp310-cp310-win32.whl", hash = "sha256:1262402af5a511c245c3ae918167eca57342c72320dffae5d9b51840c4b2f86d"}, + {file = "grpcio-1.64.1-cp310-cp310-win_amd64.whl", hash = "sha256:19264fc964576ddb065368cae953f8d0514ecc6cb3da8903766d9fb9d4554c33"}, + {file = "grpcio-1.64.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:58b1041e7c870bb30ee41d3090cbd6f0851f30ae4eb68228955d973d3efa2e61"}, + {file = "grpcio-1.64.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bbc5b1d78a7822b0a84c6f8917faa986c1a744e65d762ef6d8be9d75677af2ca"}, + {file = "grpcio-1.64.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:5841dd1f284bd1b3d8a6eca3a7f062b06f1eec09b184397e1d1d43447e89a7ae"}, + {file = "grpcio-1.64.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8caee47e970b92b3dd948371230fcceb80d3f2277b3bf7fbd7c0564e7d39068e"}, + {file = "grpcio-1.64.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73819689c169417a4f978e562d24f2def2be75739c4bed1992435d007819da1b"}, + {file = "grpcio-1.64.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6503b64c8b2dfad299749cad1b595c650c91e5b2c8a1b775380fcf8d2cbba1e9"}, + {file = "grpcio-1.64.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1de403fc1305fd96cfa75e83be3dee8538f2413a6b1685b8452301c7ba33c294"}, + {file = "grpcio-1.64.1-cp311-cp311-win32.whl", hash = "sha256:d4d29cc612e1332237877dfa7fe687157973aab1d63bd0f84cf06692f04c0367"}, + {file = "grpcio-1.64.1-cp311-cp311-win_amd64.whl", hash = "sha256:5e56462b05a6f860b72f0fa50dca06d5b26543a4e88d0396259a07dc30f4e5aa"}, + {file = "grpcio-1.64.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:4657d24c8063e6095f850b68f2d1ba3b39f2b287a38242dcabc166453e950c59"}, + {file = "grpcio-1.64.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:62b4e6eb7bf901719fce0ca83e3ed474ae5022bb3827b0a501e056458c51c0a1"}, + {file = "grpcio-1.64.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:ee73a2f5ca4ba44fa33b4d7d2c71e2c8a9e9f78d53f6507ad68e7d2ad5f64a22"}, + {file = "grpcio-1.64.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:198908f9b22e2672a998870355e226a725aeab327ac4e6ff3a1399792ece4762"}, + {file = "grpcio-1.64.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39b9d0acaa8d835a6566c640f48b50054f422d03e77e49716d4c4e8e279665a1"}, + {file = "grpcio-1.64.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:5e42634a989c3aa6049f132266faf6b949ec2a6f7d302dbb5c15395b77d757eb"}, + {file = "grpcio-1.64.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b1a82e0b9b3022799c336e1fc0f6210adc019ae84efb7321d668129d28ee1efb"}, + {file = "grpcio-1.64.1-cp312-cp312-win32.whl", hash = "sha256:55260032b95c49bee69a423c2f5365baa9369d2f7d233e933564d8a47b893027"}, + {file = "grpcio-1.64.1-cp312-cp312-win_amd64.whl", hash = "sha256:c1a786ac592b47573a5bb7e35665c08064a5d77ab88a076eec11f8ae86b3e3f6"}, + {file = "grpcio-1.64.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:a011ac6c03cfe162ff2b727bcb530567826cec85eb8d4ad2bfb4bd023287a52d"}, + {file = "grpcio-1.64.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:4d6dab6124225496010bd22690f2d9bd35c7cbb267b3f14e7a3eb05c911325d4"}, + {file = "grpcio-1.64.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:a5e771d0252e871ce194d0fdcafd13971f1aae0ddacc5f25615030d5df55c3a2"}, + {file = "grpcio-1.64.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c3c1b90ab93fed424e454e93c0ed0b9d552bdf1b0929712b094f5ecfe7a23ad"}, + {file = "grpcio-1.64.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20405cb8b13fd779135df23fabadc53b86522d0f1cba8cca0e87968587f50650"}, + {file = "grpcio-1.64.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0cc79c982ccb2feec8aad0e8fb0d168bcbca85bc77b080d0d3c5f2f15c24ea8f"}, + {file = "grpcio-1.64.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a3a035c37ce7565b8f4f35ff683a4db34d24e53dc487e47438e434eb3f701b2a"}, + {file = "grpcio-1.64.1-cp38-cp38-win32.whl", hash = "sha256:1257b76748612aca0f89beec7fa0615727fd6f2a1ad580a9638816a4b2eb18fd"}, + {file = "grpcio-1.64.1-cp38-cp38-win_amd64.whl", hash = "sha256:0a12ddb1678ebc6a84ec6b0487feac020ee2b1659cbe69b80f06dbffdb249122"}, + {file = "grpcio-1.64.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:75dbbf415026d2862192fe1b28d71f209e2fd87079d98470db90bebe57b33179"}, + {file = "grpcio-1.64.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e3d9f8d1221baa0ced7ec7322a981e28deb23749c76eeeb3d33e18b72935ab62"}, + {file = "grpcio-1.64.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:5f8b75f64d5d324c565b263c67dbe4f0af595635bbdd93bb1a88189fc62ed2e5"}, + {file = "grpcio-1.64.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c84ad903d0d94311a2b7eea608da163dace97c5fe9412ea311e72c3684925602"}, + {file = "grpcio-1.64.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:940e3ec884520155f68a3b712d045e077d61c520a195d1a5932c531f11883489"}, + {file = "grpcio-1.64.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f10193c69fc9d3d726e83bbf0f3d316f1847c3071c8c93d8090cf5f326b14309"}, + {file = "grpcio-1.64.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ac15b6c2c80a4d1338b04d42a02d376a53395ddf0ec9ab157cbaf44191f3ffdd"}, + {file = "grpcio-1.64.1-cp39-cp39-win32.whl", hash = "sha256:03b43d0ccf99c557ec671c7dede64f023c7da9bb632ac65dbc57f166e4970040"}, + {file = "grpcio-1.64.1-cp39-cp39-win_amd64.whl", hash = "sha256:ed6091fa0adcc7e4ff944090cf203a52da35c37a130efa564ded02b7aff63bcd"}, + {file = "grpcio-1.64.1.tar.gz", hash = "sha256:8d51dd1c59d5fa0f34266b80a3805ec29a1f26425c2a54736133f6d87fc4968a"}, +] + +[package.extras] +protobuf = ["grpcio-tools (>=1.64.1)"] + +[[package]] +name = "mako" +version = "1.3.5" +description = "A super-fast templating language that borrows the best ideas from the existing templating languages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "Mako-1.3.5-py3-none-any.whl", hash = "sha256:260f1dbc3a519453a9c856dedfe4beb4e50bd5a26d96386cb6c80856556bb91a"}, + {file = "Mako-1.3.5.tar.gz", hash = "sha256:48dbc20568c1d276a2698b36d968fa76161bf127194907ea6fc594fa81f943bc"}, +] + +[package.dependencies] +MarkupSafe = ">=0.9.2" + +[package.extras] +babel = ["Babel"] +lingua = ["lingua"] +testing = ["pytest"] + +[[package]] +name = "markupsafe" +version = "2.1.5" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, +] + +[[package]] +name = "ni-measurement-plugin-sdk-generator" +version = "2.0.0.dev2" +description = "Measurement Plugin Code Generator for Python" +optional = false +python-versions = "<4.0,>=3.8" +files = [ + {file = "ni_measurement_plugin_sdk_generator-2.0.0.dev2-py3-none-any.whl", hash = "sha256:9a6ca7beefae7fc292b8a9e431775108ebbf0d1bbdd809b760b11df2bd8d2ab4"}, + {file = "ni_measurement_plugin_sdk_generator-2.0.0.dev2.tar.gz", hash = "sha256:52d9c25339dd756324b110126d152cca38acd7e0ec6379b84b2f8322824efeb8"}, +] + +[package.dependencies] +click = ">=8.1.3" +Mako = ">=1.2.1,<2.0.0" + +[[package]] +name = "ni-measurement-plugin-sdk-service" +version = "2.0.0.dev2" +description = "Measurement Plugin Support for Python" +optional = false +python-versions = "<4.0,>=3.8" +files = [ + {file = "ni_measurement_plugin_sdk_service-2.0.0.dev2-py3-none-any.whl", hash = "sha256:cb16aa025780de19ed7d04b5aa8c1ebd92bd4ff1ed04b596c1fd794ab6a19b62"}, + {file = "ni_measurement_plugin_sdk_service-2.0.0.dev2.tar.gz", hash = "sha256:778677cd3ae26b15b16059887be088ce34f4c5c9a50ded2497591b5560d8c3a6"}, +] + +[package.dependencies] +deprecation = ">=2.1" +grpcio = ">=1.49.1,<2.0.0" +protobuf = ">=4.21,<5.0" +python-decouple = ">=3.8" +pywin32 = {version = ">=303", markers = "sys_platform == \"win32\""} +traceloggingdynamic = {version = ">=1.0", markers = "python_version >= \"3.9\" and python_version < \"4.0\" and sys_platform == \"win32\""} + +[package.extras] +drivers = ["nidaqmx[grpc] (>=0.8.0)", "nidcpower[grpc] (>=1.4.4)", "nidigital[grpc] (>=1.4.4)", "nidmm[grpc] (>=1.4.4)", "nifgen[grpc] (>=1.4.4)", "niscope[grpc] (>=1.4.4)", "niswitch[grpc] (>=1.4.4)"] +nidaqmx = ["nidaqmx[grpc] (>=0.8.0)"] +nidcpower = ["nidcpower[grpc] (>=1.4.4)"] +nidigital = ["nidigital[grpc] (>=1.4.4)"] +nidmm = ["nidmm[grpc] (>=1.4.4)"] +nifgen = ["nifgen[grpc] (>=1.4.4)"] +niscope = ["niscope[grpc] (>=1.4.4)"] +niswitch = ["niswitch[grpc] (>=1.4.4)"] + +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, +] + +[[package]] +name = "protobuf" +version = "4.25.3" +description = "" +optional = false +python-versions = ">=3.8" +files = [ + {file = "protobuf-4.25.3-cp310-abi3-win32.whl", hash = "sha256:d4198877797a83cbfe9bffa3803602bbe1625dc30d8a097365dbc762e5790faa"}, + {file = "protobuf-4.25.3-cp310-abi3-win_amd64.whl", hash = "sha256:209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8"}, + {file = "protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c"}, + {file = "protobuf-4.25.3-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:e7cb0ae90dd83727f0c0718634ed56837bfeeee29a5f82a7514c03ee1364c019"}, + {file = "protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:7c8daa26095f82482307bc717364e7c13f4f1c99659be82890dcfc215194554d"}, + {file = "protobuf-4.25.3-cp38-cp38-win32.whl", hash = "sha256:f4f118245c4a087776e0a8408be33cf09f6c547442c00395fbfb116fac2f8ac2"}, + {file = "protobuf-4.25.3-cp38-cp38-win_amd64.whl", hash = "sha256:c053062984e61144385022e53678fbded7aea14ebb3e0305ae3592fb219ccfa4"}, + {file = "protobuf-4.25.3-cp39-cp39-win32.whl", hash = "sha256:19b270aeaa0099f16d3ca02628546b8baefe2955bbe23224aaf856134eccf1e4"}, + {file = "protobuf-4.25.3-cp39-cp39-win_amd64.whl", hash = "sha256:e3c97a1555fd6388f857770ff8b9703083de6bf1f9274a002a332d65fbb56c8c"}, + {file = "protobuf-4.25.3-py3-none-any.whl", hash = "sha256:f0700d54bcf45424477e46a9f0944155b46fb0639d69728739c0e47bab83f2b9"}, + {file = "protobuf-4.25.3.tar.gz", hash = "sha256:25b5d0b42fd000320bd7830b349e3b696435f3b329810427a6bcce6a5492cc5c"}, +] + +[[package]] +name = "python-decouple" +version = "3.8" +description = "Strict separation of settings from code." +optional = false +python-versions = "*" +files = [ + {file = "python-decouple-3.8.tar.gz", hash = "sha256:ba6e2657d4f376ecc46f77a3a615e058d93ba5e465c01bbe57289bfb7cce680f"}, + {file = "python_decouple-3.8-py3-none-any.whl", hash = "sha256:d0d45340815b25f4de59c974b855bb38d03151d81b037d9e3f463b0c9f8cbd66"}, +] + +[[package]] +name = "pywin32" +version = "306" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, + {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, + {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, + {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, + {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, + {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, + {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, + {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, + {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, + {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, + {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, + {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, + {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, + {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, +] + +[[package]] +name = "traceloggingdynamic" +version = "1.0.0" +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"}, +] + +[metadata] +lock-version = "2.0" +python-versions = "^3.8" +content-hash = "655153d0bf52074b6481de5c5aca23a22ce0f88220643ed4448ce7c086a18eb9" diff --git a/packages/sdk/poetry.toml b/packages/sdk/poetry.toml new file mode 100644 index 000000000..efa46ec0e --- /dev/null +++ b/packages/sdk/poetry.toml @@ -0,0 +1,2 @@ +[virtualenvs] +in-project = true \ No newline at end of file diff --git a/packages/sdk/pyproject.toml b/packages/sdk/pyproject.toml new file mode 100644 index 000000000..60c6f89d8 --- /dev/null +++ b/packages/sdk/pyproject.toml @@ -0,0 +1,28 @@ +[tool.poetry] +name = "ni_measurement_plugin_sdk" +version = "2.0.0-dev1" +description = "Measurement Plugin SDK for Python" +authors = ["NI "] +readme = "README.md" +repository = "https://github.com/ni/measurementlink-python/" +license = "MIT" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Intended Audience :: Manufacturing", + "Intended Audience :: Science/Research", + "Operating System :: Microsoft :: Windows", + # Poetry automatically adds classifiers for the license and the supported Python versions. + "Programming Language :: Python :: Implementation :: CPython", + "Topic :: Scientific/Engineering", + "Topic :: System :: Hardware", +] + +[tool.poetry.dependencies] +python = "^3.8" +ni-measurement-plugin-sdk-service = "*" +ni-measurement-plugin-sdk-generator = "*" + +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" \ No newline at end of file diff --git a/packages/service/README.md b/packages/service/README.md new file mode 100644 index 000000000..6840537ed --- /dev/null +++ b/packages/service/README.md @@ -0,0 +1,351 @@ +# Measurement Plug-In SDK for Python + +- [Measurement Plug-In SDK for Python](#measurement-plug-in-sdk-for-python) + - [Introduction](#introduction) + - [Dependencies](#dependencies) + - [Documentation](#documentation) + - [Examples](#examples) + - [Developing Measurements: Quick Start](#developing-measurements-quick-start) + - [Installation](#installation) + - [Developing a minimal python measurement](#developing-a-minimal-python-measurement) + - [Steps to run/debug the measurement service](#steps-to-rundebug-the-measurement-service) + - [Static Registration of Python Measurements](#static-registration-of-python-measurements) + - [Create a batch file that runs a python measurement](#create-a-batch-file-that-runs-a-python-measurement) + - [Create Executable for Python Scripts](#create-executable-for-python-scripts) + - [Appendix: Managing Measurement with Python](#appendix-managing-measurement-with-python) + - [Create and Manage Python Measurement using Poetry](#create-and-manage-python-measurement-using-poetry) + - [Create and Manage Python Measurement using `venv`](#create-and-manage-python-measurement-using-venv) + - [Create and Manage Python Measurement by directly installing `ni-measurement-plugin-sdk-service` as a system-level package](#create-and-manage-python-measurement-by-directly-installing-ni-measurement-plugin-sdk-service-as-a-system-level-package) + +--- + +## Introduction + +Measurement Plug-In SDK for Python (`ni-measurement-plugin-sdk-service`) is a Python +framework that helps you create reusable measurement plug-ins using gRPC +services. Deploy your measurement plug-ins to perform interactive validation in +InstrumentStudio and automated testing in TestStand. + +--- + +## Dependencies + +- Python >= 3.8 [(3.9 recommended)](https://www.python.org/downloads/release/python-3913/) +- [grpcio >= 1.49.1, < 2.x](https://pypi.org/project/grpcio/1.49.1/) +- [protobuf >= 4.21, < 5.x](https://pypi.org/project/protobuf/4.21.0/) +- [pywin32 >= 303 (Only for Windows)](https://pypi.org/project/pywin32/303/) + +--- + +## Documentation + +- [Measurement Plug-In SDK Manual](https://www.ni.com/docs/en-US/bundle/measurementlink) +- [API Reference](https://ni.github.io/measurementlink-python/) + +--- + +## System Configuration + +### Enable Win32 Long Paths + +By default, Windows has a path length limit of 260 characters. NI recommends enabling support for long paths when developing and deploying Python measurement services. + +There are three ways to do this: +- When installing Python using the Python for Windows installer, click `Disable path length limit` at the end of the installation. +- Set the `Enable Win32 long paths` group policy: + - Run `gpedit.msc`. + - Expand `Computer Configuration` » `Administrative Templates` » `All Settings`. + - Find `Enable Win32 long paths` in the list, double-click it, and set it to `Enabled`. +- In the Windows registry, set `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled` (type: `REG_DWORD`) to 1. For more details, see [Maximum Path Length Limitation](https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation). + +--- + +## Examples + +The `examples` directory contains example measurements for use with InstrumentStudio 2024 Q3 or later. + +For more information on setting up and running the example measurements, see the included `README.md` file. + +For best results, use the example measurements corresponding to the version of InstrumentStudio +that you are using. Newer examples may demonstrate features that are not available in older +versions of InstrumentStudio. + +--- + +## Developing Measurements: Quick Start + +This section provides instructions to develop custom measurement services in Python using Measurement Plug-In SDK for Python. + +### Installation + +Make sure the system has the recommended Python version is installed. Install Measurement Plug-In SDK for Python using [pip](https://pip.pypa.io/). + +``` cmd +REM Activate the required virtual environment if any. +pip install ni-measurement-plugin-sdk-service +``` + +Check if you have installed the expected version of Measurement Plug-In SDK for Python installed by running the below command: + +```cmd +pip show ni-measurement-plugin-sdk-service +``` + +### Developing a minimal Python measurement + +1. Install the `ni-measurement-plugin-sdk-generator` package. + +``` cmd +REM Activate the required virtual environment if any. +pip install ni-measurement-plugin-sdk-generator +``` + +2. Run the `ni-measurement-plugin-sdk-generator` tool. Use command line arguments to specify the `display-name` and optionally the `version`, `measurement-type`, and `product-type`. + + 1. Running `ni-measurement-plugin-sdk-generator` without optional arguments: + + `ni-measurement-plugin-sdk-generator SampleMeasurement` + + 'SampleMeasurement' is the display name of your measurement service. Without the optional arguments, + the other arguments are generated for you based on the display name. + + 2. Running `ni-measurement-plugin-sdk-generator` with optional arguments for `measurement-version`, `ui-file`, + `service-class`, and `description-url`: + + `ni-measurement-plugin-sdk-generator SampleMeasurement --measurement-version 0.1.0.0 --ui-file MeasurementUI.measui --service-class SampleMeasurement_Python --description-url https://www.example.com/SampleMeasurement.html` + + 3. Running `ni-measurement-plugin-sdk-generator` with optional argument for `directory-out` + + `ni-measurement-plugin-sdk-generator SampleMeasurement --directory-out ` + + If no output directory is specified, the files will + be placed in a new folder under the current directory + named after the display name without spaces. + +3. To customize the created measurement, provide metadata of the measurement's configuration (input parameters) and outputs (output parameters) in `measurement.py`. + 1. Use the `configuration()` decorator to provide metadata about the configurations.**The order of the configuration decorator must match with the order of the parameters defined in the function signature.** + + ``` python + @foo_measurement_service.register_measurement + #Display Names can not contains backslash or front slash. + @foo_measurement_service.configuration("DisplayNameForInput1", DataType.String, "DefaultValueForInput1") + @foo_measurement_service.configuration("DisplayNameForInput2", DataType.String, "DefaultValueForInput2") + def measure(input_1, input_2): + ''' A simple Measurement method''' + return ["foo", "bar"] + ``` + + 2. Use the `output()` decorator to provide metadata about the output.**The order of the output decorators from top to bottom must match the order of the values of the list returned by the function.** + + ``` python + @foo_measurement_service.register_measurement + @foo_measurement_service.configuration("DisplayNameForInput1", nims.DataType.String, "DefaultValueForInput1") + @foo_measurement_service.configuration("DisplayNameForInput2", nims.DataType.String, "DefaultValueForInput2") + @foo_measurement_service.output("DisplayNameForOutput1", nims.DataType.String) + @foo_measurement_service.output("DisplayNameForOutput2", nims.DataType.String) + def measure(input_1, input_2): + return ["foo", "bar"] + ``` + +4. Run/Debug the created measurement by following the steps discussed in the section ["Steps to run/debug the measurement service".](#steps-to-rundebug-the-measurement-service) + +--- + +## Steps to run/debug the measurement service + +1. Start the discovery service if not already started. + +2. (Optional) Activate related virtual environments. Measurement developers can skip this step if they are not using any [virtual environments](#create-and-manage-python-measurement-using-venv) or [poetry-based projects.](#create-and-manage-python-measurement-using-poetry) + + ```cmd + .venv\scripts\activate + ``` + + - After successful activation, you can see the name of the environment, `(.venv)` is added to the command prompt. + - If you face an access issue when trying to activate, retry after allowing scripts to run as Administrator by executing the below command in Windows PowerShell: + + ```cmd + Set-ExecutionPolicy RemoteSigned + ``` + +3. [Run](https://code.visualstudio.com/docs/python/python-tutorial#_run-hello-world)/[Debug](https://code.visualstudio.com/docs/python/debugging#_basic-debugging) the measurement Python file. + +4. To stop the running measurement service, press `Enter` in the terminal to properly close the service. + +5. (Optional) After the usage of measurement, deactivate the virtual environment. Measurement developers can skip this step if they are not using any [virtual environments](#create-and-manage-python-measurement-using-venv) or [poetry-based projects.](#create-and-manage-python-measurement-using-poetry) + + ```cmd + deactivate + ``` + +--- + +## Static Registration of Python Measurements + +The NI Discovery Service provides a registry of other services, and can discover and activate other services on the system. These features allow the discovery service to distinguish, manage, and describe measurement services on the system. + +To statically register a measurement service with the NI Discovery Service, do the following: + +1. Create a [startup batch file](#create-a-batch-file-that-runs-a-python-measurement) or [executable](#create-executable-for-python-scripts) for the measurement service. + +2. Edit the measurement service's `.serviceconfig` file and set the `path` value to the filename of the startup batch file or executable. + +3. Copy the measurement service's directory (including the `.serviceconfig` file and startup batch file) to a subdirectory of `C:\ProgramData\National Instruments\Plug-Ins\Measurements`. +> **Note** +> If you are using a virtual environment, do not copy the `.venv` subdirectory—the virtual environment must be re-created in the new location. + +Once your measurement service is statically registered, the NI Discovery Service makes it visible in supported NI applications. + +### Create a batch file that runs a Python measurement + +The batch file used for static registration is responsible for starting the Python Scripts. + +Typical Batch File: + +``` cmd +"" "" +``` + +Examples to start the fictitious file named `foo_measurement.py`: + +1. Using the Python system distribution + + ```cmd + python foo_measurement.py + ``` + +2. Using the virtual environment + + ```cmd + REM Windows + .\.venv\Scripts\python.exe foo_measurement.py + + REM Linux + .venv/bin/python foo_measurement.py + ``` + +### Create Executable for Python Scripts + +To create an executable from a measurement, you can use the [pyinstaller](https://www.pyinstaller.org/) tooling. If you are using a Poetry project, add `pyinstaller` to its `dev-dependencies`. When statically registering the service, install the EXE into a unique directory along with its .serviceconfig and UI files. + +Typical PyInstaller command to build executable: + +```cmd +pyinstaller --onefile --console --paths .venv\Lib\site-packages measurement.py +``` + +## Troubleshooting + +### "File not found" or "No such file or directory" errors when copying or running a measurement service + +If copying or running a measurement service produces "File not found" or "No such file or directory" errors, make sure to [enable Win32 long paths](#enable-win32-long-paths). If you are unable to enable Win32 long paths, consider deploying the measurement service to a directory with a shorter path. + +## Appendix: Managing Measurement with Python + +A measurement and its related files can be maintained in different ways in Python. The basic components of any Python measurement are: + +1. Measurement Python module (`.py` file) + - This file contains all the details related to the measurement and also contains the logic for the measurement execution. + - This file is run to start the measurement as a service. + +2. UI File + - UI file for the measurement. Types of supported UI files are: + - Measurement UI (`.measui`): created using the **Measurement Plug-In UI Editor** application. + - LabVIEW UI (`.vi`) + - The path of this file is configured by `ui_file_path` in `measurement_info` variable definition in measurement Python module (`.py`). + +Python communities have different ways of managing Python projects and their dependencies. It is up to the measurement developer to decide how to maintain the project and dependencies. Measurement developers can choose from a few common approaches discussed below based on their requirements. + +### Create and Manage Python Measurement using Poetry + +1. Install `poetry` (one-time setup) + + 1. Make sure the system has the recommended Python version installed. + + 2. Install `poetry` using the installation steps given in . + +2. Create a new Python project and add `ni-measurement-plugin-sdk-service` as a dependency to the project. + + 1. Open a command prompt, and change the working directory to the directory of your choice where you want to create the project. + + ``` cmd + cd + ``` + + 2. Create a Poetry project using the `poetry new` command. Poetry will create boilerplate files and folders that are commonly needed for a Python project. + + ``` cmd + poetry new + ``` + + 3. Add the `ni-measurement-plugin-sdk-service` package as a dependency using the [`poetry add`](https://python-poetry.org/docs/cli/#add) command. + + ``` cmd + cd + poetry add ni-measurement-plugin-sdk-service + ``` + + 4. The virtual environment will be auto-created by poetry. + + 5. Create measurement modules as described in ["Developing a minimal Python measurement"](#developing-a-minimal-python-measurement) + - Any additional dependencies required by measurement can be added using [add command](https://python-poetry.org/docs/cli/#add). + + ``` cmd + poetry add + ``` + +For detailed info on managing projects using poetry [refer to the official documentation](https://python-poetry.org/docs/cli/). + +### Create and Manage Python Measurement using `venv` + +1. Make sure the system has the recommended Python version installed. + +2. Open a command prompt, and change the working directory to the directory of your choice where you want to create a project. + + ``` cmd + cd + ``` + +3. Create a virtual environment. + + ``` cmd + REM This creates a virtual environment named .venv + python -m venv .venv + ``` + +4. Activate the virtual environment. After successful activation + + ``` cmd + .venv\scripts\activate + REM Optionally upgrade the pip within the venv by executing the command + python -m pip install -U pip + ``` + +5. Install the `ni-measurement-plugin-sdk-service` package into the virtual environment. + + ``` cmd + pip install ni-measurement-plugin-sdk-service + ``` + +6. Create measurement modules as described in ["Developing a minimal Python measurement"](#developing-a-minimal-python-measurement) + - Any additional dependencies required by measurement can be added pip install. + + ``` cmd + pip install + ``` + +For detailed info on managing projects with a virtual environment, refer to the [official documentation](https://docs.python.org/3/tutorial/venv.html). + +### Create and Manage Python Measurement by directly installing `ni-measurement-plugin-sdk-service` as a system-level package + +Measurement developers can also install `ni-measurement-plugin-sdk-service` as a system package if necessary. + +1. Install the `ni-measurement-plugin-sdk-service` package from the command prompt + + ``` cmd + pip install ni-measurement-plugin-sdk-service + ``` + +2. Create measurement modules as described in ["Developing a minimal Python measurement"](#developing-a-minimal-python-measurement) + +--- diff --git a/_docs_source/conf.py b/packages/service/_docs_source/conf.py similarity index 100% rename from _docs_source/conf.py rename to packages/service/_docs_source/conf.py diff --git a/_docs_source/index.rst b/packages/service/_docs_source/index.rst similarity index 100% rename from _docs_source/index.rst rename to packages/service/_docs_source/index.rst diff --git a/ni_measurement_plugin_sdk_service/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_annotations.py b/packages/service/ni_measurement_plugin_sdk_service/_annotations.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_annotations.py rename to packages/service/ni_measurement_plugin_sdk_service/_annotations.py diff --git a/ni_measurement_plugin_sdk_service/_configuration.py b/packages/service/ni_measurement_plugin_sdk_service/_configuration.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_configuration.py rename to packages/service/ni_measurement_plugin_sdk_service/_configuration.py diff --git a/ni_measurement_plugin_sdk_service/_datatypeinfo.py b/packages/service/ni_measurement_plugin_sdk_service/_datatypeinfo.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_datatypeinfo.py rename to packages/service/ni_measurement_plugin_sdk_service/_datatypeinfo.py diff --git a/ni_measurement_plugin_sdk_service/_dotenvpath.py b/packages/service/ni_measurement_plugin_sdk_service/_dotenvpath.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_dotenvpath.py rename to packages/service/ni_measurement_plugin_sdk_service/_dotenvpath.py diff --git a/ni_measurement_plugin_sdk_service/_drivers/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_drivers/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_drivers/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_drivers/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_drivers/_grpcdevice.py b/packages/service/ni_measurement_plugin_sdk_service/_drivers/_grpcdevice.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_drivers/_grpcdevice.py rename to packages/service/ni_measurement_plugin_sdk_service/_drivers/_grpcdevice.py diff --git a/ni_measurement_plugin_sdk_service/_drivers/_nidaqmx.py b/packages/service/ni_measurement_plugin_sdk_service/_drivers/_nidaqmx.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_drivers/_nidaqmx.py rename to packages/service/ni_measurement_plugin_sdk_service/_drivers/_nidaqmx.py diff --git a/ni_measurement_plugin_sdk_service/_drivers/_nidcpower.py b/packages/service/ni_measurement_plugin_sdk_service/_drivers/_nidcpower.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_drivers/_nidcpower.py rename to packages/service/ni_measurement_plugin_sdk_service/_drivers/_nidcpower.py diff --git a/ni_measurement_plugin_sdk_service/_drivers/_nidigital.py b/packages/service/ni_measurement_plugin_sdk_service/_drivers/_nidigital.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_drivers/_nidigital.py rename to packages/service/ni_measurement_plugin_sdk_service/_drivers/_nidigital.py diff --git a/ni_measurement_plugin_sdk_service/_drivers/_nidmm.py b/packages/service/ni_measurement_plugin_sdk_service/_drivers/_nidmm.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_drivers/_nidmm.py rename to packages/service/ni_measurement_plugin_sdk_service/_drivers/_nidmm.py diff --git a/ni_measurement_plugin_sdk_service/_drivers/_nifgen.py b/packages/service/ni_measurement_plugin_sdk_service/_drivers/_nifgen.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_drivers/_nifgen.py rename to packages/service/ni_measurement_plugin_sdk_service/_drivers/_nifgen.py diff --git a/ni_measurement_plugin_sdk_service/_drivers/_niscope.py b/packages/service/ni_measurement_plugin_sdk_service/_drivers/_niscope.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_drivers/_niscope.py rename to packages/service/ni_measurement_plugin_sdk_service/_drivers/_niscope.py diff --git a/ni_measurement_plugin_sdk_service/_drivers/_niswitch.py b/packages/service/ni_measurement_plugin_sdk_service/_drivers/_niswitch.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_drivers/_niswitch.py rename to packages/service/ni_measurement_plugin_sdk_service/_drivers/_niswitch.py diff --git a/ni_measurement_plugin_sdk_service/_featuretoggles.py b/packages/service/ni_measurement_plugin_sdk_service/_featuretoggles.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_featuretoggles.py rename to packages/service/ni_measurement_plugin_sdk_service/_featuretoggles.py diff --git a/ni_measurement_plugin_sdk_service/_internal/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/discovery_client.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/discovery_client.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/discovery_client.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/discovery_client.py diff --git a/ni_measurement_plugin_sdk_service/_internal/grpc_servicer.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/grpc_servicer.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/grpc_servicer.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/grpc_servicer.py diff --git a/ni_measurement_plugin_sdk_service/_internal/parameter/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/parameter/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/parameter/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/parameter/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/parameter/_message.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/parameter/_message.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/parameter/_message.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/parameter/_message.py diff --git a/ni_measurement_plugin_sdk_service/_internal/parameter/_serializer_types.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/parameter/_serializer_types.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/parameter/_serializer_types.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/parameter/_serializer_types.py diff --git a/ni_measurement_plugin_sdk_service/_internal/parameter/metadata.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/parameter/metadata.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/parameter/metadata.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/parameter/metadata.py diff --git a/ni_measurement_plugin_sdk_service/_internal/parameter/serialization_strategy.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/parameter/serialization_strategy.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/parameter/serialization_strategy.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/parameter/serialization_strategy.py diff --git a/ni_measurement_plugin_sdk_service/_internal/parameter/serializer.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/parameter/serializer.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/parameter/serializer.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/parameter/serializer.py diff --git a/ni_measurement_plugin_sdk_service/_internal/service_manager.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/service_manager.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/service_manager.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/service_manager.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/proto/README.md b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/proto/README.md similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/proto/README.md rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/proto/README.md diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/proto/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/proto/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/proto/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/proto/__init__.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/proto/session.proto b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/proto/session.proto similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/proto/session.proto rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/proto/session.proto diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2.pyi diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2_grpc.py b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2_grpc.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2_grpc.py rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2_grpc.py diff --git a/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2_grpc.pyi b/packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2_grpc.pyi similarity index 100% rename from ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2_grpc.pyi rename to packages/service/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2_grpc.pyi diff --git a/ni_measurement_plugin_sdk_service/_tracelogging.py b/packages/service/ni_measurement_plugin_sdk_service/_tracelogging.py similarity index 100% rename from ni_measurement_plugin_sdk_service/_tracelogging.py rename to packages/service/ni_measurement_plugin_sdk_service/_tracelogging.py diff --git a/ni_measurement_plugin_sdk_service/discovery/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/discovery/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/discovery/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/discovery/__init__.py diff --git a/ni_measurement_plugin_sdk_service/discovery/_client.py b/packages/service/ni_measurement_plugin_sdk_service/discovery/_client.py similarity index 100% rename from ni_measurement_plugin_sdk_service/discovery/_client.py rename to packages/service/ni_measurement_plugin_sdk_service/discovery/_client.py diff --git a/ni_measurement_plugin_sdk_service/discovery/_support.py b/packages/service/ni_measurement_plugin_sdk_service/discovery/_support.py similarity index 100% rename from ni_measurement_plugin_sdk_service/discovery/_support.py rename to packages/service/ni_measurement_plugin_sdk_service/discovery/_support.py diff --git a/ni_measurement_plugin_sdk_service/discovery/_types.py b/packages/service/ni_measurement_plugin_sdk_service/discovery/_types.py similarity index 100% rename from ni_measurement_plugin_sdk_service/discovery/_types.py rename to packages/service/ni_measurement_plugin_sdk_service/discovery/_types.py diff --git a/ni_measurement_plugin_sdk_service/grpc/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/grpc/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/grpc/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/grpc/__init__.py diff --git a/ni_measurement_plugin_sdk_service/grpc/channelpool.py b/packages/service/ni_measurement_plugin_sdk_service/grpc/channelpool.py similarity index 100% rename from ni_measurement_plugin_sdk_service/grpc/channelpool.py rename to packages/service/ni_measurement_plugin_sdk_service/grpc/channelpool.py diff --git a/ni_measurement_plugin_sdk_service/grpc/loggers.py b/packages/service/ni_measurement_plugin_sdk_service/grpc/loggers.py similarity index 100% rename from ni_measurement_plugin_sdk_service/grpc/loggers.py rename to packages/service/ni_measurement_plugin_sdk_service/grpc/loggers.py diff --git a/ni_measurement_plugin_sdk_service/measurement/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/measurement/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/measurement/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/measurement/__init__.py diff --git a/ni_measurement_plugin_sdk_service/measurement/info.py b/packages/service/ni_measurement_plugin_sdk_service/measurement/info.py similarity index 100% rename from ni_measurement_plugin_sdk_service/measurement/info.py rename to packages/service/ni_measurement_plugin_sdk_service/measurement/info.py diff --git a/ni_measurement_plugin_sdk_service/measurement/service.py b/packages/service/ni_measurement_plugin_sdk_service/measurement/service.py similarity index 100% rename from ni_measurement_plugin_sdk_service/measurement/service.py rename to packages/service/ni_measurement_plugin_sdk_service/measurement/service.py diff --git a/ni_measurement_plugin_sdk_service/py.typed b/packages/service/ni_measurement_plugin_sdk_service/py.typed similarity index 100% rename from ni_measurement_plugin_sdk_service/py.typed rename to packages/service/ni_measurement_plugin_sdk_service/py.typed diff --git a/ni_measurement_plugin_sdk_service/session_management/__init__.py b/packages/service/ni_measurement_plugin_sdk_service/session_management/__init__.py similarity index 100% rename from ni_measurement_plugin_sdk_service/session_management/__init__.py rename to packages/service/ni_measurement_plugin_sdk_service/session_management/__init__.py diff --git a/ni_measurement_plugin_sdk_service/session_management/_client.py b/packages/service/ni_measurement_plugin_sdk_service/session_management/_client.py similarity index 100% rename from ni_measurement_plugin_sdk_service/session_management/_client.py rename to packages/service/ni_measurement_plugin_sdk_service/session_management/_client.py diff --git a/ni_measurement_plugin_sdk_service/session_management/_constants.py b/packages/service/ni_measurement_plugin_sdk_service/session_management/_constants.py similarity index 100% rename from ni_measurement_plugin_sdk_service/session_management/_constants.py rename to packages/service/ni_measurement_plugin_sdk_service/session_management/_constants.py diff --git a/ni_measurement_plugin_sdk_service/session_management/_reservation.py b/packages/service/ni_measurement_plugin_sdk_service/session_management/_reservation.py similarity index 100% rename from ni_measurement_plugin_sdk_service/session_management/_reservation.py rename to packages/service/ni_measurement_plugin_sdk_service/session_management/_reservation.py diff --git a/ni_measurement_plugin_sdk_service/session_management/_types.py b/packages/service/ni_measurement_plugin_sdk_service/session_management/_types.py similarity index 100% rename from ni_measurement_plugin_sdk_service/session_management/_types.py rename to packages/service/ni_measurement_plugin_sdk_service/session_management/_types.py diff --git a/poetry.lock b/packages/service/poetry.lock similarity index 100% rename from poetry.lock rename to packages/service/poetry.lock diff --git a/poetry.toml b/packages/service/poetry.toml similarity index 100% rename from poetry.toml rename to packages/service/poetry.toml diff --git a/pyproject.toml b/packages/service/pyproject.toml similarity index 100% rename from pyproject.toml rename to packages/service/pyproject.toml diff --git a/scripts/generate_grpc_stubs.py b/packages/service/scripts/generate_grpc_stubs.py old mode 100755 new mode 100644 similarity index 98% rename from scripts/generate_grpc_stubs.py rename to packages/service/scripts/generate_grpc_stubs.py index 0c8c51a19..b51d36db6 --- a/scripts/generate_grpc_stubs.py +++ b/packages/service/scripts/generate_grpc_stubs.py @@ -11,7 +11,7 @@ STUBS_NAMESPACE = "ni_measurement_plugin_sdk_service._internal.stubs" PROTO_PARENT_NAMESPACES = ["ni.measurementlink", "nidevice_grpc", "ni.protobuf.types"] STUBS_PATH = pathlib.Path(__file__).parent.parent / STUBS_NAMESPACE.replace(".", "/") -PROTO_PATH = pathlib.Path(__file__).parent.parent / "third_party" / "ni-apis" +PROTO_PATH = pathlib.Path(__file__).parent.parent.parent.parent / "third_party" / "ni-apis" STUBS_PROTO_PATH = STUBS_PATH / "proto" STUBS_PROTO_FILES = list(STUBS_PROTO_PATH.rglob("*.proto")) # We still want to use session.proto from STUBS_PATH / "proto" until diff --git a/scripts/install_examples.py b/packages/service/scripts/install_examples.py similarity index 97% rename from scripts/install_examples.py rename to packages/service/scripts/install_examples.py index 399cf0153..80bd43b6c 100644 --- a/scripts/install_examples.py +++ b/packages/service/scripts/install_examples.py @@ -7,7 +7,7 @@ import shutil import subprocess -ROOT_DIR = pathlib.Path(__file__).parent.parent +ROOT_DIR = pathlib.Path(__file__).parent.parent.parent.parent EXAMPLES_PATH = ROOT_DIR / "examples" SERVICES_PATH = ( pathlib.Path(os.environ["ProgramData"]) / "National Instruments" / "Plug-Ins" / "Measurements" diff --git a/tests/__init__.py b/packages/service/tests/__init__.py similarity index 100% rename from tests/__init__.py rename to packages/service/tests/__init__.py diff --git a/tests/acceptance/__init__.py b/packages/service/tests/acceptance/__init__.py similarity index 100% rename from tests/acceptance/__init__.py rename to packages/service/tests/acceptance/__init__.py diff --git a/tests/acceptance/conftest.py b/packages/service/tests/acceptance/conftest.py similarity index 100% rename from tests/acceptance/conftest.py rename to packages/service/tests/acceptance/conftest.py diff --git a/tests/acceptance/test_logging.py b/packages/service/tests/acceptance/test_logging.py similarity index 100% rename from tests/acceptance/test_logging.py rename to packages/service/tests/acceptance/test_logging.py diff --git a/tests/acceptance/test_measurement_service.py b/packages/service/tests/acceptance/test_measurement_service.py similarity index 100% rename from tests/acceptance/test_measurement_service.py rename to packages/service/tests/acceptance/test_measurement_service.py diff --git a/tests/acceptance/test_nidaqmx_measurement.py b/packages/service/tests/acceptance/test_nidaqmx_measurement.py similarity index 100% rename from tests/acceptance/test_nidaqmx_measurement.py rename to packages/service/tests/acceptance/test_nidaqmx_measurement.py diff --git a/tests/acceptance/test_nidcpower_measurement.py b/packages/service/tests/acceptance/test_nidcpower_measurement.py similarity index 100% rename from tests/acceptance/test_nidcpower_measurement.py rename to packages/service/tests/acceptance/test_nidcpower_measurement.py diff --git a/tests/acceptance/test_nidigital_measurement.py b/packages/service/tests/acceptance/test_nidigital_measurement.py similarity index 100% rename from tests/acceptance/test_nidigital_measurement.py rename to packages/service/tests/acceptance/test_nidigital_measurement.py diff --git a/tests/acceptance/test_nidmm_measurement.py b/packages/service/tests/acceptance/test_nidmm_measurement.py similarity index 100% rename from tests/acceptance/test_nidmm_measurement.py rename to packages/service/tests/acceptance/test_nidmm_measurement.py diff --git a/tests/acceptance/test_nifgen_measurement.py b/packages/service/tests/acceptance/test_nifgen_measurement.py similarity index 100% rename from tests/acceptance/test_nifgen_measurement.py rename to packages/service/tests/acceptance/test_nifgen_measurement.py diff --git a/tests/acceptance/test_niscope_measurement.py b/packages/service/tests/acceptance/test_niscope_measurement.py similarity index 100% rename from tests/acceptance/test_niscope_measurement.py rename to packages/service/tests/acceptance/test_niscope_measurement.py diff --git a/tests/acceptance/test_niswitch_measurement.py b/packages/service/tests/acceptance/test_niswitch_measurement.py similarity index 100% rename from tests/acceptance/test_niswitch_measurement.py rename to packages/service/tests/acceptance/test_niswitch_measurement.py diff --git a/tests/acceptance/test_niswitch_multiplexer_measurement.py b/packages/service/tests/acceptance/test_niswitch_multiplexer_measurement.py similarity index 100% rename from tests/acceptance/test_niswitch_multiplexer_measurement.py rename to packages/service/tests/acceptance/test_niswitch_multiplexer_measurement.py diff --git a/tests/acceptance/test_security.py b/packages/service/tests/acceptance/test_security.py similarity index 100% rename from tests/acceptance/test_security.py rename to packages/service/tests/acceptance/test_security.py diff --git a/tests/acceptance/test_session_management.py b/packages/service/tests/acceptance/test_session_management.py similarity index 100% rename from tests/acceptance/test_session_management.py rename to packages/service/tests/acceptance/test_session_management.py diff --git a/tests/acceptance/test_streaming_data_measurement.py b/packages/service/tests/acceptance/test_streaming_data_measurement.py similarity index 100% rename from tests/acceptance/test_streaming_data_measurement.py rename to packages/service/tests/acceptance/test_streaming_data_measurement.py diff --git a/tests/acceptance/test_yield_vs_return.py b/packages/service/tests/acceptance/test_yield_vs_return.py similarity index 100% rename from tests/acceptance/test_yield_vs_return.py rename to packages/service/tests/acceptance/test_yield_vs_return.py diff --git a/tests/assets/__init__.py b/packages/service/tests/assets/__init__.py similarity index 100% rename from tests/assets/__init__.py rename to packages/service/tests/assets/__init__.py diff --git a/tests/assets/acceptance/session_management/1Fgen1Pin1Site.pinmap b/packages/service/tests/assets/acceptance/session_management/1Fgen1Pin1Site.pinmap similarity index 100% rename from tests/assets/acceptance/session_management/1Fgen1Pin1Site.pinmap rename to packages/service/tests/assets/acceptance/session_management/1Fgen1Pin1Site.pinmap diff --git a/tests/assets/acceptance/session_management/1Smu1ChannelGroup1Pin1Site.pinmap b/packages/service/tests/assets/acceptance/session_management/1Smu1ChannelGroup1Pin1Site.pinmap similarity index 100% rename from tests/assets/acceptance/session_management/1Smu1ChannelGroup1Pin1Site.pinmap rename to packages/service/tests/assets/acceptance/session_management/1Smu1ChannelGroup1Pin1Site.pinmap diff --git a/tests/assets/acceptance/session_management/1Smu1ChannelGroup2Pin2Site.pinmap b/packages/service/tests/assets/acceptance/session_management/1Smu1ChannelGroup2Pin2Site.pinmap similarity index 100% rename from tests/assets/acceptance/session_management/1Smu1ChannelGroup2Pin2Site.pinmap rename to packages/service/tests/assets/acceptance/session_management/1Smu1ChannelGroup2Pin2Site.pinmap diff --git a/tests/assets/acceptance/session_management/1Smu2ChannelGroup2Pin1Site.pinmap b/packages/service/tests/assets/acceptance/session_management/1Smu2ChannelGroup2Pin1Site.pinmap similarity index 100% rename from tests/assets/acceptance/session_management/1Smu2ChannelGroup2Pin1Site.pinmap rename to packages/service/tests/assets/acceptance/session_management/1Smu2ChannelGroup2Pin1Site.pinmap diff --git a/tests/assets/acceptance/session_management/1Smu2ChannelGroup2Pin2Site.pinmap b/packages/service/tests/assets/acceptance/session_management/1Smu2ChannelGroup2Pin2Site.pinmap similarity index 100% rename from tests/assets/acceptance/session_management/1Smu2ChannelGroup2Pin2Site.pinmap rename to packages/service/tests/assets/acceptance/session_management/1Smu2ChannelGroup2Pin2Site.pinmap diff --git a/tests/assets/acceptance/session_management/2Digital2Group4Pin1Site.pinmap b/packages/service/tests/assets/acceptance/session_management/2Digital2Group4Pin1Site.pinmap similarity index 100% rename from tests/assets/acceptance/session_management/2Digital2Group4Pin1Site.pinmap rename to packages/service/tests/assets/acceptance/session_management/2Digital2Group4Pin1Site.pinmap diff --git a/tests/assets/acceptance/session_management/2Dmm2Pin1Site.pinmap b/packages/service/tests/assets/acceptance/session_management/2Dmm2Pin1Site.pinmap similarity index 100% rename from tests/assets/acceptance/session_management/2Dmm2Pin1Site.pinmap rename to packages/service/tests/assets/acceptance/session_management/2Dmm2Pin1Site.pinmap diff --git a/tests/assets/acceptance/session_management/2Fgen2Pin1Site.pinmap b/packages/service/tests/assets/acceptance/session_management/2Fgen2Pin1Site.pinmap similarity index 100% rename from tests/assets/acceptance/session_management/2Fgen2Pin1Site.pinmap rename to packages/service/tests/assets/acceptance/session_management/2Fgen2Pin1Site.pinmap diff --git a/tests/assets/acceptance/session_management/2Fgen2Pin2Site.pinmap b/packages/service/tests/assets/acceptance/session_management/2Fgen2Pin2Site.pinmap similarity index 100% rename from tests/assets/acceptance/session_management/2Fgen2Pin2Site.pinmap rename to packages/service/tests/assets/acceptance/session_management/2Fgen2Pin2Site.pinmap diff --git a/tests/assets/acceptance/session_management/2Mio2Pin1Site.pinmap b/packages/service/tests/assets/acceptance/session_management/2Mio2Pin1Site.pinmap similarity index 100% rename from tests/assets/acceptance/session_management/2Mio2Pin1Site.pinmap rename to packages/service/tests/assets/acceptance/session_management/2Mio2Pin1Site.pinmap diff --git a/tests/assets/acceptance/session_management/2Scope2Pin2Group1Site.pinmap b/packages/service/tests/assets/acceptance/session_management/2Scope2Pin2Group1Site.pinmap similarity index 100% rename from tests/assets/acceptance/session_management/2Scope2Pin2Group1Site.pinmap rename to packages/service/tests/assets/acceptance/session_management/2Scope2Pin2Group1Site.pinmap diff --git a/tests/assets/acceptance/session_management/2Smu2ChannelGroup2Pin2Site.pinmap b/packages/service/tests/assets/acceptance/session_management/2Smu2ChannelGroup2Pin2Site.pinmap similarity index 100% rename from tests/assets/acceptance/session_management/2Smu2ChannelGroup2Pin2Site.pinmap rename to packages/service/tests/assets/acceptance/session_management/2Smu2ChannelGroup2Pin2Site.pinmap diff --git a/tests/assets/acceptance/session_management/2Switch2Relay1Site.pinmap b/packages/service/tests/assets/acceptance/session_management/2Switch2Relay1Site.pinmap similarity index 100% rename from tests/assets/acceptance/session_management/2Switch2Relay1Site.pinmap rename to packages/service/tests/assets/acceptance/session_management/2Switch2Relay1Site.pinmap diff --git a/tests/assets/acceptance/session_management/2SwitchMultiplexer1Smu2Pin1Site.pinmap b/packages/service/tests/assets/acceptance/session_management/2SwitchMultiplexer1Smu2Pin1Site.pinmap similarity index 100% rename from tests/assets/acceptance/session_management/2SwitchMultiplexer1Smu2Pin1Site.pinmap rename to packages/service/tests/assets/acceptance/session_management/2SwitchMultiplexer1Smu2Pin1Site.pinmap diff --git a/tests/assets/example.AllAnnotations.serviceconfig b/packages/service/tests/assets/example.AllAnnotations.serviceconfig similarity index 100% rename from tests/assets/example.AllAnnotations.serviceconfig rename to packages/service/tests/assets/example.AllAnnotations.serviceconfig diff --git a/tests/assets/example.CustomAnnotations.serviceconfig b/packages/service/tests/assets/example.CustomAnnotations.serviceconfig similarity index 100% rename from tests/assets/example.CustomAnnotations.serviceconfig rename to packages/service/tests/assets/example.CustomAnnotations.serviceconfig diff --git a/tests/assets/example.OnlyCollection.serviceconfig b/packages/service/tests/assets/example.OnlyCollection.serviceconfig similarity index 100% rename from tests/assets/example.OnlyCollection.serviceconfig rename to packages/service/tests/assets/example.OnlyCollection.serviceconfig diff --git a/tests/assets/example.OnlyTags.serviceconfig b/packages/service/tests/assets/example.OnlyTags.serviceconfig similarity index 100% rename from tests/assets/example.OnlyTags.serviceconfig rename to packages/service/tests/assets/example.OnlyTags.serviceconfig diff --git a/tests/assets/example.serviceconfig b/packages/service/tests/assets/example.serviceconfig similarity index 100% rename from tests/assets/example.serviceconfig rename to packages/service/tests/assets/example.serviceconfig diff --git a/tests/assets/example.v1.serviceconfig b/packages/service/tests/assets/example.v1.serviceconfig similarity index 100% rename from tests/assets/example.v1.serviceconfig rename to packages/service/tests/assets/example.v1.serviceconfig diff --git a/tests/assets/example.v2.serviceconfig b/packages/service/tests/assets/example.v2.serviceconfig similarity index 100% rename from tests/assets/example.v2.serviceconfig rename to packages/service/tests/assets/example.v2.serviceconfig diff --git a/tests/assets/integration/session_management/1Smu2ChannelGroup2Pin1Site.pinmap b/packages/service/tests/assets/integration/session_management/1Smu2ChannelGroup2Pin1Site.pinmap similarity index 100% rename from tests/assets/integration/session_management/1Smu2ChannelGroup2Pin1Site.pinmap rename to packages/service/tests/assets/integration/session_management/1Smu2ChannelGroup2Pin1Site.pinmap diff --git a/tests/assets/integration/session_management/1Smu2Multiplexer2Pin1Site.pinmap b/packages/service/tests/assets/integration/session_management/1Smu2Multiplexer2Pin1Site.pinmap similarity index 100% rename from tests/assets/integration/session_management/1Smu2Multiplexer2Pin1Site.pinmap rename to packages/service/tests/assets/integration/session_management/1Smu2Multiplexer2Pin1Site.pinmap diff --git a/tests/assets/integration/session_management/2Digital2Group4Pin1Site.pinmap b/packages/service/tests/assets/integration/session_management/2Digital2Group4Pin1Site.pinmap similarity index 100% rename from tests/assets/integration/session_management/2Digital2Group4Pin1Site.pinmap rename to packages/service/tests/assets/integration/session_management/2Digital2Group4Pin1Site.pinmap diff --git a/tests/assets/integration/session_management/2Dmm2Pin1Site.pinmap b/packages/service/tests/assets/integration/session_management/2Dmm2Pin1Site.pinmap similarity index 100% rename from tests/assets/integration/session_management/2Dmm2Pin1Site.pinmap rename to packages/service/tests/assets/integration/session_management/2Dmm2Pin1Site.pinmap diff --git a/tests/assets/integration/session_management/2Fgen2Pin1Site.pinmap b/packages/service/tests/assets/integration/session_management/2Fgen2Pin1Site.pinmap similarity index 100% rename from tests/assets/integration/session_management/2Fgen2Pin1Site.pinmap rename to packages/service/tests/assets/integration/session_management/2Fgen2Pin1Site.pinmap diff --git a/tests/assets/integration/session_management/2Mio2Pin1Site.pinmap b/packages/service/tests/assets/integration/session_management/2Mio2Pin1Site.pinmap similarity index 100% rename from tests/assets/integration/session_management/2Mio2Pin1Site.pinmap rename to packages/service/tests/assets/integration/session_management/2Mio2Pin1Site.pinmap diff --git a/tests/assets/integration/session_management/2Scope2Pin2Group1Site.pinmap b/packages/service/tests/assets/integration/session_management/2Scope2Pin2Group1Site.pinmap similarity index 100% rename from tests/assets/integration/session_management/2Scope2Pin2Group1Site.pinmap rename to packages/service/tests/assets/integration/session_management/2Scope2Pin2Group1Site.pinmap diff --git a/tests/assets/integration/session_management/2Switch2Relay1Site.pinmap b/packages/service/tests/assets/integration/session_management/2Switch2Relay1Site.pinmap similarity index 100% rename from tests/assets/integration/session_management/2Switch2Relay1Site.pinmap rename to packages/service/tests/assets/integration/session_management/2Switch2Relay1Site.pinmap diff --git a/tests/assets/integration/session_management/PinMapA_3Instruments_3DutPins_2SystemPins_2Sites.pinmap b/packages/service/tests/assets/integration/session_management/PinMapA_3Instruments_3DutPins_2SystemPins_2Sites.pinmap similarity index 100% rename from tests/assets/integration/session_management/PinMapA_3Instruments_3DutPins_2SystemPins_2Sites.pinmap rename to packages/service/tests/assets/integration/session_management/PinMapA_3Instruments_3DutPins_2SystemPins_2Sites.pinmap diff --git a/tests/assets/integration/session_management/PinMapB_3Instruments_3DutPins_2SystemPins_2Sites_SharedPins.pinmap b/packages/service/tests/assets/integration/session_management/PinMapB_3Instruments_3DutPins_2SystemPins_2Sites_SharedPins.pinmap similarity index 100% rename from tests/assets/integration/session_management/PinMapB_3Instruments_3DutPins_2SystemPins_2Sites_SharedPins.pinmap rename to packages/service/tests/assets/integration/session_management/PinMapB_3Instruments_3DutPins_2SystemPins_2Sites_SharedPins.pinmap diff --git a/tests/assets/integration/session_management/PinMapC_MultipleInstrumentsPinsRelaysAndSites.pinmap b/packages/service/tests/assets/integration/session_management/PinMapC_MultipleInstrumentsPinsRelaysAndSites.pinmap similarity index 100% rename from tests/assets/integration/session_management/PinMapC_MultipleInstrumentsPinsRelaysAndSites.pinmap rename to packages/service/tests/assets/integration/session_management/PinMapC_MultipleInstrumentsPinsRelaysAndSites.pinmap diff --git a/tests/assets/integration/session_management/PinMapD_3Instruments_4DutPins_2Sites_2Multiplexers.pinmap b/packages/service/tests/assets/integration/session_management/PinMapD_3Instruments_4DutPins_2Sites_2Multiplexers.pinmap similarity index 100% rename from tests/assets/integration/session_management/PinMapD_3Instruments_4DutPins_2Sites_2Multiplexers.pinmap rename to packages/service/tests/assets/integration/session_management/PinMapD_3Instruments_4DutPins_2Sites_2Multiplexers.pinmap diff --git a/tests/conftest.py b/packages/service/tests/conftest.py similarity index 100% rename from tests/conftest.py rename to packages/service/tests/conftest.py diff --git a/tests/integration/__init__.py b/packages/service/tests/integration/__init__.py similarity index 100% rename from tests/integration/__init__.py rename to packages/service/tests/integration/__init__.py diff --git a/tests/integration/session_management/__init__.py b/packages/service/tests/integration/session_management/__init__.py similarity index 100% rename from tests/integration/session_management/__init__.py rename to packages/service/tests/integration/session_management/__init__.py diff --git a/tests/integration/session_management/conftest.py b/packages/service/tests/integration/session_management/conftest.py similarity index 100% rename from tests/integration/session_management/conftest.py rename to packages/service/tests/integration/session_management/conftest.py diff --git a/tests/integration/session_management/test_nidaqmx_reservation.py b/packages/service/tests/integration/session_management/test_nidaqmx_reservation.py similarity index 100% rename from tests/integration/session_management/test_nidaqmx_reservation.py rename to packages/service/tests/integration/session_management/test_nidaqmx_reservation.py diff --git a/tests/integration/session_management/test_nidcpower_reservation.py b/packages/service/tests/integration/session_management/test_nidcpower_reservation.py similarity index 100% rename from tests/integration/session_management/test_nidcpower_reservation.py rename to packages/service/tests/integration/session_management/test_nidcpower_reservation.py diff --git a/tests/integration/session_management/test_nidigital_reservation.py b/packages/service/tests/integration/session_management/test_nidigital_reservation.py similarity index 100% rename from tests/integration/session_management/test_nidigital_reservation.py rename to packages/service/tests/integration/session_management/test_nidigital_reservation.py diff --git a/tests/integration/session_management/test_nidmm_reservation.py b/packages/service/tests/integration/session_management/test_nidmm_reservation.py similarity index 100% rename from tests/integration/session_management/test_nidmm_reservation.py rename to packages/service/tests/integration/session_management/test_nidmm_reservation.py diff --git a/tests/integration/session_management/test_nifgen_reservation.py b/packages/service/tests/integration/session_management/test_nifgen_reservation.py similarity index 100% rename from tests/integration/session_management/test_nifgen_reservation.py rename to packages/service/tests/integration/session_management/test_nifgen_reservation.py diff --git a/tests/integration/session_management/test_niscope_reservation.py b/packages/service/tests/integration/session_management/test_niscope_reservation.py similarity index 100% rename from tests/integration/session_management/test_niscope_reservation.py rename to packages/service/tests/integration/session_management/test_niscope_reservation.py diff --git a/tests/integration/session_management/test_niswitch_multiplexer_reservation.py b/packages/service/tests/integration/session_management/test_niswitch_multiplexer_reservation.py similarity index 100% rename from tests/integration/session_management/test_niswitch_multiplexer_reservation.py rename to packages/service/tests/integration/session_management/test_niswitch_multiplexer_reservation.py diff --git a/tests/integration/session_management/test_niswitch_reservation.py b/packages/service/tests/integration/session_management/test_niswitch_reservation.py similarity index 100% rename from tests/integration/session_management/test_niswitch_reservation.py rename to packages/service/tests/integration/session_management/test_niswitch_reservation.py diff --git a/tests/integration/session_management/test_reservation.py b/packages/service/tests/integration/session_management/test_reservation.py similarity index 100% rename from tests/integration/session_management/test_reservation.py rename to packages/service/tests/integration/session_management/test_reservation.py diff --git a/tests/integration/test_service_manager.py b/packages/service/tests/integration/test_service_manager.py similarity index 100% rename from tests/integration/test_service_manager.py rename to packages/service/tests/integration/test_service_manager.py diff --git a/tests/unit/__init__.py b/packages/service/tests/unit/__init__.py similarity index 100% rename from tests/unit/__init__.py rename to packages/service/tests/unit/__init__.py diff --git a/tests/unit/_drivers/__init__.py b/packages/service/tests/unit/_drivers/__init__.py similarity index 100% rename from tests/unit/_drivers/__init__.py rename to packages/service/tests/unit/_drivers/__init__.py diff --git a/tests/unit/_drivers/_driver_utils.py b/packages/service/tests/unit/_drivers/_driver_utils.py similarity index 100% rename from tests/unit/_drivers/_driver_utils.py rename to packages/service/tests/unit/_drivers/_driver_utils.py diff --git a/tests/unit/_drivers/test_grpcdevice.py b/packages/service/tests/unit/_drivers/test_grpcdevice.py similarity index 100% rename from tests/unit/_drivers/test_grpcdevice.py rename to packages/service/tests/unit/_drivers/test_grpcdevice.py diff --git a/tests/unit/_drivers/test_nidaqmx.py b/packages/service/tests/unit/_drivers/test_nidaqmx.py similarity index 100% rename from tests/unit/_drivers/test_nidaqmx.py rename to packages/service/tests/unit/_drivers/test_nidaqmx.py diff --git a/tests/unit/_drivers/test_nidcpower.py b/packages/service/tests/unit/_drivers/test_nidcpower.py similarity index 100% rename from tests/unit/_drivers/test_nidcpower.py rename to packages/service/tests/unit/_drivers/test_nidcpower.py diff --git a/tests/unit/_drivers/test_nidigital.py b/packages/service/tests/unit/_drivers/test_nidigital.py similarity index 100% rename from tests/unit/_drivers/test_nidigital.py rename to packages/service/tests/unit/_drivers/test_nidigital.py diff --git a/tests/unit/_drivers/test_nidmm.py b/packages/service/tests/unit/_drivers/test_nidmm.py similarity index 100% rename from tests/unit/_drivers/test_nidmm.py rename to packages/service/tests/unit/_drivers/test_nidmm.py diff --git a/tests/unit/_drivers/test_nifgen.py b/packages/service/tests/unit/_drivers/test_nifgen.py similarity index 100% rename from tests/unit/_drivers/test_nifgen.py rename to packages/service/tests/unit/_drivers/test_nifgen.py diff --git a/tests/unit/_drivers/test_niscope.py b/packages/service/tests/unit/_drivers/test_niscope.py similarity index 100% rename from tests/unit/_drivers/test_niscope.py rename to packages/service/tests/unit/_drivers/test_niscope.py diff --git a/tests/unit/_drivers/test_niswitch.py b/packages/service/tests/unit/_drivers/test_niswitch.py similarity index 100% rename from tests/unit/_drivers/test_niswitch.py rename to packages/service/tests/unit/_drivers/test_niswitch.py diff --git a/tests/unit/_reservation_utils.py b/packages/service/tests/unit/_reservation_utils.py similarity index 100% rename from tests/unit/_reservation_utils.py rename to packages/service/tests/unit/_reservation_utils.py diff --git a/tests/unit/conftest.py b/packages/service/tests/unit/conftest.py similarity index 100% rename from tests/unit/conftest.py rename to packages/service/tests/unit/conftest.py diff --git a/tests/unit/measurement/__init__.py b/packages/service/tests/unit/measurement/__init__.py similarity index 100% rename from tests/unit/measurement/__init__.py rename to packages/service/tests/unit/measurement/__init__.py diff --git a/tests/unit/measurement/service/__init__.py b/packages/service/tests/unit/measurement/service/__init__.py similarity index 100% rename from tests/unit/measurement/service/__init__.py rename to packages/service/tests/unit/measurement/service/__init__.py diff --git a/tests/unit/measurement/service/test_measurement_context.py b/packages/service/tests/unit/measurement/service/test_measurement_context.py similarity index 100% rename from tests/unit/measurement/service/test_measurement_context.py rename to packages/service/tests/unit/measurement/service/test_measurement_context.py diff --git a/tests/unit/test_configuration.py b/packages/service/tests/unit/test_configuration.py similarity index 100% rename from tests/unit/test_configuration.py rename to packages/service/tests/unit/test_configuration.py diff --git a/tests/unit/test_discovery_client.py b/packages/service/tests/unit/test_discovery_client.py similarity index 100% rename from tests/unit/test_discovery_client.py rename to packages/service/tests/unit/test_discovery_client.py diff --git a/tests/unit/test_dotenvpath.py b/packages/service/tests/unit/test_dotenvpath.py similarity index 100% rename from tests/unit/test_dotenvpath.py rename to packages/service/tests/unit/test_dotenvpath.py diff --git a/tests/unit/test_drivers.py b/packages/service/tests/unit/test_drivers.py similarity index 100% rename from tests/unit/test_drivers.py rename to packages/service/tests/unit/test_drivers.py diff --git a/tests/unit/test_featuretoggles.py b/packages/service/tests/unit/test_featuretoggles.py similarity index 100% rename from tests/unit/test_featuretoggles.py rename to packages/service/tests/unit/test_featuretoggles.py diff --git a/tests/unit/test_metadata.py b/packages/service/tests/unit/test_metadata.py similarity index 100% rename from tests/unit/test_metadata.py rename to packages/service/tests/unit/test_metadata.py diff --git a/tests/unit/test_reservation.py b/packages/service/tests/unit/test_reservation.py similarity index 100% rename from tests/unit/test_reservation.py rename to packages/service/tests/unit/test_reservation.py diff --git a/tests/unit/test_reservation_multiplexer.py b/packages/service/tests/unit/test_reservation_multiplexer.py similarity index 100% rename from tests/unit/test_reservation_multiplexer.py rename to packages/service/tests/unit/test_reservation_multiplexer.py diff --git a/tests/unit/test_serialization_strategy.py b/packages/service/tests/unit/test_serialization_strategy.py similarity index 100% rename from tests/unit/test_serialization_strategy.py rename to packages/service/tests/unit/test_serialization_strategy.py diff --git a/tests/unit/test_serializer.py b/packages/service/tests/unit/test_serializer.py similarity index 100% rename from tests/unit/test_serializer.py rename to packages/service/tests/unit/test_serializer.py diff --git a/tests/unit/test_service.py b/packages/service/tests/unit/test_service.py similarity index 100% rename from tests/unit/test_service.py rename to packages/service/tests/unit/test_service.py diff --git a/tests/unit/test_session_management.py b/packages/service/tests/unit/test_session_management.py similarity index 100% rename from tests/unit/test_session_management.py rename to packages/service/tests/unit/test_session_management.py diff --git a/tests/utilities/__init__.py b/packages/service/tests/utilities/__init__.py similarity index 100% rename from tests/utilities/__init__.py rename to packages/service/tests/utilities/__init__.py diff --git a/tests/utilities/connection_subset.py b/packages/service/tests/utilities/connection_subset.py similarity index 100% rename from tests/utilities/connection_subset.py rename to packages/service/tests/utilities/connection_subset.py diff --git a/tests/utilities/discovery_service_process.py b/packages/service/tests/utilities/discovery_service_process.py similarity index 100% rename from tests/utilities/discovery_service_process.py rename to packages/service/tests/utilities/discovery_service_process.py diff --git a/tests/utilities/fake_discovery_service.py b/packages/service/tests/utilities/fake_discovery_service.py similarity index 100% rename from tests/utilities/fake_discovery_service.py rename to packages/service/tests/utilities/fake_discovery_service.py diff --git a/tests/utilities/fake_driver.py b/packages/service/tests/utilities/fake_driver.py similarity index 100% rename from tests/utilities/fake_driver.py rename to packages/service/tests/utilities/fake_driver.py diff --git a/tests/utilities/fake_multiplexer_driver.py b/packages/service/tests/utilities/fake_multiplexer_driver.py similarity index 100% rename from tests/utilities/fake_multiplexer_driver.py rename to packages/service/tests/utilities/fake_multiplexer_driver.py diff --git a/tests/utilities/fake_rpc_error.py b/packages/service/tests/utilities/fake_rpc_error.py similarity index 100% rename from tests/utilities/fake_rpc_error.py rename to packages/service/tests/utilities/fake_rpc_error.py diff --git a/tests/utilities/measurements/__init__.py b/packages/service/tests/utilities/measurements/__init__.py similarity index 100% rename from tests/utilities/measurements/__init__.py rename to packages/service/tests/utilities/measurements/__init__.py diff --git a/tests/utilities/measurements/loopback_measurement/LoopbackMeasurement.serviceconfig b/packages/service/tests/utilities/measurements/loopback_measurement/LoopbackMeasurement.serviceconfig similarity index 100% rename from tests/utilities/measurements/loopback_measurement/LoopbackMeasurement.serviceconfig rename to packages/service/tests/utilities/measurements/loopback_measurement/LoopbackMeasurement.serviceconfig diff --git a/tests/utilities/measurements/loopback_measurement/__init__.py b/packages/service/tests/utilities/measurements/loopback_measurement/__init__.py similarity index 97% rename from tests/utilities/measurements/loopback_measurement/__init__.py rename to packages/service/tests/utilities/measurements/loopback_measurement/__init__.py index 3bb5a8997..dfef3e35d 100644 --- a/tests/utilities/measurements/loopback_measurement/__init__.py +++ b/packages/service/tests/utilities/measurements/loopback_measurement/__init__.py @@ -4,9 +4,8 @@ from enum import Enum from typing import Iterable, Tuple -from examples.sample_measurement._stubs import color_pb2 - import ni_measurement_plugin_sdk_service as nims +from tests.utilities.measurements.sample_measurement._stubs import color_pb2 class Color(Enum): diff --git a/tests/utilities/measurements/nidaqmx_measurement/NIDAQmxMeasurement.serviceconfig b/packages/service/tests/utilities/measurements/nidaqmx_measurement/NIDAQmxMeasurement.serviceconfig similarity index 100% rename from tests/utilities/measurements/nidaqmx_measurement/NIDAQmxMeasurement.serviceconfig rename to packages/service/tests/utilities/measurements/nidaqmx_measurement/NIDAQmxMeasurement.serviceconfig diff --git a/tests/utilities/measurements/nidaqmx_measurement/__init__.py b/packages/service/tests/utilities/measurements/nidaqmx_measurement/__init__.py similarity index 100% rename from tests/utilities/measurements/nidaqmx_measurement/__init__.py rename to packages/service/tests/utilities/measurements/nidaqmx_measurement/__init__.py diff --git a/tests/utilities/measurements/nidcpower_measurement/NIDCPowerMeasurement.serviceconfig b/packages/service/tests/utilities/measurements/nidcpower_measurement/NIDCPowerMeasurement.serviceconfig similarity index 100% rename from tests/utilities/measurements/nidcpower_measurement/NIDCPowerMeasurement.serviceconfig rename to packages/service/tests/utilities/measurements/nidcpower_measurement/NIDCPowerMeasurement.serviceconfig diff --git a/tests/utilities/measurements/nidcpower_measurement/__init__.py b/packages/service/tests/utilities/measurements/nidcpower_measurement/__init__.py similarity index 100% rename from tests/utilities/measurements/nidcpower_measurement/__init__.py rename to packages/service/tests/utilities/measurements/nidcpower_measurement/__init__.py diff --git a/tests/utilities/measurements/nidigital_measurement/NIDigitalMeasurement.serviceconfig b/packages/service/tests/utilities/measurements/nidigital_measurement/NIDigitalMeasurement.serviceconfig similarity index 100% rename from tests/utilities/measurements/nidigital_measurement/NIDigitalMeasurement.serviceconfig rename to packages/service/tests/utilities/measurements/nidigital_measurement/NIDigitalMeasurement.serviceconfig diff --git a/tests/utilities/measurements/nidigital_measurement/Pattern.digipat b/packages/service/tests/utilities/measurements/nidigital_measurement/Pattern.digipat similarity index 100% rename from tests/utilities/measurements/nidigital_measurement/Pattern.digipat rename to packages/service/tests/utilities/measurements/nidigital_measurement/Pattern.digipat diff --git a/tests/utilities/measurements/nidigital_measurement/PinLevels.digilevels b/packages/service/tests/utilities/measurements/nidigital_measurement/PinLevels.digilevels similarity index 100% rename from tests/utilities/measurements/nidigital_measurement/PinLevels.digilevels rename to packages/service/tests/utilities/measurements/nidigital_measurement/PinLevels.digilevels diff --git a/tests/utilities/measurements/nidigital_measurement/Specifications.specs b/packages/service/tests/utilities/measurements/nidigital_measurement/Specifications.specs similarity index 100% rename from tests/utilities/measurements/nidigital_measurement/Specifications.specs rename to packages/service/tests/utilities/measurements/nidigital_measurement/Specifications.specs diff --git a/tests/utilities/measurements/nidigital_measurement/Timing.digitiming b/packages/service/tests/utilities/measurements/nidigital_measurement/Timing.digitiming similarity index 100% rename from tests/utilities/measurements/nidigital_measurement/Timing.digitiming rename to packages/service/tests/utilities/measurements/nidigital_measurement/Timing.digitiming diff --git a/tests/utilities/measurements/nidigital_measurement/__init__.py b/packages/service/tests/utilities/measurements/nidigital_measurement/__init__.py similarity index 100% rename from tests/utilities/measurements/nidigital_measurement/__init__.py rename to packages/service/tests/utilities/measurements/nidigital_measurement/__init__.py diff --git a/tests/utilities/measurements/nidmm_measurement/NIDmmMeasurement.serviceconfig b/packages/service/tests/utilities/measurements/nidmm_measurement/NIDmmMeasurement.serviceconfig similarity index 100% rename from tests/utilities/measurements/nidmm_measurement/NIDmmMeasurement.serviceconfig rename to packages/service/tests/utilities/measurements/nidmm_measurement/NIDmmMeasurement.serviceconfig diff --git a/tests/utilities/measurements/nidmm_measurement/__init__.py b/packages/service/tests/utilities/measurements/nidmm_measurement/__init__.py similarity index 100% rename from tests/utilities/measurements/nidmm_measurement/__init__.py rename to packages/service/tests/utilities/measurements/nidmm_measurement/__init__.py diff --git a/tests/utilities/measurements/nifgen_measurement/NIFgenMeasurement.serviceconfig b/packages/service/tests/utilities/measurements/nifgen_measurement/NIFgenMeasurement.serviceconfig similarity index 100% rename from tests/utilities/measurements/nifgen_measurement/NIFgenMeasurement.serviceconfig rename to packages/service/tests/utilities/measurements/nifgen_measurement/NIFgenMeasurement.serviceconfig diff --git a/tests/utilities/measurements/nifgen_measurement/__init__.py b/packages/service/tests/utilities/measurements/nifgen_measurement/__init__.py similarity index 100% rename from tests/utilities/measurements/nifgen_measurement/__init__.py rename to packages/service/tests/utilities/measurements/nifgen_measurement/__init__.py diff --git a/tests/utilities/measurements/niscope_measurement/NIScopeMeasurement.serviceconfig b/packages/service/tests/utilities/measurements/niscope_measurement/NIScopeMeasurement.serviceconfig similarity index 100% rename from tests/utilities/measurements/niscope_measurement/NIScopeMeasurement.serviceconfig rename to packages/service/tests/utilities/measurements/niscope_measurement/NIScopeMeasurement.serviceconfig diff --git a/tests/utilities/measurements/niscope_measurement/__init__.py b/packages/service/tests/utilities/measurements/niscope_measurement/__init__.py similarity index 100% rename from tests/utilities/measurements/niscope_measurement/__init__.py rename to packages/service/tests/utilities/measurements/niscope_measurement/__init__.py diff --git a/tests/utilities/measurements/niswitch_measurement/NISwitchMeasurement.serviceconfig b/packages/service/tests/utilities/measurements/niswitch_measurement/NISwitchMeasurement.serviceconfig similarity index 100% rename from tests/utilities/measurements/niswitch_measurement/NISwitchMeasurement.serviceconfig rename to packages/service/tests/utilities/measurements/niswitch_measurement/NISwitchMeasurement.serviceconfig diff --git a/tests/utilities/measurements/niswitch_measurement/__init__.py b/packages/service/tests/utilities/measurements/niswitch_measurement/__init__.py similarity index 100% rename from tests/utilities/measurements/niswitch_measurement/__init__.py rename to packages/service/tests/utilities/measurements/niswitch_measurement/__init__.py diff --git a/tests/utilities/measurements/niswitch_multiplexer_measurement/NISwitchMultiplexerMeasurement.serviceconfig b/packages/service/tests/utilities/measurements/niswitch_multiplexer_measurement/NISwitchMultiplexerMeasurement.serviceconfig similarity index 100% rename from tests/utilities/measurements/niswitch_multiplexer_measurement/NISwitchMultiplexerMeasurement.serviceconfig rename to packages/service/tests/utilities/measurements/niswitch_multiplexer_measurement/NISwitchMultiplexerMeasurement.serviceconfig diff --git a/tests/utilities/measurements/niswitch_multiplexer_measurement/__init__.py b/packages/service/tests/utilities/measurements/niswitch_multiplexer_measurement/__init__.py similarity index 100% rename from tests/utilities/measurements/niswitch_multiplexer_measurement/__init__.py rename to packages/service/tests/utilities/measurements/niswitch_multiplexer_measurement/__init__.py diff --git a/tests/utilities/measurements/pin_aware_measurement/PinAwareMeasurement.serviceconfig b/packages/service/tests/utilities/measurements/pin_aware_measurement/PinAwareMeasurement.serviceconfig similarity index 100% rename from tests/utilities/measurements/pin_aware_measurement/PinAwareMeasurement.serviceconfig rename to packages/service/tests/utilities/measurements/pin_aware_measurement/PinAwareMeasurement.serviceconfig diff --git a/tests/utilities/measurements/pin_aware_measurement/__init__.py b/packages/service/tests/utilities/measurements/pin_aware_measurement/__init__.py similarity index 100% rename from tests/utilities/measurements/pin_aware_measurement/__init__.py rename to packages/service/tests/utilities/measurements/pin_aware_measurement/__init__.py diff --git a/packages/service/tests/utilities/measurements/sample_measurement/_stubs/__init__.py b/packages/service/tests/utilities/measurements/sample_measurement/_stubs/__init__.py new file mode 100644 index 000000000..47acf683e --- /dev/null +++ b/packages/service/tests/utilities/measurements/sample_measurement/_stubs/__init__.py @@ -0,0 +1 @@ +"""Stubs for sample_measurement's color enum.""" diff --git a/packages/service/tests/utilities/measurements/sample_measurement/_stubs/color_pb2.py b/packages/service/tests/utilities/measurements/sample_measurement/_stubs/color_pb2.py new file mode 100644 index 000000000..dc11b2356 --- /dev/null +++ b/packages/service/tests/utilities/measurements/sample_measurement/_stubs/color_pb2.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: color.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0b\x63olor.proto\x12\x34ni.measurementlink.measurement.sample_measurement.v1*9\n\rProtobufColor\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04PINK\x10\x01\x12\t\n\x05WHITE\x10\x02\x12\t\n\x05\x42LACK\x10\x03\x42\x37\xaa\x02\x34NationalInstruments.MeasurementServices.Measurementsb\x06proto3') + +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'color_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\252\0024NationalInstruments.MeasurementServices.Measurements' + _PROTOBUFCOLOR._serialized_start=69 + _PROTOBUFCOLOR._serialized_end=126 +# @@protoc_insertion_point(module_scope) diff --git a/packages/service/tests/utilities/measurements/sample_measurement/_stubs/color_pb2.pyi b/packages/service/tests/utilities/measurements/sample_measurement/_stubs/color_pb2.pyi new file mode 100644 index 000000000..d3b807593 --- /dev/null +++ b/packages/service/tests/utilities/measurements/sample_measurement/_stubs/color_pb2.pyi @@ -0,0 +1,40 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +--------------------------------------------------------------------- +--------------------------------------------------------------------- +""" +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.enum_type_wrapper +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _ProtobufColor: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _ProtobufColorEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ProtobufColor.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + NONE: _ProtobufColor.ValueType # 0 + PINK: _ProtobufColor.ValueType # 1 + WHITE: _ProtobufColor.ValueType # 2 + BLACK: _ProtobufColor.ValueType # 3 + +class ProtobufColor(_ProtobufColor, metaclass=_ProtobufColorEnumTypeWrapper): + """--------------------------------------------------------------------- + --------------------------------------------------------------------- + """ + +NONE: ProtobufColor.ValueType # 0 +PINK: ProtobufColor.ValueType # 1 +WHITE: ProtobufColor.ValueType # 2 +BLACK: ProtobufColor.ValueType # 3 +global___ProtobufColor = ProtobufColor diff --git a/tests/utilities/stubs/loopback/types_pb2_grpc.py b/packages/service/tests/utilities/measurements/sample_measurement/_stubs/color_pb2_grpc.py similarity index 100% rename from tests/utilities/stubs/loopback/types_pb2_grpc.py rename to packages/service/tests/utilities/measurements/sample_measurement/_stubs/color_pb2_grpc.py diff --git a/packages/service/tests/utilities/measurements/sample_measurement/_stubs/color_pb2_grpc.pyi b/packages/service/tests/utilities/measurements/sample_measurement/_stubs/color_pb2_grpc.pyi new file mode 100644 index 000000000..f99de6c86 --- /dev/null +++ b/packages/service/tests/utilities/measurements/sample_measurement/_stubs/color_pb2_grpc.pyi @@ -0,0 +1,6 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +--------------------------------------------------------------------- +--------------------------------------------------------------------- +""" diff --git a/tests/utilities/measurements/streaming_data_measurement/StreamingDataMeasurement.serviceconfig b/packages/service/tests/utilities/measurements/streaming_data_measurement/StreamingDataMeasurement.serviceconfig similarity index 100% rename from tests/utilities/measurements/streaming_data_measurement/StreamingDataMeasurement.serviceconfig rename to packages/service/tests/utilities/measurements/streaming_data_measurement/StreamingDataMeasurement.serviceconfig diff --git a/tests/utilities/measurements/streaming_data_measurement/__init__.py b/packages/service/tests/utilities/measurements/streaming_data_measurement/__init__.py similarity index 100% rename from tests/utilities/measurements/streaming_data_measurement/__init__.py rename to packages/service/tests/utilities/measurements/streaming_data_measurement/__init__.py diff --git a/tests/utilities/measurements/unknown_interface_measurement/__init__.py b/packages/service/tests/utilities/measurements/unknown_interface_measurement/__init__.py similarity index 100% rename from tests/utilities/measurements/unknown_interface_measurement/__init__.py rename to packages/service/tests/utilities/measurements/unknown_interface_measurement/__init__.py diff --git a/tests/utilities/measurements/unknown_interface_measurement/unknown_interface.serviceconfig b/packages/service/tests/utilities/measurements/unknown_interface_measurement/unknown_interface.serviceconfig similarity index 100% rename from tests/utilities/measurements/unknown_interface_measurement/unknown_interface.serviceconfig rename to packages/service/tests/utilities/measurements/unknown_interface_measurement/unknown_interface.serviceconfig diff --git a/tests/utilities/measurements/v1_only_measurement/__init__.py b/packages/service/tests/utilities/measurements/v1_only_measurement/__init__.py similarity index 100% rename from tests/utilities/measurements/v1_only_measurement/__init__.py rename to packages/service/tests/utilities/measurements/v1_only_measurement/__init__.py diff --git a/tests/utilities/measurements/v1_only_measurement/v1_only.serviceconfig b/packages/service/tests/utilities/measurements/v1_only_measurement/v1_only.serviceconfig similarity index 100% rename from tests/utilities/measurements/v1_only_measurement/v1_only.serviceconfig rename to packages/service/tests/utilities/measurements/v1_only_measurement/v1_only.serviceconfig diff --git a/tests/utilities/measurements/v2_only_measurement/__init__.py b/packages/service/tests/utilities/measurements/v2_only_measurement/__init__.py similarity index 100% rename from tests/utilities/measurements/v2_only_measurement/__init__.py rename to packages/service/tests/utilities/measurements/v2_only_measurement/__init__.py diff --git a/tests/utilities/measurements/v2_only_measurement/v2_only.serviceconfig b/packages/service/tests/utilities/measurements/v2_only_measurement/v2_only.serviceconfig similarity index 100% rename from tests/utilities/measurements/v2_only_measurement/v2_only.serviceconfig rename to packages/service/tests/utilities/measurements/v2_only_measurement/v2_only.serviceconfig diff --git a/tests/utilities/measurements/yield_vs_return_measurement/UIProgressUpdates.serviceconfig b/packages/service/tests/utilities/measurements/yield_vs_return_measurement/UIProgressUpdates.serviceconfig similarity index 100% rename from tests/utilities/measurements/yield_vs_return_measurement/UIProgressUpdates.serviceconfig rename to packages/service/tests/utilities/measurements/yield_vs_return_measurement/UIProgressUpdates.serviceconfig diff --git a/tests/utilities/measurements/yield_vs_return_measurement/__init__.py b/packages/service/tests/utilities/measurements/yield_vs_return_measurement/__init__.py similarity index 100% rename from tests/utilities/measurements/yield_vs_return_measurement/__init__.py rename to packages/service/tests/utilities/measurements/yield_vs_return_measurement/__init__.py diff --git a/tests/utilities/pin_map_client.py b/packages/service/tests/utilities/pin_map_client.py similarity index 100% rename from tests/utilities/pin_map_client.py rename to packages/service/tests/utilities/pin_map_client.py diff --git a/tests/utilities/stubs/__init__.py b/packages/service/tests/utilities/stubs/__init__.py similarity index 100% rename from tests/utilities/stubs/__init__.py rename to packages/service/tests/utilities/stubs/__init__.py diff --git a/tests/utilities/stubs/loopback/__init__.py b/packages/service/tests/utilities/stubs/loopback/__init__.py similarity index 100% rename from tests/utilities/stubs/loopback/__init__.py rename to packages/service/tests/utilities/stubs/loopback/__init__.py diff --git a/tests/utilities/stubs/loopback/types.proto b/packages/service/tests/utilities/stubs/loopback/types.proto similarity index 100% rename from tests/utilities/stubs/loopback/types.proto rename to packages/service/tests/utilities/stubs/loopback/types.proto diff --git a/tests/utilities/stubs/loopback/types_pb2.py b/packages/service/tests/utilities/stubs/loopback/types_pb2.py similarity index 100% rename from tests/utilities/stubs/loopback/types_pb2.py rename to packages/service/tests/utilities/stubs/loopback/types_pb2.py diff --git a/tests/utilities/stubs/loopback/types_pb2.pyi b/packages/service/tests/utilities/stubs/loopback/types_pb2.pyi similarity index 100% rename from tests/utilities/stubs/loopback/types_pb2.pyi rename to packages/service/tests/utilities/stubs/loopback/types_pb2.pyi diff --git a/tests/utilities/stubs/nidaqmx/types_pb2_grpc.py b/packages/service/tests/utilities/stubs/loopback/types_pb2_grpc.py similarity index 100% rename from tests/utilities/stubs/nidaqmx/types_pb2_grpc.py rename to packages/service/tests/utilities/stubs/loopback/types_pb2_grpc.py diff --git a/tests/utilities/stubs/loopback/types_pb2_grpc.pyi b/packages/service/tests/utilities/stubs/loopback/types_pb2_grpc.pyi similarity index 100% rename from tests/utilities/stubs/loopback/types_pb2_grpc.pyi rename to packages/service/tests/utilities/stubs/loopback/types_pb2_grpc.pyi diff --git a/tests/utilities/stubs/nidaqmx/__init__.py b/packages/service/tests/utilities/stubs/nidaqmx/__init__.py similarity index 100% rename from tests/utilities/stubs/nidaqmx/__init__.py rename to packages/service/tests/utilities/stubs/nidaqmx/__init__.py diff --git a/tests/utilities/stubs/nidaqmx/types.proto b/packages/service/tests/utilities/stubs/nidaqmx/types.proto similarity index 100% rename from tests/utilities/stubs/nidaqmx/types.proto rename to packages/service/tests/utilities/stubs/nidaqmx/types.proto diff --git a/tests/utilities/stubs/nidaqmx/types_pb2.py b/packages/service/tests/utilities/stubs/nidaqmx/types_pb2.py similarity index 100% rename from tests/utilities/stubs/nidaqmx/types_pb2.py rename to packages/service/tests/utilities/stubs/nidaqmx/types_pb2.py diff --git a/tests/utilities/stubs/nidaqmx/types_pb2.pyi b/packages/service/tests/utilities/stubs/nidaqmx/types_pb2.pyi similarity index 100% rename from tests/utilities/stubs/nidaqmx/types_pb2.pyi rename to packages/service/tests/utilities/stubs/nidaqmx/types_pb2.pyi diff --git a/tests/utilities/stubs/nidcpower/types_pb2_grpc.py b/packages/service/tests/utilities/stubs/nidaqmx/types_pb2_grpc.py similarity index 100% rename from tests/utilities/stubs/nidcpower/types_pb2_grpc.py rename to packages/service/tests/utilities/stubs/nidaqmx/types_pb2_grpc.py diff --git a/tests/utilities/stubs/nidaqmx/types_pb2_grpc.pyi b/packages/service/tests/utilities/stubs/nidaqmx/types_pb2_grpc.pyi similarity index 100% rename from tests/utilities/stubs/nidaqmx/types_pb2_grpc.pyi rename to packages/service/tests/utilities/stubs/nidaqmx/types_pb2_grpc.pyi diff --git a/tests/utilities/stubs/nidcpower/__init__.py b/packages/service/tests/utilities/stubs/nidcpower/__init__.py similarity index 100% rename from tests/utilities/stubs/nidcpower/__init__.py rename to packages/service/tests/utilities/stubs/nidcpower/__init__.py diff --git a/tests/utilities/stubs/nidcpower/types.proto b/packages/service/tests/utilities/stubs/nidcpower/types.proto similarity index 100% rename from tests/utilities/stubs/nidcpower/types.proto rename to packages/service/tests/utilities/stubs/nidcpower/types.proto diff --git a/tests/utilities/stubs/nidcpower/types_pb2.py b/packages/service/tests/utilities/stubs/nidcpower/types_pb2.py similarity index 100% rename from tests/utilities/stubs/nidcpower/types_pb2.py rename to packages/service/tests/utilities/stubs/nidcpower/types_pb2.py diff --git a/tests/utilities/stubs/nidcpower/types_pb2.pyi b/packages/service/tests/utilities/stubs/nidcpower/types_pb2.pyi similarity index 100% rename from tests/utilities/stubs/nidcpower/types_pb2.pyi rename to packages/service/tests/utilities/stubs/nidcpower/types_pb2.pyi diff --git a/tests/utilities/stubs/nidigital/types_pb2_grpc.py b/packages/service/tests/utilities/stubs/nidcpower/types_pb2_grpc.py similarity index 100% rename from tests/utilities/stubs/nidigital/types_pb2_grpc.py rename to packages/service/tests/utilities/stubs/nidcpower/types_pb2_grpc.py diff --git a/tests/utilities/stubs/nidcpower/types_pb2_grpc.pyi b/packages/service/tests/utilities/stubs/nidcpower/types_pb2_grpc.pyi similarity index 100% rename from tests/utilities/stubs/nidcpower/types_pb2_grpc.pyi rename to packages/service/tests/utilities/stubs/nidcpower/types_pb2_grpc.pyi diff --git a/tests/utilities/stubs/nidigital/__init__.py b/packages/service/tests/utilities/stubs/nidigital/__init__.py similarity index 100% rename from tests/utilities/stubs/nidigital/__init__.py rename to packages/service/tests/utilities/stubs/nidigital/__init__.py diff --git a/tests/utilities/stubs/nidigital/types.proto b/packages/service/tests/utilities/stubs/nidigital/types.proto similarity index 100% rename from tests/utilities/stubs/nidigital/types.proto rename to packages/service/tests/utilities/stubs/nidigital/types.proto diff --git a/tests/utilities/stubs/nidigital/types_pb2.py b/packages/service/tests/utilities/stubs/nidigital/types_pb2.py similarity index 100% rename from tests/utilities/stubs/nidigital/types_pb2.py rename to packages/service/tests/utilities/stubs/nidigital/types_pb2.py diff --git a/tests/utilities/stubs/nidigital/types_pb2.pyi b/packages/service/tests/utilities/stubs/nidigital/types_pb2.pyi similarity index 100% rename from tests/utilities/stubs/nidigital/types_pb2.pyi rename to packages/service/tests/utilities/stubs/nidigital/types_pb2.pyi diff --git a/tests/utilities/stubs/nidmm/types_pb2_grpc.py b/packages/service/tests/utilities/stubs/nidigital/types_pb2_grpc.py similarity index 100% rename from tests/utilities/stubs/nidmm/types_pb2_grpc.py rename to packages/service/tests/utilities/stubs/nidigital/types_pb2_grpc.py diff --git a/tests/utilities/stubs/nidigital/types_pb2_grpc.pyi b/packages/service/tests/utilities/stubs/nidigital/types_pb2_grpc.pyi similarity index 100% rename from tests/utilities/stubs/nidigital/types_pb2_grpc.pyi rename to packages/service/tests/utilities/stubs/nidigital/types_pb2_grpc.pyi diff --git a/tests/utilities/stubs/nidmm/__init__.py b/packages/service/tests/utilities/stubs/nidmm/__init__.py similarity index 100% rename from tests/utilities/stubs/nidmm/__init__.py rename to packages/service/tests/utilities/stubs/nidmm/__init__.py diff --git a/tests/utilities/stubs/nidmm/types.proto b/packages/service/tests/utilities/stubs/nidmm/types.proto similarity index 100% rename from tests/utilities/stubs/nidmm/types.proto rename to packages/service/tests/utilities/stubs/nidmm/types.proto diff --git a/tests/utilities/stubs/nidmm/types_pb2.py b/packages/service/tests/utilities/stubs/nidmm/types_pb2.py similarity index 100% rename from tests/utilities/stubs/nidmm/types_pb2.py rename to packages/service/tests/utilities/stubs/nidmm/types_pb2.py diff --git a/tests/utilities/stubs/nidmm/types_pb2.pyi b/packages/service/tests/utilities/stubs/nidmm/types_pb2.pyi similarity index 100% rename from tests/utilities/stubs/nidmm/types_pb2.pyi rename to packages/service/tests/utilities/stubs/nidmm/types_pb2.pyi diff --git a/tests/utilities/stubs/nifgen/types_pb2_grpc.py b/packages/service/tests/utilities/stubs/nidmm/types_pb2_grpc.py similarity index 100% rename from tests/utilities/stubs/nifgen/types_pb2_grpc.py rename to packages/service/tests/utilities/stubs/nidmm/types_pb2_grpc.py diff --git a/tests/utilities/stubs/nidmm/types_pb2_grpc.pyi b/packages/service/tests/utilities/stubs/nidmm/types_pb2_grpc.pyi similarity index 100% rename from tests/utilities/stubs/nidmm/types_pb2_grpc.pyi rename to packages/service/tests/utilities/stubs/nidmm/types_pb2_grpc.pyi diff --git a/tests/utilities/stubs/nifgen/__init__.py b/packages/service/tests/utilities/stubs/nifgen/__init__.py similarity index 100% rename from tests/utilities/stubs/nifgen/__init__.py rename to packages/service/tests/utilities/stubs/nifgen/__init__.py diff --git a/tests/utilities/stubs/nifgen/types.proto b/packages/service/tests/utilities/stubs/nifgen/types.proto similarity index 100% rename from tests/utilities/stubs/nifgen/types.proto rename to packages/service/tests/utilities/stubs/nifgen/types.proto diff --git a/tests/utilities/stubs/nifgen/types_pb2.py b/packages/service/tests/utilities/stubs/nifgen/types_pb2.py similarity index 100% rename from tests/utilities/stubs/nifgen/types_pb2.py rename to packages/service/tests/utilities/stubs/nifgen/types_pb2.py diff --git a/tests/utilities/stubs/nifgen/types_pb2.pyi b/packages/service/tests/utilities/stubs/nifgen/types_pb2.pyi similarity index 100% rename from tests/utilities/stubs/nifgen/types_pb2.pyi rename to packages/service/tests/utilities/stubs/nifgen/types_pb2.pyi diff --git a/tests/utilities/stubs/niscope/types_pb2_grpc.py b/packages/service/tests/utilities/stubs/nifgen/types_pb2_grpc.py similarity index 100% rename from tests/utilities/stubs/niscope/types_pb2_grpc.py rename to packages/service/tests/utilities/stubs/nifgen/types_pb2_grpc.py diff --git a/tests/utilities/stubs/nifgen/types_pb2_grpc.pyi b/packages/service/tests/utilities/stubs/nifgen/types_pb2_grpc.pyi similarity index 100% rename from tests/utilities/stubs/nifgen/types_pb2_grpc.pyi rename to packages/service/tests/utilities/stubs/nifgen/types_pb2_grpc.pyi diff --git a/tests/utilities/stubs/niscope/__init__.py b/packages/service/tests/utilities/stubs/niscope/__init__.py similarity index 100% rename from tests/utilities/stubs/niscope/__init__.py rename to packages/service/tests/utilities/stubs/niscope/__init__.py diff --git a/tests/utilities/stubs/niscope/types.proto b/packages/service/tests/utilities/stubs/niscope/types.proto similarity index 100% rename from tests/utilities/stubs/niscope/types.proto rename to packages/service/tests/utilities/stubs/niscope/types.proto diff --git a/tests/utilities/stubs/niscope/types_pb2.py b/packages/service/tests/utilities/stubs/niscope/types_pb2.py similarity index 100% rename from tests/utilities/stubs/niscope/types_pb2.py rename to packages/service/tests/utilities/stubs/niscope/types_pb2.py diff --git a/tests/utilities/stubs/niscope/types_pb2.pyi b/packages/service/tests/utilities/stubs/niscope/types_pb2.pyi similarity index 100% rename from tests/utilities/stubs/niscope/types_pb2.pyi rename to packages/service/tests/utilities/stubs/niscope/types_pb2.pyi diff --git a/tests/utilities/stubs/niswitch/types_pb2_grpc.py b/packages/service/tests/utilities/stubs/niscope/types_pb2_grpc.py similarity index 100% rename from tests/utilities/stubs/niswitch/types_pb2_grpc.py rename to packages/service/tests/utilities/stubs/niscope/types_pb2_grpc.py diff --git a/tests/utilities/stubs/niscope/types_pb2_grpc.pyi b/packages/service/tests/utilities/stubs/niscope/types_pb2_grpc.pyi similarity index 100% rename from tests/utilities/stubs/niscope/types_pb2_grpc.pyi rename to packages/service/tests/utilities/stubs/niscope/types_pb2_grpc.pyi diff --git a/tests/utilities/stubs/niswitch/__init__.py b/packages/service/tests/utilities/stubs/niswitch/__init__.py similarity index 100% rename from tests/utilities/stubs/niswitch/__init__.py rename to packages/service/tests/utilities/stubs/niswitch/__init__.py diff --git a/tests/utilities/stubs/niswitch/types.proto b/packages/service/tests/utilities/stubs/niswitch/types.proto similarity index 100% rename from tests/utilities/stubs/niswitch/types.proto rename to packages/service/tests/utilities/stubs/niswitch/types.proto diff --git a/tests/utilities/stubs/niswitch/types_pb2.py b/packages/service/tests/utilities/stubs/niswitch/types_pb2.py similarity index 100% rename from tests/utilities/stubs/niswitch/types_pb2.py rename to packages/service/tests/utilities/stubs/niswitch/types_pb2.py diff --git a/tests/utilities/stubs/niswitch/types_pb2.pyi b/packages/service/tests/utilities/stubs/niswitch/types_pb2.pyi similarity index 100% rename from tests/utilities/stubs/niswitch/types_pb2.pyi rename to packages/service/tests/utilities/stubs/niswitch/types_pb2.pyi diff --git a/tests/utilities/stubs/niswitchmultiplexer/types_pb2_grpc.py b/packages/service/tests/utilities/stubs/niswitch/types_pb2_grpc.py similarity index 100% rename from tests/utilities/stubs/niswitchmultiplexer/types_pb2_grpc.py rename to packages/service/tests/utilities/stubs/niswitch/types_pb2_grpc.py diff --git a/tests/utilities/stubs/niswitch/types_pb2_grpc.pyi b/packages/service/tests/utilities/stubs/niswitch/types_pb2_grpc.pyi similarity index 100% rename from tests/utilities/stubs/niswitch/types_pb2_grpc.pyi rename to packages/service/tests/utilities/stubs/niswitch/types_pb2_grpc.pyi diff --git a/tests/utilities/stubs/niswitchmultiplexer/types.proto b/packages/service/tests/utilities/stubs/niswitchmultiplexer/types.proto similarity index 100% rename from tests/utilities/stubs/niswitchmultiplexer/types.proto rename to packages/service/tests/utilities/stubs/niswitchmultiplexer/types.proto diff --git a/tests/utilities/stubs/niswitchmultiplexer/types_pb2.py b/packages/service/tests/utilities/stubs/niswitchmultiplexer/types_pb2.py similarity index 100% rename from tests/utilities/stubs/niswitchmultiplexer/types_pb2.py rename to packages/service/tests/utilities/stubs/niswitchmultiplexer/types_pb2.py diff --git a/tests/utilities/stubs/niswitchmultiplexer/types_pb2.pyi b/packages/service/tests/utilities/stubs/niswitchmultiplexer/types_pb2.pyi similarity index 100% rename from tests/utilities/stubs/niswitchmultiplexer/types_pb2.pyi rename to packages/service/tests/utilities/stubs/niswitchmultiplexer/types_pb2.pyi diff --git a/tests/utilities/stubs/pinaware/types_pb2_grpc.py b/packages/service/tests/utilities/stubs/niswitchmultiplexer/types_pb2_grpc.py similarity index 100% rename from tests/utilities/stubs/pinaware/types_pb2_grpc.py rename to packages/service/tests/utilities/stubs/niswitchmultiplexer/types_pb2_grpc.py diff --git a/tests/utilities/stubs/niswitchmultiplexer/types_pb2_grpc.pyi b/packages/service/tests/utilities/stubs/niswitchmultiplexer/types_pb2_grpc.pyi similarity index 100% rename from tests/utilities/stubs/niswitchmultiplexer/types_pb2_grpc.pyi rename to packages/service/tests/utilities/stubs/niswitchmultiplexer/types_pb2_grpc.pyi diff --git a/tests/utilities/stubs/pinaware/__init__.py b/packages/service/tests/utilities/stubs/pinaware/__init__.py similarity index 100% rename from tests/utilities/stubs/pinaware/__init__.py rename to packages/service/tests/utilities/stubs/pinaware/__init__.py diff --git a/tests/utilities/stubs/pinaware/types.proto b/packages/service/tests/utilities/stubs/pinaware/types.proto similarity index 100% rename from tests/utilities/stubs/pinaware/types.proto rename to packages/service/tests/utilities/stubs/pinaware/types.proto diff --git a/tests/utilities/stubs/pinaware/types_pb2.py b/packages/service/tests/utilities/stubs/pinaware/types_pb2.py similarity index 100% rename from tests/utilities/stubs/pinaware/types_pb2.py rename to packages/service/tests/utilities/stubs/pinaware/types_pb2.py diff --git a/tests/utilities/stubs/pinaware/types_pb2.pyi b/packages/service/tests/utilities/stubs/pinaware/types_pb2.pyi similarity index 100% rename from tests/utilities/stubs/pinaware/types_pb2.pyi rename to packages/service/tests/utilities/stubs/pinaware/types_pb2.pyi diff --git a/tests/utilities/stubs/streamingdata/types_pb2_grpc.py b/packages/service/tests/utilities/stubs/pinaware/types_pb2_grpc.py similarity index 100% rename from tests/utilities/stubs/streamingdata/types_pb2_grpc.py rename to packages/service/tests/utilities/stubs/pinaware/types_pb2_grpc.py diff --git a/tests/utilities/stubs/pinaware/types_pb2_grpc.pyi b/packages/service/tests/utilities/stubs/pinaware/types_pb2_grpc.pyi similarity index 100% rename from tests/utilities/stubs/pinaware/types_pb2_grpc.pyi rename to packages/service/tests/utilities/stubs/pinaware/types_pb2_grpc.pyi diff --git a/tests/utilities/stubs/serialization/__init__.py b/packages/service/tests/utilities/stubs/serialization/__init__.py similarity index 100% rename from tests/utilities/stubs/serialization/__init__.py rename to packages/service/tests/utilities/stubs/serialization/__init__.py diff --git a/tests/utilities/stubs/serialization/bigmessage.proto b/packages/service/tests/utilities/stubs/serialization/bigmessage.proto similarity index 100% rename from tests/utilities/stubs/serialization/bigmessage.proto rename to packages/service/tests/utilities/stubs/serialization/bigmessage.proto diff --git a/tests/utilities/stubs/serialization/bigmessage_pb2.py b/packages/service/tests/utilities/stubs/serialization/bigmessage_pb2.py similarity index 100% rename from tests/utilities/stubs/serialization/bigmessage_pb2.py rename to packages/service/tests/utilities/stubs/serialization/bigmessage_pb2.py diff --git a/tests/utilities/stubs/serialization/bigmessage_pb2.pyi b/packages/service/tests/utilities/stubs/serialization/bigmessage_pb2.pyi similarity index 100% rename from tests/utilities/stubs/serialization/bigmessage_pb2.pyi rename to packages/service/tests/utilities/stubs/serialization/bigmessage_pb2.pyi diff --git a/tests/utilities/stubs/serialization/bigmessage_pb2_grpc.py b/packages/service/tests/utilities/stubs/serialization/bigmessage_pb2_grpc.py similarity index 100% rename from tests/utilities/stubs/serialization/bigmessage_pb2_grpc.py rename to packages/service/tests/utilities/stubs/serialization/bigmessage_pb2_grpc.py diff --git a/tests/utilities/stubs/serialization/bigmessage_pb2_grpc.pyi b/packages/service/tests/utilities/stubs/serialization/bigmessage_pb2_grpc.pyi similarity index 100% rename from tests/utilities/stubs/serialization/bigmessage_pb2_grpc.pyi rename to packages/service/tests/utilities/stubs/serialization/bigmessage_pb2_grpc.pyi diff --git a/tests/utilities/stubs/serialization/test.proto b/packages/service/tests/utilities/stubs/serialization/test.proto similarity index 100% rename from tests/utilities/stubs/serialization/test.proto rename to packages/service/tests/utilities/stubs/serialization/test.proto diff --git a/tests/utilities/stubs/serialization/test_pb2.py b/packages/service/tests/utilities/stubs/serialization/test_pb2.py similarity index 100% rename from tests/utilities/stubs/serialization/test_pb2.py rename to packages/service/tests/utilities/stubs/serialization/test_pb2.py diff --git a/tests/utilities/stubs/serialization/test_pb2.pyi b/packages/service/tests/utilities/stubs/serialization/test_pb2.pyi similarity index 100% rename from tests/utilities/stubs/serialization/test_pb2.pyi rename to packages/service/tests/utilities/stubs/serialization/test_pb2.pyi diff --git a/tests/utilities/stubs/serialization/test_pb2_grpc.py b/packages/service/tests/utilities/stubs/serialization/test_pb2_grpc.py similarity index 100% rename from tests/utilities/stubs/serialization/test_pb2_grpc.py rename to packages/service/tests/utilities/stubs/serialization/test_pb2_grpc.py diff --git a/tests/utilities/stubs/serialization/test_pb2_grpc.pyi b/packages/service/tests/utilities/stubs/serialization/test_pb2_grpc.pyi similarity index 100% rename from tests/utilities/stubs/serialization/test_pb2_grpc.pyi rename to packages/service/tests/utilities/stubs/serialization/test_pb2_grpc.pyi diff --git a/tests/utilities/stubs/streamingdata/__init__.py b/packages/service/tests/utilities/stubs/streamingdata/__init__.py similarity index 100% rename from tests/utilities/stubs/streamingdata/__init__.py rename to packages/service/tests/utilities/stubs/streamingdata/__init__.py diff --git a/tests/utilities/stubs/streamingdata/types.proto b/packages/service/tests/utilities/stubs/streamingdata/types.proto similarity index 100% rename from tests/utilities/stubs/streamingdata/types.proto rename to packages/service/tests/utilities/stubs/streamingdata/types.proto diff --git a/tests/utilities/stubs/streamingdata/types_pb2.py b/packages/service/tests/utilities/stubs/streamingdata/types_pb2.py similarity index 100% rename from tests/utilities/stubs/streamingdata/types_pb2.py rename to packages/service/tests/utilities/stubs/streamingdata/types_pb2.py diff --git a/tests/utilities/stubs/streamingdata/types_pb2.pyi b/packages/service/tests/utilities/stubs/streamingdata/types_pb2.pyi similarity index 100% rename from tests/utilities/stubs/streamingdata/types_pb2.pyi rename to packages/service/tests/utilities/stubs/streamingdata/types_pb2.pyi diff --git a/tests/utilities/stubs/yieldvsreturn/types_pb2_grpc.py b/packages/service/tests/utilities/stubs/streamingdata/types_pb2_grpc.py similarity index 100% rename from tests/utilities/stubs/yieldvsreturn/types_pb2_grpc.py rename to packages/service/tests/utilities/stubs/streamingdata/types_pb2_grpc.py diff --git a/tests/utilities/stubs/streamingdata/types_pb2_grpc.pyi b/packages/service/tests/utilities/stubs/streamingdata/types_pb2_grpc.pyi similarity index 100% rename from tests/utilities/stubs/streamingdata/types_pb2_grpc.pyi rename to packages/service/tests/utilities/stubs/streamingdata/types_pb2_grpc.pyi diff --git a/tests/utilities/stubs/yieldvsreturn/__init__.py b/packages/service/tests/utilities/stubs/yieldvsreturn/__init__.py similarity index 100% rename from tests/utilities/stubs/yieldvsreturn/__init__.py rename to packages/service/tests/utilities/stubs/yieldvsreturn/__init__.py diff --git a/tests/utilities/stubs/yieldvsreturn/types.proto b/packages/service/tests/utilities/stubs/yieldvsreturn/types.proto similarity index 100% rename from tests/utilities/stubs/yieldvsreturn/types.proto rename to packages/service/tests/utilities/stubs/yieldvsreturn/types.proto diff --git a/tests/utilities/stubs/yieldvsreturn/types_pb2.py b/packages/service/tests/utilities/stubs/yieldvsreturn/types_pb2.py similarity index 100% rename from tests/utilities/stubs/yieldvsreturn/types_pb2.py rename to packages/service/tests/utilities/stubs/yieldvsreturn/types_pb2.py diff --git a/tests/utilities/stubs/yieldvsreturn/types_pb2.pyi b/packages/service/tests/utilities/stubs/yieldvsreturn/types_pb2.pyi similarity index 100% rename from tests/utilities/stubs/yieldvsreturn/types_pb2.pyi rename to packages/service/tests/utilities/stubs/yieldvsreturn/types_pb2.pyi diff --git a/packages/service/tests/utilities/stubs/yieldvsreturn/types_pb2_grpc.py b/packages/service/tests/utilities/stubs/yieldvsreturn/types_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/packages/service/tests/utilities/stubs/yieldvsreturn/types_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/tests/utilities/stubs/yieldvsreturn/types_pb2_grpc.pyi b/packages/service/tests/utilities/stubs/yieldvsreturn/types_pb2_grpc.pyi similarity index 100% rename from tests/utilities/stubs/yieldvsreturn/types_pb2_grpc.pyi rename to packages/service/tests/utilities/stubs/yieldvsreturn/types_pb2_grpc.pyi diff --git a/tox.ini b/packages/service/tox.ini similarity index 100% rename from tox.ini rename to packages/service/tox.ini