wandelbots_api_client 26.6.0.dev34__py3-none-any.whl → 26.6.0.dev36__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wandelbots_api_client/__init__.py +1 -1
- wandelbots_api_client/api_client.py +1 -1
- wandelbots_api_client/configuration.py +1 -1
- wandelbots_api_client/v2/__init__.py +1 -1
- wandelbots_api_client/v2/api/bus_inputs_outputs_api.py +38 -4
- wandelbots_api_client/v2/api_client.py +1 -1
- wandelbots_api_client/v2/configuration.py +1 -1
- wandelbots_api_client/v2/models/__init__.py +1 -0
- wandelbots_api_client/v2/models/add_virtual_controller_motion_group_request.py +1 -1
- wandelbots_api_client/v2/models/app.py +1 -1
- wandelbots_api_client/v2/models/motion_group_from_json.py +2 -2
- wandelbots_api_client/v2/models/motion_group_from_type.py +1 -1
- wandelbots_api_client/v2/models/profinet_input_output_config.py +21 -6
- wandelbots_api_client/v2/models/profinet_io.py +1 -1
- wandelbots_api_client/v2/models/profinet_io_data.py +1 -1
- wandelbots_api_client/v2/models/profinet_slot_offset.py +98 -0
- wandelbots_api_client/v2/models/virtual_controller.py +18 -2
- wandelbots_api_client/v2_pydantic/__init__.py +1 -1
- wandelbots_api_client/v2_pydantic/api/bus_inputs_outputs_api.py +38 -4
- wandelbots_api_client/v2_pydantic/api_client.py +1 -1
- wandelbots_api_client/v2_pydantic/configuration.py +1 -1
- wandelbots_api_client/v2_pydantic/models/__init__.py +4 -2
- wandelbots_api_client/v2_pydantic/models/models.py +131 -78
- {wandelbots_api_client-26.6.0.dev34.dist-info → wandelbots_api_client-26.6.0.dev36.dist-info}/METADATA +2 -2
- {wandelbots_api_client-26.6.0.dev34.dist-info → wandelbots_api_client-26.6.0.dev36.dist-info}/RECORD +26 -25
- {wandelbots_api_client-26.6.0.dev34.dist-info → wandelbots_api_client-26.6.0.dev36.dist-info}/WHEEL +0 -0
|
@@ -83,7 +83,7 @@ class ApiClient:
|
|
|
83
83
|
self.default_headers[header_name] = header_value
|
|
84
84
|
self.cookie = cookie
|
|
85
85
|
# Set default User-Agent.
|
|
86
|
-
self.user_agent = "Wandelbots-Nova-API-Python-Client/26.6.0.
|
|
86
|
+
self.user_agent = "Wandelbots-Nova-API-Python-Client/26.6.0.dev36"
|
|
87
87
|
self.client_side_validation = configuration.client_side_validation
|
|
88
88
|
|
|
89
89
|
async def __aenter__(self):
|
|
@@ -512,7 +512,7 @@ class Configuration:
|
|
|
512
512
|
"OS: {env}\n"
|
|
513
513
|
"Python Version: {pyversion}\n"
|
|
514
514
|
"Version of the API: 1.6.0 dev\n"
|
|
515
|
-
"SDK Package Version: 26.6.0.
|
|
515
|
+
"SDK Package Version: 26.6.0.dev36".format(env=sys.platform, pyversion=sys.version)
|
|
516
516
|
)
|
|
517
517
|
|
|
518
518
|
def get_host_settings(self) -> List[HostSetting]:
|
|
@@ -35,6 +35,7 @@ from wandelbots_api_client.v2.models.profinet_description import ProfinetDescrip
|
|
|
35
35
|
from wandelbots_api_client.v2.models.profinet_io import ProfinetIO
|
|
36
36
|
from wandelbots_api_client.v2.models.profinet_io_data import ProfinetIOData
|
|
37
37
|
from wandelbots_api_client.v2.models.profinet_input_output_config import ProfinetInputOutputConfig
|
|
38
|
+
from wandelbots_api_client.v2.models.profinet_slot_offset import ProfinetSlotOffset
|
|
38
39
|
from wandelbots_api_client.v2.models.snap7_io import Snap7IO
|
|
39
40
|
from wandelbots_api_client.v2.models.snap7_io_data import Snap7IOData
|
|
40
41
|
|
|
@@ -3837,6 +3838,12 @@ class BUSInputsOutputsApi:
|
|
|
3837
3838
|
async def get_profinet_ios_from_file(
|
|
3838
3839
|
self,
|
|
3839
3840
|
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
3841
|
+
offsets: Annotated[
|
|
3842
|
+
Optional[List[ProfinetSlotOffset]],
|
|
3843
|
+
Field(
|
|
3844
|
+
description="Per-slot offsets used to convert device-local byte addresses to controller byte addresses for export. If this parameter is provided, it is preferred over the deprecated `input_offset` and `output_offset` query parameters. "
|
|
3845
|
+
),
|
|
3846
|
+
] = None,
|
|
3840
3847
|
input_offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
|
|
3841
3848
|
output_offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
|
|
3842
3849
|
_request_timeout: Union[
|
|
@@ -3849,10 +3856,12 @@ class BUSInputsOutputsApi:
|
|
|
3849
3856
|
) -> str:
|
|
3850
3857
|
"""PROFINET Inputs/Outputs to File
|
|
3851
3858
|
|
|
3852
|
-
**Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA's PROFINET service as file. You can specify byte offsets for
|
|
3859
|
+
**Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA's PROFINET service as file. You can specify per-slot byte offsets for input and output variable addresses to get an XML tag map that is ready for pasting to third party software, e.g., TIA portal. For backward compatibility, the legacy `input_offset` and `output_offset` query parameters remain available, but deprecated.
|
|
3853
3860
|
|
|
3854
3861
|
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
3855
3862
|
:type cell: str
|
|
3863
|
+
:param offsets: Per-slot offsets used to convert device-local byte addresses to controller byte addresses for export. If this parameter is provided, it is preferred over the deprecated `input_offset` and `output_offset` query parameters.
|
|
3864
|
+
:type offsets: List[ProfinetSlotOffset]
|
|
3856
3865
|
:param input_offset:
|
|
3857
3866
|
:type input_offset: int
|
|
3858
3867
|
:param output_offset:
|
|
@@ -3881,6 +3890,7 @@ class BUSInputsOutputsApi:
|
|
|
3881
3890
|
|
|
3882
3891
|
_param = self._get_profinet_ios_from_file_serialize(
|
|
3883
3892
|
cell=cell,
|
|
3893
|
+
offsets=offsets,
|
|
3884
3894
|
input_offset=input_offset,
|
|
3885
3895
|
output_offset=output_offset,
|
|
3886
3896
|
_request_auth=_request_auth,
|
|
@@ -3907,6 +3917,12 @@ class BUSInputsOutputsApi:
|
|
|
3907
3917
|
async def get_profinet_ios_from_file_with_http_info(
|
|
3908
3918
|
self,
|
|
3909
3919
|
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
3920
|
+
offsets: Annotated[
|
|
3921
|
+
Optional[List[ProfinetSlotOffset]],
|
|
3922
|
+
Field(
|
|
3923
|
+
description="Per-slot offsets used to convert device-local byte addresses to controller byte addresses for export. If this parameter is provided, it is preferred over the deprecated `input_offset` and `output_offset` query parameters. "
|
|
3924
|
+
),
|
|
3925
|
+
] = None,
|
|
3910
3926
|
input_offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
|
|
3911
3927
|
output_offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
|
|
3912
3928
|
_request_timeout: Union[
|
|
@@ -3919,10 +3935,12 @@ class BUSInputsOutputsApi:
|
|
|
3919
3935
|
) -> ApiResponse[str]:
|
|
3920
3936
|
"""PROFINET Inputs/Outputs to File
|
|
3921
3937
|
|
|
3922
|
-
**Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA's PROFINET service as file. You can specify byte offsets for
|
|
3938
|
+
**Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA's PROFINET service as file. You can specify per-slot byte offsets for input and output variable addresses to get an XML tag map that is ready for pasting to third party software, e.g., TIA portal. For backward compatibility, the legacy `input_offset` and `output_offset` query parameters remain available, but deprecated.
|
|
3923
3939
|
|
|
3924
3940
|
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
3925
3941
|
:type cell: str
|
|
3942
|
+
:param offsets: Per-slot offsets used to convert device-local byte addresses to controller byte addresses for export. If this parameter is provided, it is preferred over the deprecated `input_offset` and `output_offset` query parameters.
|
|
3943
|
+
:type offsets: List[ProfinetSlotOffset]
|
|
3926
3944
|
:param input_offset:
|
|
3927
3945
|
:type input_offset: int
|
|
3928
3946
|
:param output_offset:
|
|
@@ -3951,6 +3969,7 @@ class BUSInputsOutputsApi:
|
|
|
3951
3969
|
|
|
3952
3970
|
_param = self._get_profinet_ios_from_file_serialize(
|
|
3953
3971
|
cell=cell,
|
|
3972
|
+
offsets=offsets,
|
|
3954
3973
|
input_offset=input_offset,
|
|
3955
3974
|
output_offset=output_offset,
|
|
3956
3975
|
_request_auth=_request_auth,
|
|
@@ -3977,6 +3996,12 @@ class BUSInputsOutputsApi:
|
|
|
3977
3996
|
async def get_profinet_ios_from_file_without_preload_content(
|
|
3978
3997
|
self,
|
|
3979
3998
|
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
3999
|
+
offsets: Annotated[
|
|
4000
|
+
Optional[List[ProfinetSlotOffset]],
|
|
4001
|
+
Field(
|
|
4002
|
+
description="Per-slot offsets used to convert device-local byte addresses to controller byte addresses for export. If this parameter is provided, it is preferred over the deprecated `input_offset` and `output_offset` query parameters. "
|
|
4003
|
+
),
|
|
4004
|
+
] = None,
|
|
3980
4005
|
input_offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
|
|
3981
4006
|
output_offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
|
|
3982
4007
|
_request_timeout: Union[
|
|
@@ -3989,10 +4014,12 @@ class BUSInputsOutputsApi:
|
|
|
3989
4014
|
) -> RESTResponseType:
|
|
3990
4015
|
"""PROFINET Inputs/Outputs to File
|
|
3991
4016
|
|
|
3992
|
-
**Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA's PROFINET service as file. You can specify byte offsets for
|
|
4017
|
+
**Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA's PROFINET service as file. You can specify per-slot byte offsets for input and output variable addresses to get an XML tag map that is ready for pasting to third party software, e.g., TIA portal. For backward compatibility, the legacy `input_offset` and `output_offset` query parameters remain available, but deprecated.
|
|
3993
4018
|
|
|
3994
4019
|
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
3995
4020
|
:type cell: str
|
|
4021
|
+
:param offsets: Per-slot offsets used to convert device-local byte addresses to controller byte addresses for export. If this parameter is provided, it is preferred over the deprecated `input_offset` and `output_offset` query parameters.
|
|
4022
|
+
:type offsets: List[ProfinetSlotOffset]
|
|
3996
4023
|
:param input_offset:
|
|
3997
4024
|
:type input_offset: int
|
|
3998
4025
|
:param output_offset:
|
|
@@ -4021,6 +4048,7 @@ class BUSInputsOutputsApi:
|
|
|
4021
4048
|
|
|
4022
4049
|
_param = self._get_profinet_ios_from_file_serialize(
|
|
4023
4050
|
cell=cell,
|
|
4051
|
+
offsets=offsets,
|
|
4024
4052
|
input_offset=input_offset,
|
|
4025
4053
|
output_offset=output_offset,
|
|
4026
4054
|
_request_auth=_request_auth,
|
|
@@ -4042,6 +4070,7 @@ class BUSInputsOutputsApi:
|
|
|
4042
4070
|
def _get_profinet_ios_from_file_serialize(
|
|
4043
4071
|
self,
|
|
4044
4072
|
cell,
|
|
4073
|
+
offsets,
|
|
4045
4074
|
input_offset,
|
|
4046
4075
|
output_offset,
|
|
4047
4076
|
_request_auth,
|
|
@@ -4052,7 +4081,9 @@ class BUSInputsOutputsApi:
|
|
|
4052
4081
|
|
|
4053
4082
|
_host = None
|
|
4054
4083
|
|
|
4055
|
-
_collection_formats: Dict[str, str] = {
|
|
4084
|
+
_collection_formats: Dict[str, str] = {
|
|
4085
|
+
"offsets": "csv",
|
|
4086
|
+
}
|
|
4056
4087
|
|
|
4057
4088
|
_path_params: Dict[str, str] = {}
|
|
4058
4089
|
_query_params: List[Tuple[str, str]] = []
|
|
@@ -4065,6 +4096,9 @@ class BUSInputsOutputsApi:
|
|
|
4065
4096
|
if cell is not None:
|
|
4066
4097
|
_path_params["cell"] = cell
|
|
4067
4098
|
# process the query parameters
|
|
4099
|
+
if offsets is not None:
|
|
4100
|
+
_query_params.append(("offsets", offsets))
|
|
4101
|
+
|
|
4068
4102
|
if input_offset is not None:
|
|
4069
4103
|
_query_params.append(("input_offset", input_offset))
|
|
4070
4104
|
|
|
@@ -85,7 +85,7 @@ class ApiClient:
|
|
|
85
85
|
self.default_headers[header_name] = header_value
|
|
86
86
|
self.cookie = cookie
|
|
87
87
|
# Set default User-Agent.
|
|
88
|
-
self.user_agent = "Wandelbots-Nova-API-Python-Client/26.6.0.
|
|
88
|
+
self.user_agent = "Wandelbots-Nova-API-Python-Client/26.6.0.dev36"
|
|
89
89
|
self.client_side_validation = configuration.client_side_validation
|
|
90
90
|
|
|
91
91
|
async def __aenter__(self):
|
|
@@ -512,7 +512,7 @@ class Configuration:
|
|
|
512
512
|
"OS: {env}\n"
|
|
513
513
|
"Python Version: {pyversion}\n"
|
|
514
514
|
"Version of the API: 2.6.0 dev\n"
|
|
515
|
-
"SDK Package Version: 26.6.0.
|
|
515
|
+
"SDK Package Version: 26.6.0.dev36".format(env=sys.platform, pyversion=sys.version)
|
|
516
516
|
)
|
|
517
517
|
|
|
518
518
|
def get_host_settings(self) -> List[HostSetting]:
|
|
@@ -336,6 +336,7 @@ from wandelbots_api_client.v2.models.profinet_io_direction import ProfinetIODire
|
|
|
336
336
|
from wandelbots_api_client.v2.models.profinet_io_type_enum import ProfinetIOTypeEnum
|
|
337
337
|
from wandelbots_api_client.v2.models.profinet_input_output_config import ProfinetInputOutputConfig
|
|
338
338
|
from wandelbots_api_client.v2.models.profinet_slot_description import ProfinetSlotDescription
|
|
339
|
+
from wandelbots_api_client.v2.models.profinet_slot_offset import ProfinetSlotOffset
|
|
339
340
|
from wandelbots_api_client.v2.models.profinet_sub_slot_description import ProfinetSubSlotDescription
|
|
340
341
|
from wandelbots_api_client.v2.models.program import Program
|
|
341
342
|
from wandelbots_api_client.v2.models.program_run import ProgramRun
|
|
@@ -27,7 +27,7 @@ ADDVIRTUALCONTROLLERMOTIONGROUPREQUEST_ONE_OF_SCHEMAS = ["MotionGroupFromJson",
|
|
|
27
27
|
|
|
28
28
|
class AddVirtualControllerMotionGroupRequest(BaseModel):
|
|
29
29
|
"""
|
|
30
|
-
Request body wrapper for `addVirtualControllerMotionGroup`. Allow
|
|
30
|
+
Request body wrapper for `addVirtualControllerMotionGroup`. Allow either referencing a predefined motion group model or uploading a JSON configuration that the backend converts into a motion group description.
|
|
31
31
|
"""
|
|
32
32
|
|
|
33
33
|
# data type: MotionGroupFromType
|
|
@@ -34,7 +34,7 @@ class App(BaseModel):
|
|
|
34
34
|
""" # noqa: E501
|
|
35
35
|
|
|
36
36
|
name: Annotated[str, Field(min_length=1, strict=True)] = Field(
|
|
37
|
-
description="The name of the provided application. The name must be unique within the cell and is used as
|
|
37
|
+
description="The name of the provided application. The name must be unique within the cell and is used as an identifier for addressing the application in all API calls , e.g., when updating the application. It also defines where the application is reachable (/$cell/$name). It must be a valid k8s label name as defined by [RFC 1035](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#rfc-1035-label-names). "
|
|
38
38
|
)
|
|
39
39
|
app_icon: Annotated[str, Field(min_length=1, strict=True)] = Field(
|
|
40
40
|
description="The path of the icon for the App (/$cell/$name/$app_icon)."
|
|
@@ -30,14 +30,14 @@ class MotionGroupFromJson(BaseModel):
|
|
|
30
30
|
|
|
31
31
|
motion_group: StrictStr = Field(description="Unique identifier for the motion group to be added.")
|
|
32
32
|
json_data: StrictStr = Field(
|
|
33
|
-
description="
|
|
33
|
+
description="JSON configuration of the virtual robot controller, can be obtained from the physical controller's configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration). "
|
|
34
34
|
)
|
|
35
35
|
extracted_motion_group_id: StrictStr = Field(
|
|
36
36
|
description="The identifier of the motion group that needs to be extracted from the provided JSON configuration. "
|
|
37
37
|
)
|
|
38
38
|
initial_joint_position: Optional[StrictStr] = Field(
|
|
39
39
|
default=None,
|
|
40
|
-
description="Initial joint position of the added motion group. Provides the joint position as a JSON array of float values in radians
|
|
40
|
+
description="Initial joint position of the added motion group. Provides the joint position as a JSON array of float values in radians. The array length must match the robot's degrees of freedom, e.g., `\"[0, 0, 0, 0, 0, 0]\"` for a 6-DOF robot. If the provided array length does not match the robot's DOF, the array will be adjusted: if it is longer, extra values will be truncated; if it is shorter, missing values will be filled with zeros. ",
|
|
41
41
|
)
|
|
42
42
|
__properties: ClassVar[List[str]] = ["motion_group", "json_data", "extracted_motion_group_id", "initial_joint_position"]
|
|
43
43
|
|
|
@@ -34,7 +34,7 @@ class MotionGroupFromType(BaseModel):
|
|
|
34
34
|
)
|
|
35
35
|
initial_joint_position: Optional[StrictStr] = Field(
|
|
36
36
|
default=None,
|
|
37
|
-
description="Initial joint position of the added motion group. Provides the joint position as a JSON array of float values in radians
|
|
37
|
+
description="Initial joint position of the added motion group. Provides the joint position as a JSON array of float values in radians. The array length must match the robot's degrees of freedom, e.g., `\"[0, 0, 0, 0, 0, 0]\"` for a 6-DOF robot. If the provided array length does not match the robot's DOF, the array will be adjusted; if it is longer, extra values will be truncated; if it is shorter, missing values will be filled with zeros. ",
|
|
38
38
|
)
|
|
39
39
|
__properties: ClassVar[List[str]] = ["motion_group", "motion_group_model", "initial_joint_position"]
|
|
40
40
|
|
|
@@ -17,8 +17,9 @@ import re # noqa: F401
|
|
|
17
17
|
import json
|
|
18
18
|
|
|
19
19
|
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
20
|
-
from typing import Any, ClassVar, Dict, List
|
|
20
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
21
21
|
from typing_extensions import Annotated
|
|
22
|
+
from wandelbots_api_client.v2.models.profinet_slot_offset import ProfinetSlotOffset
|
|
22
23
|
from typing import Optional, Set
|
|
23
24
|
from typing_extensions import Self
|
|
24
25
|
from pydantic_core import to_jsonable_python
|
|
@@ -32,13 +33,19 @@ class ProfinetInputOutputConfig(BaseModel):
|
|
|
32
33
|
config: StrictStr = Field(
|
|
33
34
|
description="Content of the input/output variable configuration XML file. The XML File has to be embedded as a string by escaping quotes, line breaks and so forth. "
|
|
34
35
|
)
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
offsets: Optional[List[ProfinetSlotOffset]] = Field(
|
|
37
|
+
default=None,
|
|
38
|
+
description="Per-slot offsets for translating controller addresses to PROFINET device-local byte addresses. Use this field for multi-slot devices. If omitted, the deprecated `input_offset` and `output_offset` fields are used for backward compatibility. ",
|
|
37
39
|
)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
input_offset: Optional[Annotated[int, Field(le=2147483647, strict=True, ge=0)]] = Field(
|
|
41
|
+
default=0,
|
|
42
|
+
description="Offset in bytes for the addresses of input variables from the perspective of the controller. This field is deprecated and replaced by `offsets` to support per-slot offsets. The offset is subtracted from the byte addresses of the sent XML content. ",
|
|
40
43
|
)
|
|
41
|
-
|
|
44
|
+
output_offset: Optional[Annotated[int, Field(le=2147483647, strict=True, ge=0)]] = Field(
|
|
45
|
+
default=0,
|
|
46
|
+
description="Offset in bytes for the addresses of output variables from the perspective of the controller. This field is deprecated and replaced by `offsets` to support per-slot offsets. The offset is subtracted from the byte addresses of the sent XML content. ",
|
|
47
|
+
)
|
|
48
|
+
__properties: ClassVar[List[str]] = ["config", "offsets", "input_offset", "output_offset"]
|
|
42
49
|
|
|
43
50
|
model_config = ConfigDict(
|
|
44
51
|
validate_by_name=True,
|
|
@@ -77,6 +84,13 @@ class ProfinetInputOutputConfig(BaseModel):
|
|
|
77
84
|
exclude=excluded_fields,
|
|
78
85
|
exclude_none=True,
|
|
79
86
|
)
|
|
87
|
+
# override the default output from pydantic by calling `to_dict()` of each item in offsets (list)
|
|
88
|
+
_items = []
|
|
89
|
+
if self.offsets:
|
|
90
|
+
for _item_offsets in self.offsets:
|
|
91
|
+
if _item_offsets:
|
|
92
|
+
_items.append(_item_offsets.to_dict())
|
|
93
|
+
_dict["offsets"] = _items
|
|
80
94
|
return _dict
|
|
81
95
|
|
|
82
96
|
@classmethod
|
|
@@ -91,6 +105,7 @@ class ProfinetInputOutputConfig(BaseModel):
|
|
|
91
105
|
_obj = cls.model_validate(
|
|
92
106
|
{
|
|
93
107
|
"config": obj.get("config"),
|
|
108
|
+
"offsets": [ProfinetSlotOffset.from_dict(_item) for _item in obj["offsets"]] if obj.get("offsets") is not None else None,
|
|
94
109
|
"input_offset": obj.get("input_offset") if obj.get("input_offset") is not None else 0,
|
|
95
110
|
"output_offset": obj.get("output_offset") if obj.get("output_offset") is not None else 0,
|
|
96
111
|
}
|
|
@@ -37,7 +37,7 @@ class ProfinetIO(BaseModel):
|
|
|
37
37
|
description="The direction of the input/output variable, indicating whether it is an input or output for the PROFINET device, e.g., NOVA's PROFINET service. "
|
|
38
38
|
)
|
|
39
39
|
byte_address: Annotated[int, Field(le=65535, strict=True, ge=0)] = Field(
|
|
40
|
-
description="The byte address in the PROFINET device's process image, with offset 0. The slot is automatically determined based on this address and the configured slot layout. For example, with two slots of 64 bytes each: - Bytes 0-63: Slot 1 - Bytes 64-127: Slot 2 When importing from a tag table, e.g., TIA Portal, use `input_offset`/`output_offset` to convert global PLC addresses to device-local addresses: `device_byte_address` = `plc_byte_address` - offset "
|
|
40
|
+
description="The byte address in the PROFINET device's process image, with offset 0. The slot is automatically determined based on this address and the configured slot layout. For example, with two slots of 64 bytes each: - Bytes 0-63: Slot 1 - Bytes 64-127: Slot 2 When importing from a tag table, e.g., TIA Portal, use per-slot `offsets` (or the deprecated `input_offset`/`output_offset`) to convert global PLC addresses to device-local addresses: `device_byte_address` = `plc_byte_address` - offset "
|
|
41
41
|
)
|
|
42
42
|
bit_address: Optional[Annotated[int, Field(le=7, strict=True, ge=0)]] = Field(
|
|
43
43
|
default=None,
|
|
@@ -37,7 +37,7 @@ class ProfinetIOData(BaseModel):
|
|
|
37
37
|
description="The direction of the input/output variable, indicating whether it is an input or output for the PROFINET device, e.g., NOVA's PROFINET service. "
|
|
38
38
|
)
|
|
39
39
|
byte_address: Annotated[int, Field(le=65535, strict=True, ge=0)] = Field(
|
|
40
|
-
description="The byte address in the PROFINET device's process image, with offset 0. The slot is automatically determined based on this address and the configured slot layout. For example, with two slots of 64 bytes each: - Bytes 0-63: Slot 1 - Bytes 64-127: Slot 2 When importing from a tag table, e.g., TIA Portal, use `input_offset`/`output_offset` to convert global PLC addresses to device-local addresses: `device_byte_address` = `plc_byte_address` - offset "
|
|
40
|
+
description="The byte address in the PROFINET device's process image, with offset 0. The slot is automatically determined based on this address and the configured slot layout. For example, with two slots of 64 bytes each: - Bytes 0-63: Slot 1 - Bytes 64-127: Slot 2 When importing from a tag table, e.g., TIA Portal, use per-slot `offsets` (or the deprecated `input_offset`/`output_offset`) to convert global PLC addresses to device-local addresses: `device_byte_address` = `plc_byte_address` - offset "
|
|
41
41
|
)
|
|
42
42
|
bit_address: Optional[Annotated[int, Field(le=7, strict=True, ge=0)]] = Field(
|
|
43
43
|
default=None,
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Wandelbots NOVA API
|
|
5
|
+
|
|
6
|
+
Interact with robots in an easy and intuitive way.
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 2.6.0 dev
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
import pprint
|
|
16
|
+
import re # noqa: F401
|
|
17
|
+
import json
|
|
18
|
+
|
|
19
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
20
|
+
from typing import Any, ClassVar, Dict, List
|
|
21
|
+
from typing_extensions import Annotated
|
|
22
|
+
from typing import Optional, Set
|
|
23
|
+
from typing_extensions import Self
|
|
24
|
+
from pydantic_core import to_jsonable_python
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class ProfinetSlotOffset(BaseModel):
|
|
28
|
+
"""
|
|
29
|
+
ProfinetSlotOffset
|
|
30
|
+
""" # noqa: E501
|
|
31
|
+
|
|
32
|
+
slot: Annotated[int, Field(le=2147483647, strict=True, ge=0)] = Field(
|
|
33
|
+
description="The number/index of the PROFINET slot these offsets apply to. Per default, slot 0 is reserved for the device access point (DAP). Slots that are part of the cyclic input/output data exchange start at number 1. "
|
|
34
|
+
)
|
|
35
|
+
input_offset: Annotated[int, Field(le=2147483647, strict=True, ge=0)] = Field(
|
|
36
|
+
description="This slot's offset in bytes for the addresses of input variables from the perspective of the controller. For imported tag tables, this offset is subtracted from the controller byte addresses. "
|
|
37
|
+
)
|
|
38
|
+
output_offset: Annotated[int, Field(le=2147483647, strict=True, ge=0)] = Field(
|
|
39
|
+
description="This slot's offset in bytes for the addresses of output variables from the perspective of the controller. For imported tag tables, this offset is subtracted from the controller byte addresses. "
|
|
40
|
+
)
|
|
41
|
+
__properties: ClassVar[List[str]] = ["slot", "input_offset", "output_offset"]
|
|
42
|
+
|
|
43
|
+
model_config = ConfigDict(
|
|
44
|
+
validate_by_name=True,
|
|
45
|
+
validate_by_alias=True,
|
|
46
|
+
validate_assignment=True,
|
|
47
|
+
protected_namespaces=(),
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
def to_str(self) -> str:
|
|
51
|
+
"""Returns the string representation of the model using alias"""
|
|
52
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
53
|
+
|
|
54
|
+
def to_json(self) -> str:
|
|
55
|
+
"""Returns the JSON representation of the model using alias"""
|
|
56
|
+
return json.dumps(to_jsonable_python(self.to_dict()))
|
|
57
|
+
|
|
58
|
+
@classmethod
|
|
59
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
60
|
+
"""Create an instance of ProfinetSlotOffset from a JSON string"""
|
|
61
|
+
return cls.from_dict(json.loads(json_str))
|
|
62
|
+
|
|
63
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
64
|
+
"""Return the dictionary representation of the model using alias.
|
|
65
|
+
|
|
66
|
+
This has the following differences from calling pydantic's
|
|
67
|
+
`self.model_dump(by_alias=True)`:
|
|
68
|
+
|
|
69
|
+
* `None` is only added to the output dict for nullable fields that
|
|
70
|
+
were set at model initialization. Other fields with value `None`
|
|
71
|
+
are ignored.
|
|
72
|
+
"""
|
|
73
|
+
excluded_fields: Set[str] = set([])
|
|
74
|
+
|
|
75
|
+
_dict = self.model_dump(
|
|
76
|
+
by_alias=True,
|
|
77
|
+
exclude=excluded_fields,
|
|
78
|
+
exclude_none=True,
|
|
79
|
+
)
|
|
80
|
+
return _dict
|
|
81
|
+
|
|
82
|
+
@classmethod
|
|
83
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
84
|
+
"""Create an instance of ProfinetSlotOffset from a dict"""
|
|
85
|
+
if obj is None:
|
|
86
|
+
return None
|
|
87
|
+
|
|
88
|
+
if not isinstance(obj, dict):
|
|
89
|
+
return cls.model_validate(obj)
|
|
90
|
+
|
|
91
|
+
_obj = cls.model_validate(
|
|
92
|
+
{
|
|
93
|
+
"slot": obj.get("slot"),
|
|
94
|
+
"input_offset": obj.get("input_offset") if obj.get("input_offset") is not None else 0,
|
|
95
|
+
"output_offset": obj.get("output_offset") if obj.get("output_offset") is not None else 0,
|
|
96
|
+
}
|
|
97
|
+
)
|
|
98
|
+
return _obj
|
|
@@ -18,6 +18,8 @@ import json
|
|
|
18
18
|
|
|
19
19
|
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
|
|
20
20
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
21
|
+
from typing_extensions import Annotated
|
|
22
|
+
from wandelbots_api_client.v2.models.add_virtual_controller_motion_group_request import AddVirtualControllerMotionGroupRequest
|
|
21
23
|
from wandelbots_api_client.v2.models.manufacturer import Manufacturer
|
|
22
24
|
from typing import Optional, Set
|
|
23
25
|
from typing_extensions import Self
|
|
@@ -42,9 +44,13 @@ class VirtualController(BaseModel):
|
|
|
42
44
|
)
|
|
43
45
|
initial_joint_position: Optional[StrictStr] = Field(
|
|
44
46
|
default=None,
|
|
45
|
-
description="Initial joint position of the first motion group from the virtual robot controller. Provides the joint position as a JSON array of float values in radians
|
|
47
|
+
description="Initial joint position of the first motion group from the virtual robot controller. Provides the joint position as a JSON array of float values in radians. The array length must match the robot's degrees of freedom, e.g., `\"[0, 0, 0, 0, 0, 0]\"` for a 6-DOF robot. If the provided array length does not match the robot's DOF, the array will be adjusted: if it is longer, extra values will be truncated; if it is shorter, missing values will be filled with zeros. ",
|
|
46
48
|
)
|
|
47
|
-
|
|
49
|
+
motion_groups: Optional[Annotated[List[AddVirtualControllerMotionGroupRequest], Field(max_length=10)]] = Field(
|
|
50
|
+
default=None,
|
|
51
|
+
description="Adds a motion group configuration for the virtual robot controller. > **NOTE** > > Set only one of the two options, **motion_group_model**, or **json_data** - **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types - **json_data**: JSON configuration of the virtual robot controller, can be obtained from the physical controller's configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration) - **extracted_motion_group_id**: Motion group identifier to extract from the provided JSON configuration, required when using json_data - **motion_group**: Unique identifier for the motion group - **initial_joint_position**: Specifies the initial joint position for the added motion group ",
|
|
52
|
+
)
|
|
53
|
+
__properties: ClassVar[List[str]] = ["kind", "manufacturer", "type", "json", "initial_joint_position", "motion_groups"]
|
|
48
54
|
|
|
49
55
|
@field_validator("kind")
|
|
50
56
|
def kind_validate_enum(cls, value):
|
|
@@ -90,6 +96,13 @@ class VirtualController(BaseModel):
|
|
|
90
96
|
exclude=excluded_fields,
|
|
91
97
|
exclude_none=True,
|
|
92
98
|
)
|
|
99
|
+
# override the default output from pydantic by calling `to_dict()` of each item in motion_groups (list)
|
|
100
|
+
_items = []
|
|
101
|
+
if self.motion_groups:
|
|
102
|
+
for _item_motion_groups in self.motion_groups:
|
|
103
|
+
if _item_motion_groups:
|
|
104
|
+
_items.append(_item_motion_groups.to_dict())
|
|
105
|
+
_dict["motion_groups"] = _items
|
|
93
106
|
return _dict
|
|
94
107
|
|
|
95
108
|
@classmethod
|
|
@@ -108,6 +121,9 @@ class VirtualController(BaseModel):
|
|
|
108
121
|
"type": obj.get("type"),
|
|
109
122
|
"json": obj.get("json"),
|
|
110
123
|
"initial_joint_position": obj.get("initial_joint_position"),
|
|
124
|
+
"motion_groups": [AddVirtualControllerMotionGroupRequest.from_dict(_item) for _item in obj["motion_groups"]]
|
|
125
|
+
if obj.get("motion_groups") is not None
|
|
126
|
+
else None,
|
|
111
127
|
}
|
|
112
128
|
)
|
|
113
129
|
return _obj
|
|
@@ -35,6 +35,7 @@ from wandelbots_api_client.v2_pydantic.models import ProfinetDescription
|
|
|
35
35
|
from wandelbots_api_client.v2_pydantic.models import ProfinetIO
|
|
36
36
|
from wandelbots_api_client.v2_pydantic.models import ProfinetIOData
|
|
37
37
|
from wandelbots_api_client.v2_pydantic.models import ProfinetInputOutputConfig
|
|
38
|
+
from wandelbots_api_client.v2_pydantic.models import ProfinetSlotOffset
|
|
38
39
|
from wandelbots_api_client.v2_pydantic.models import Snap7IO
|
|
39
40
|
from wandelbots_api_client.v2_pydantic.models import Snap7IOData
|
|
40
41
|
|
|
@@ -3837,6 +3838,12 @@ class BUSInputsOutputsApi:
|
|
|
3837
3838
|
async def get_profinet_ios_from_file(
|
|
3838
3839
|
self,
|
|
3839
3840
|
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
3841
|
+
offsets: Annotated[
|
|
3842
|
+
Optional[List[ProfinetSlotOffset]],
|
|
3843
|
+
Field(
|
|
3844
|
+
description="Per-slot offsets used to convert device-local byte addresses to controller byte addresses for export. If this parameter is provided, it is preferred over the deprecated `input_offset` and `output_offset` query parameters. "
|
|
3845
|
+
),
|
|
3846
|
+
] = None,
|
|
3840
3847
|
input_offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
|
|
3841
3848
|
output_offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
|
|
3842
3849
|
_request_timeout: Union[
|
|
@@ -3849,10 +3856,12 @@ class BUSInputsOutputsApi:
|
|
|
3849
3856
|
) -> str:
|
|
3850
3857
|
"""PROFINET Inputs/Outputs to File
|
|
3851
3858
|
|
|
3852
|
-
**Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA's PROFINET service as file. You can specify byte offsets for
|
|
3859
|
+
**Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA's PROFINET service as file. You can specify per-slot byte offsets for input and output variable addresses to get an XML tag map that is ready for pasting to third party software, e.g., TIA portal. For backward compatibility, the legacy `input_offset` and `output_offset` query parameters remain available, but deprecated.
|
|
3853
3860
|
|
|
3854
3861
|
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
3855
3862
|
:type cell: str
|
|
3863
|
+
:param offsets: Per-slot offsets used to convert device-local byte addresses to controller byte addresses for export. If this parameter is provided, it is preferred over the deprecated `input_offset` and `output_offset` query parameters.
|
|
3864
|
+
:type offsets: List[ProfinetSlotOffset]
|
|
3856
3865
|
:param input_offset:
|
|
3857
3866
|
:type input_offset: int
|
|
3858
3867
|
:param output_offset:
|
|
@@ -3881,6 +3890,7 @@ class BUSInputsOutputsApi:
|
|
|
3881
3890
|
|
|
3882
3891
|
_param = self._get_profinet_ios_from_file_serialize(
|
|
3883
3892
|
cell=cell,
|
|
3893
|
+
offsets=offsets,
|
|
3884
3894
|
input_offset=input_offset,
|
|
3885
3895
|
output_offset=output_offset,
|
|
3886
3896
|
_request_auth=_request_auth,
|
|
@@ -3907,6 +3917,12 @@ class BUSInputsOutputsApi:
|
|
|
3907
3917
|
async def get_profinet_ios_from_file_with_http_info(
|
|
3908
3918
|
self,
|
|
3909
3919
|
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
3920
|
+
offsets: Annotated[
|
|
3921
|
+
Optional[List[ProfinetSlotOffset]],
|
|
3922
|
+
Field(
|
|
3923
|
+
description="Per-slot offsets used to convert device-local byte addresses to controller byte addresses for export. If this parameter is provided, it is preferred over the deprecated `input_offset` and `output_offset` query parameters. "
|
|
3924
|
+
),
|
|
3925
|
+
] = None,
|
|
3910
3926
|
input_offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
|
|
3911
3927
|
output_offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
|
|
3912
3928
|
_request_timeout: Union[
|
|
@@ -3919,10 +3935,12 @@ class BUSInputsOutputsApi:
|
|
|
3919
3935
|
) -> ApiResponse[str]:
|
|
3920
3936
|
"""PROFINET Inputs/Outputs to File
|
|
3921
3937
|
|
|
3922
|
-
**Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA's PROFINET service as file. You can specify byte offsets for
|
|
3938
|
+
**Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA's PROFINET service as file. You can specify per-slot byte offsets for input and output variable addresses to get an XML tag map that is ready for pasting to third party software, e.g., TIA portal. For backward compatibility, the legacy `input_offset` and `output_offset` query parameters remain available, but deprecated.
|
|
3923
3939
|
|
|
3924
3940
|
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
3925
3941
|
:type cell: str
|
|
3942
|
+
:param offsets: Per-slot offsets used to convert device-local byte addresses to controller byte addresses for export. If this parameter is provided, it is preferred over the deprecated `input_offset` and `output_offset` query parameters.
|
|
3943
|
+
:type offsets: List[ProfinetSlotOffset]
|
|
3926
3944
|
:param input_offset:
|
|
3927
3945
|
:type input_offset: int
|
|
3928
3946
|
:param output_offset:
|
|
@@ -3951,6 +3969,7 @@ class BUSInputsOutputsApi:
|
|
|
3951
3969
|
|
|
3952
3970
|
_param = self._get_profinet_ios_from_file_serialize(
|
|
3953
3971
|
cell=cell,
|
|
3972
|
+
offsets=offsets,
|
|
3954
3973
|
input_offset=input_offset,
|
|
3955
3974
|
output_offset=output_offset,
|
|
3956
3975
|
_request_auth=_request_auth,
|
|
@@ -3977,6 +3996,12 @@ class BUSInputsOutputsApi:
|
|
|
3977
3996
|
async def get_profinet_ios_from_file_without_preload_content(
|
|
3978
3997
|
self,
|
|
3979
3998
|
cell: Annotated[StrictStr, Field(description="Unique identifier addressing a cell in all API calls. ")],
|
|
3999
|
+
offsets: Annotated[
|
|
4000
|
+
Optional[List[ProfinetSlotOffset]],
|
|
4001
|
+
Field(
|
|
4002
|
+
description="Per-slot offsets used to convert device-local byte addresses to controller byte addresses for export. If this parameter is provided, it is preferred over the deprecated `input_offset` and `output_offset` query parameters. "
|
|
4003
|
+
),
|
|
4004
|
+
] = None,
|
|
3980
4005
|
input_offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
|
|
3981
4006
|
output_offset: Optional[Annotated[int, Field(strict=True, ge=0)]] = None,
|
|
3982
4007
|
_request_timeout: Union[
|
|
@@ -3989,10 +4014,12 @@ class BUSInputsOutputsApi:
|
|
|
3989
4014
|
) -> RESTResponseType:
|
|
3990
4015
|
"""PROFINET Inputs/Outputs to File
|
|
3991
4016
|
|
|
3992
|
-
**Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA's PROFINET service as file. You can specify byte offsets for
|
|
4017
|
+
**Required permissions:** `can_operate_bus_ios` - Read and write BUS IO values ___ Get input/output variable configuration of the PROFINET device, e.g., NOVA's PROFINET service as file. You can specify per-slot byte offsets for input and output variable addresses to get an XML tag map that is ready for pasting to third party software, e.g., TIA portal. For backward compatibility, the legacy `input_offset` and `output_offset` query parameters remain available, but deprecated.
|
|
3993
4018
|
|
|
3994
4019
|
:param cell: Unique identifier addressing a cell in all API calls. (required)
|
|
3995
4020
|
:type cell: str
|
|
4021
|
+
:param offsets: Per-slot offsets used to convert device-local byte addresses to controller byte addresses for export. If this parameter is provided, it is preferred over the deprecated `input_offset` and `output_offset` query parameters.
|
|
4022
|
+
:type offsets: List[ProfinetSlotOffset]
|
|
3996
4023
|
:param input_offset:
|
|
3997
4024
|
:type input_offset: int
|
|
3998
4025
|
:param output_offset:
|
|
@@ -4021,6 +4048,7 @@ class BUSInputsOutputsApi:
|
|
|
4021
4048
|
|
|
4022
4049
|
_param = self._get_profinet_ios_from_file_serialize(
|
|
4023
4050
|
cell=cell,
|
|
4051
|
+
offsets=offsets,
|
|
4024
4052
|
input_offset=input_offset,
|
|
4025
4053
|
output_offset=output_offset,
|
|
4026
4054
|
_request_auth=_request_auth,
|
|
@@ -4042,6 +4070,7 @@ class BUSInputsOutputsApi:
|
|
|
4042
4070
|
def _get_profinet_ios_from_file_serialize(
|
|
4043
4071
|
self,
|
|
4044
4072
|
cell,
|
|
4073
|
+
offsets,
|
|
4045
4074
|
input_offset,
|
|
4046
4075
|
output_offset,
|
|
4047
4076
|
_request_auth,
|
|
@@ -4052,7 +4081,9 @@ class BUSInputsOutputsApi:
|
|
|
4052
4081
|
|
|
4053
4082
|
_host = None
|
|
4054
4083
|
|
|
4055
|
-
_collection_formats: Dict[str, str] = {
|
|
4084
|
+
_collection_formats: Dict[str, str] = {
|
|
4085
|
+
"offsets": "csv",
|
|
4086
|
+
}
|
|
4056
4087
|
|
|
4057
4088
|
_path_params: Dict[str, str] = {}
|
|
4058
4089
|
_query_params: List[Tuple[str, str]] = []
|
|
@@ -4065,6 +4096,9 @@ class BUSInputsOutputsApi:
|
|
|
4065
4096
|
if cell is not None:
|
|
4066
4097
|
_path_params["cell"] = cell
|
|
4067
4098
|
# process the query parameters
|
|
4099
|
+
if offsets is not None:
|
|
4100
|
+
_query_params.append(("offsets", offsets))
|
|
4101
|
+
|
|
4068
4102
|
if input_offset is not None:
|
|
4069
4103
|
_query_params.append(("input_offset", input_offset))
|
|
4070
4104
|
|
|
@@ -85,7 +85,7 @@ class ApiClient:
|
|
|
85
85
|
self.default_headers[header_name] = header_value
|
|
86
86
|
self.cookie = cookie
|
|
87
87
|
# Set default User-Agent.
|
|
88
|
-
self.user_agent = "Wandelbots-Nova-API-Python-Client/26.6.0.
|
|
88
|
+
self.user_agent = "Wandelbots-Nova-API-Python-Client/26.6.0.dev36"
|
|
89
89
|
self.client_side_validation = configuration.client_side_validation
|
|
90
90
|
|
|
91
91
|
async def __aenter__(self):
|
|
@@ -512,7 +512,7 @@ class Configuration:
|
|
|
512
512
|
"OS: {env}\n"
|
|
513
513
|
"Python Version: {pyversion}\n"
|
|
514
514
|
"Version of the API: 2.6.0 dev\n"
|
|
515
|
-
"SDK Package Version: 26.6.0.
|
|
515
|
+
"SDK Package Version: 26.6.0.dev36".format(env=sys.platform, pyversion=sys.version)
|
|
516
516
|
)
|
|
517
517
|
|
|
518
518
|
def get_host_settings(self) -> List[HostSetting]:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2026-06-
|
|
2
|
+
# filename: tmplufo57rb
|
|
3
|
+
# timestamp: 2026-06-26T13:12:46+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -347,6 +347,7 @@ from .models import (
|
|
|
347
347
|
ProfinetIOs,
|
|
348
348
|
ProfinetInputOutputConfig,
|
|
349
349
|
ProfinetSlotDescription,
|
|
350
|
+
ProfinetSlotOffset,
|
|
350
351
|
ProfinetSubSlotDescription,
|
|
351
352
|
Program,
|
|
352
353
|
ProgramRun,
|
|
@@ -780,6 +781,7 @@ __all__ = [
|
|
|
780
781
|
"ProfinetIOs",
|
|
781
782
|
"ProfinetInputOutputConfig",
|
|
782
783
|
"ProfinetSlotDescription",
|
|
784
|
+
"ProfinetSlotOffset",
|
|
783
785
|
"ProfinetSubSlotDescription",
|
|
784
786
|
"Program",
|
|
785
787
|
"ProgramRun",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: models.yaml
|
|
3
|
-
# timestamp: 2026-06-
|
|
3
|
+
# timestamp: 2026-06-26T13:12:46+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
from pydantic import AnyUrl, AwareDatetime, BaseModel, EmailStr, Field, RootModel
|
|
@@ -182,6 +182,74 @@ class Manufacturer(Enum):
|
|
|
182
182
|
YASKAWA = "yaskawa"
|
|
183
183
|
|
|
184
184
|
|
|
185
|
+
class MotionGroupModel(RootModel[str]):
|
|
186
|
+
root: str = Field(
|
|
187
|
+
...,
|
|
188
|
+
examples=["ABB_1010_037_15", "FANUC_ARC_Mate_100iD", "KUKA_KR10_R1100", "UniversalRobots_UR10", "Yaskawa_AR1440"],
|
|
189
|
+
title="MotionGroupModel",
|
|
190
|
+
)
|
|
191
|
+
"""
|
|
192
|
+
Identifies a single motion group model.
|
|
193
|
+
See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types.
|
|
194
|
+
|
|
195
|
+
"""
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
class MotionGroupFromType(BaseModel):
|
|
199
|
+
motion_group: str
|
|
200
|
+
"""
|
|
201
|
+
Unique identifier for the motion group to be added.
|
|
202
|
+
"""
|
|
203
|
+
motion_group_model: MotionGroupModel
|
|
204
|
+
initial_joint_position: str | None = None
|
|
205
|
+
"""
|
|
206
|
+
Initial joint position of the added motion group.
|
|
207
|
+
Provides the joint position as a JSON array of float values in radians. The array length
|
|
208
|
+
must match the robot's degrees of freedom, e.g., `"[0, 0, 0, 0, 0, 0]"` for a 6-DOF robot.
|
|
209
|
+
If the provided array length does not match the robot's DOF, the array will be adjusted; if it is longer, extra values will be truncated;
|
|
210
|
+
if it is shorter, missing values will be filled with zeros.
|
|
211
|
+
|
|
212
|
+
"""
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
class MotionGroupFromJson(BaseModel):
|
|
216
|
+
motion_group: str
|
|
217
|
+
"""
|
|
218
|
+
Unique identifier for the motion group to be added.
|
|
219
|
+
"""
|
|
220
|
+
json_data: str
|
|
221
|
+
"""
|
|
222
|
+
JSON configuration of the virtual robot controller, can be obtained from the physical controller's configuration
|
|
223
|
+
via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration).
|
|
224
|
+
|
|
225
|
+
"""
|
|
226
|
+
extracted_motion_group_id: str
|
|
227
|
+
"""
|
|
228
|
+
The identifier of the motion group that needs to be extracted from the provided JSON configuration.
|
|
229
|
+
|
|
230
|
+
"""
|
|
231
|
+
initial_joint_position: str | None = None
|
|
232
|
+
"""
|
|
233
|
+
Initial joint position of the added motion group.
|
|
234
|
+
Provides the joint position as a JSON array of float values in radians. The array length
|
|
235
|
+
must match the robot's degrees of freedom, e.g., `"[0, 0, 0, 0, 0, 0]"` for a 6-DOF robot.
|
|
236
|
+
If the provided array length does not match the robot's DOF, the array will be adjusted: if it is longer, extra values will be truncated;
|
|
237
|
+
if it is shorter, missing values will be filled with zeros.
|
|
238
|
+
|
|
239
|
+
"""
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
class AddVirtualControllerMotionGroupRequest(RootModel[MotionGroupFromType | MotionGroupFromJson]):
|
|
243
|
+
root: MotionGroupFromType | MotionGroupFromJson = Field(..., title="AddVirtualControllerMotionGroupRequest")
|
|
244
|
+
"""
|
|
245
|
+
Request body wrapper for `addVirtualControllerMotionGroup`.
|
|
246
|
+
Allow either referencing a predefined motion group model or
|
|
247
|
+
uploading a JSON configuration that the backend converts into a
|
|
248
|
+
motion group description.
|
|
249
|
+
|
|
250
|
+
"""
|
|
251
|
+
|
|
252
|
+
|
|
185
253
|
class VirtualController(BaseModel):
|
|
186
254
|
"""
|
|
187
255
|
The configuration of a virtual robot controller has to contain the manufacturer string,
|
|
@@ -225,12 +293,28 @@ class VirtualController(BaseModel):
|
|
|
225
293
|
initial_joint_position: str | None = None
|
|
226
294
|
"""
|
|
227
295
|
Initial joint position of the first motion group from the virtual robot controller.
|
|
228
|
-
Provides the joint position as a JSON array of float values in radians
|
|
229
|
-
must match the robot's degrees of freedom
|
|
296
|
+
Provides the joint position as a JSON array of float values in radians. The array length
|
|
297
|
+
must match the robot's degrees of freedom, e.g., `"[0, 0, 0, 0, 0, 0]"` for a 6-DOF robot.
|
|
230
298
|
If the provided array length does not match the robot's DOF, the array will be adjusted: if it is longer, extra values will be truncated;
|
|
231
299
|
if it is shorter, missing values will be filled with zeros.
|
|
232
300
|
|
|
233
301
|
"""
|
|
302
|
+
motion_groups: list[AddVirtualControllerMotionGroupRequest] | None = Field(None, max_length=10)
|
|
303
|
+
"""
|
|
304
|
+
Adds a motion group configuration for the virtual robot controller.
|
|
305
|
+
|
|
306
|
+
> **NOTE**
|
|
307
|
+
>
|
|
308
|
+
> Set only one of the two options, **motion_group_model**, or **json_data**
|
|
309
|
+
|
|
310
|
+
- **motion_group_model**: Identifies a single motion group. See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types
|
|
311
|
+
- **json_data**: JSON configuration of the virtual robot controller, can be obtained from the physical controller's configuration
|
|
312
|
+
via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration)
|
|
313
|
+
- **extracted_motion_group_id**: Motion group identifier to extract from the provided JSON configuration, required when using json_data
|
|
314
|
+
- **motion_group**: Unique identifier for the motion group
|
|
315
|
+
- **initial_joint_position**: Specifies the initial joint position for the added motion group
|
|
316
|
+
|
|
317
|
+
"""
|
|
234
318
|
|
|
235
319
|
|
|
236
320
|
class YaskawaController(BaseModel):
|
|
@@ -383,7 +467,7 @@ class App(BaseModel):
|
|
|
383
467
|
name: str = Field(..., min_length=1, pattern="^[a-z][a-z0-9-]{0,61}[a-z0-9]$")
|
|
384
468
|
"""
|
|
385
469
|
The name of the provided application.
|
|
386
|
-
The name must be unique within the cell and is used as
|
|
470
|
+
The name must be unique within the cell and is used as an identifier for addressing the application in all API calls
|
|
387
471
|
, e.g., when updating the application.
|
|
388
472
|
|
|
389
473
|
It also defines where the application is reachable (/$cell/$name).
|
|
@@ -1184,19 +1268,6 @@ class MotionGroupModelDescription(BaseModel):
|
|
|
1184
1268
|
"""
|
|
1185
1269
|
|
|
1186
1270
|
|
|
1187
|
-
class MotionGroupModel(RootModel[str]):
|
|
1188
|
-
root: str = Field(
|
|
1189
|
-
...,
|
|
1190
|
-
examples=["ABB_1010_037_15", "FANUC_ARC_Mate_100iD", "KUKA_KR10_R1100", "UniversalRobots_UR10", "Yaskawa_AR1440"],
|
|
1191
|
-
title="MotionGroupModel",
|
|
1192
|
-
)
|
|
1193
|
-
"""
|
|
1194
|
-
Identifies a single motion group model.
|
|
1195
|
-
See [getMotionGroupModels](#/operations/getMotionGroupModels) for supported types.
|
|
1196
|
-
|
|
1197
|
-
"""
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
1271
|
class MotionGroupConfiguration(BaseModel):
|
|
1201
1272
|
"""
|
|
1202
1273
|
Response for motion group configuration lookup.
|
|
@@ -5882,61 +5953,6 @@ class MotionGroupInfos(RootModel[list[MotionGroupInfo]]):
|
|
|
5882
5953
|
return iter(self.root)
|
|
5883
5954
|
|
|
5884
5955
|
|
|
5885
|
-
class MotionGroupFromType(BaseModel):
|
|
5886
|
-
motion_group: str
|
|
5887
|
-
"""
|
|
5888
|
-
Unique identifier for the motion group to be added.
|
|
5889
|
-
"""
|
|
5890
|
-
motion_group_model: MotionGroupModel
|
|
5891
|
-
initial_joint_position: str | None = None
|
|
5892
|
-
"""
|
|
5893
|
-
Initial joint position of the added motion group.
|
|
5894
|
-
Provides the joint position as a JSON array of float values in radians, where the array length
|
|
5895
|
-
must match the robot's degrees of freedom (DOF), e.g., `"[0, 0, 0, 0, 0, 0]"` for a 6-DOF robot.
|
|
5896
|
-
If the provided array length does not match the robot's DOF, the array will be adjusted; if it is longer, extra values will be truncated;
|
|
5897
|
-
if it is shorter, missing values will be filled with zeros.
|
|
5898
|
-
|
|
5899
|
-
"""
|
|
5900
|
-
|
|
5901
|
-
|
|
5902
|
-
class MotionGroupFromJson(BaseModel):
|
|
5903
|
-
motion_group: str
|
|
5904
|
-
"""
|
|
5905
|
-
Unique identifier for the motion group to be added.
|
|
5906
|
-
"""
|
|
5907
|
-
json_data: str
|
|
5908
|
-
"""
|
|
5909
|
-
Full JSON configuration of the virtual robot controller.
|
|
5910
|
-
This can be obtained from the physical controller's configuration via [getVirtualControllerConfiguration](#/operations/getVirtualControllerConfiguration).
|
|
5911
|
-
|
|
5912
|
-
"""
|
|
5913
|
-
extracted_motion_group_id: str
|
|
5914
|
-
"""
|
|
5915
|
-
The identifier of the motion group that needs to be extracted from the provided JSON configuration.
|
|
5916
|
-
|
|
5917
|
-
"""
|
|
5918
|
-
initial_joint_position: str | None = None
|
|
5919
|
-
"""
|
|
5920
|
-
Initial joint position of the added motion group.
|
|
5921
|
-
Provides the joint position as a JSON array of float values in radians, where the array length
|
|
5922
|
-
must match the robot's degrees of freedom (DOF), e.g., `"[0, 0, 0, 0, 0, 0]"` for a 6-DOF robot.
|
|
5923
|
-
If the provided array length does not match the robot's DOF, the array will be adjusted: if it is longer, extra values will be truncated;
|
|
5924
|
-
if it is shorter, missing values will be filled with zeros.
|
|
5925
|
-
|
|
5926
|
-
"""
|
|
5927
|
-
|
|
5928
|
-
|
|
5929
|
-
class AddVirtualControllerMotionGroupRequest(RootModel[MotionGroupFromType | MotionGroupFromJson]):
|
|
5930
|
-
root: MotionGroupFromType | MotionGroupFromJson = Field(..., title="AddVirtualControllerMotionGroupRequest")
|
|
5931
|
-
"""
|
|
5932
|
-
Request body wrapper for `addVirtualControllerMotionGroup`.
|
|
5933
|
-
Allow callers to either reference a predefined motion group model or
|
|
5934
|
-
upload a full JSON configuration that the backend extracts into a
|
|
5935
|
-
motion group description.
|
|
5936
|
-
|
|
5937
|
-
"""
|
|
5938
|
-
|
|
5939
|
-
|
|
5940
5956
|
class SafetyGeometrySphere(BaseModel):
|
|
5941
5957
|
"""
|
|
5942
5958
|
Sphere shape defined by a center point and a radius.
|
|
@@ -6591,8 +6607,8 @@ class ProfinetIOData(BaseModel):
|
|
|
6591
6607
|
- Bytes 0-63: Slot 1
|
|
6592
6608
|
- Bytes 64-127: Slot 2
|
|
6593
6609
|
|
|
6594
|
-
When importing from a tag table, e.g., TIA Portal, use `
|
|
6595
|
-
to convert global PLC addresses to device-local addresses:
|
|
6610
|
+
When importing from a tag table, e.g., TIA Portal, use per-slot `offsets`
|
|
6611
|
+
(or the deprecated `input_offset`/`output_offset`) to convert global PLC addresses to device-local addresses:
|
|
6596
6612
|
`device_byte_address` = `plc_byte_address` - offset
|
|
6597
6613
|
|
|
6598
6614
|
"""
|
|
@@ -6649,6 +6665,28 @@ class ProfinetIOs(RootModel[list[ProfinetIO]]):
|
|
|
6649
6665
|
return iter(self.root)
|
|
6650
6666
|
|
|
6651
6667
|
|
|
6668
|
+
class ProfinetSlotOffset(BaseModel):
|
|
6669
|
+
slot: int = Field(..., examples=[1], ge=0, le=2147483647)
|
|
6670
|
+
"""
|
|
6671
|
+
The number/index of the PROFINET slot these offsets apply to.
|
|
6672
|
+
Per default, slot 0 is reserved for the device access point (DAP).
|
|
6673
|
+
Slots that are part of the cyclic input/output data exchange start at number 1.
|
|
6674
|
+
|
|
6675
|
+
"""
|
|
6676
|
+
input_offset: int = Field(0, examples=[100], ge=0, le=2147483647)
|
|
6677
|
+
"""
|
|
6678
|
+
This slot's offset in bytes for the addresses of input variables from the perspective of the controller.
|
|
6679
|
+
For imported tag tables, this offset is subtracted from the controller byte addresses.
|
|
6680
|
+
|
|
6681
|
+
"""
|
|
6682
|
+
output_offset: int = Field(0, examples=[800], ge=0, le=2147483647)
|
|
6683
|
+
"""
|
|
6684
|
+
This slot's offset in bytes for the addresses of output variables from the perspective of the controller.
|
|
6685
|
+
For imported tag tables, this offset is subtracted from the controller byte addresses.
|
|
6686
|
+
|
|
6687
|
+
"""
|
|
6688
|
+
|
|
6689
|
+
|
|
6652
6690
|
class ProfinetInputOutputConfig(BaseModel):
|
|
6653
6691
|
config: str = Field(
|
|
6654
6692
|
...,
|
|
@@ -6661,13 +6699,28 @@ class ProfinetInputOutputConfig(BaseModel):
|
|
|
6661
6699
|
The XML File has to be embedded as a string by escaping quotes, line breaks and so forth.
|
|
6662
6700
|
|
|
6663
6701
|
"""
|
|
6664
|
-
|
|
6702
|
+
offsets: list[ProfinetSlotOffset] | None = Field(
|
|
6703
|
+
None, examples=[[{"slot": 1, "input_offset": 100, "output_offset": 800}, {"slot": 2, "input_offset": 164, "output_offset": 864}]]
|
|
6704
|
+
)
|
|
6665
6705
|
"""
|
|
6666
|
-
|
|
6706
|
+
Per-slot offsets for translating controller addresses to PROFINET device-local byte addresses.
|
|
6707
|
+
Use this field for multi-slot devices.
|
|
6708
|
+
If omitted, the deprecated `input_offset` and `output_offset` fields are used for backward compatibility.
|
|
6709
|
+
|
|
6667
6710
|
"""
|
|
6668
|
-
|
|
6711
|
+
input_offset: int = Field(0, deprecated=True, examples=[100], ge=0, le=2147483647)
|
|
6669
6712
|
"""
|
|
6670
|
-
Offset in bytes for the
|
|
6713
|
+
Offset in bytes for the addresses of input variables from the perspective of the controller.
|
|
6714
|
+
This field is deprecated and replaced by `offsets` to support per-slot offsets.
|
|
6715
|
+
The offset is subtracted from the byte addresses of the sent XML content.
|
|
6716
|
+
|
|
6717
|
+
"""
|
|
6718
|
+
output_offset: int = Field(0, deprecated=True, examples=[800], ge=0, le=2147483647)
|
|
6719
|
+
"""
|
|
6720
|
+
Offset in bytes for the addresses of output variables from the perspective of the controller.
|
|
6721
|
+
This field is deprecated and replaced by `offsets` to support per-slot offsets.
|
|
6722
|
+
The offset is subtracted from the byte addresses of the sent XML content.
|
|
6723
|
+
|
|
6671
6724
|
"""
|
|
6672
6725
|
|
|
6673
6726
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wandelbots_api_client
|
|
3
|
-
Version: 26.6.0.
|
|
3
|
+
Version: 26.6.0.dev36
|
|
4
4
|
Summary: Wandelbots Python Client: Interact with robots in an easy and intuitive way.
|
|
5
5
|
Author: Copyright (c) 2025 Wandelbots GmbH
|
|
6
6
|
Author-email: Copyright (c) 2025 Wandelbots GmbH <contact@wandelbots.com>
|
|
@@ -31,7 +31,7 @@ Description-Content-Type: text/markdown
|
|
|
31
31
|
Interact with robots in an easy and intuitive way.
|
|
32
32
|
|
|
33
33
|
- Compatible API version: 1.6.0 dev (can be found at the home screen of your instance -> API)
|
|
34
|
-
- Package version: 26.6.0.
|
|
34
|
+
- Package version: 26.6.0.dev36
|
|
35
35
|
|
|
36
36
|
## Requirements.
|
|
37
37
|
Python >=3.11, Python < 4.0
|
{wandelbots_api_client-26.6.0.dev34.dist-info → wandelbots_api_client-26.6.0.dev36.dist-info}/RECORD
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
wandelbots_api_client/__init__.py,sha256=
|
|
1
|
+
wandelbots_api_client/__init__.py,sha256=BgJexXT_ypt8GY56zGOW1sZxEIYom0gby9hfjlp5850,1006
|
|
2
2
|
wandelbots_api_client/api/__init__.py,sha256=piFvcUqVadKhV50ReEqZToWDDC4g0frxtAfyafQlDkY,2187
|
|
3
3
|
wandelbots_api_client/api/application_api.py,sha256=-5DwphV1M6vjTIoLAnbCZQ0qMyhItyUOa34mBVwwy6k,69180
|
|
4
4
|
wandelbots_api_client/api/cell_api.py,sha256=tyIzo-u_9MYFugxzG1KVS8yu7lPLDmjNbjMI25bnavE,64318
|
|
@@ -28,10 +28,10 @@ wandelbots_api_client/api/virtual_robot_api.py,sha256=wJTD35wDNe_4yQSDDZclMJs35u
|
|
|
28
28
|
wandelbots_api_client/api/virtual_robot_behavior_api.py,sha256=bs-KPZ-3bVg_1_ue_8ZCpHPAPRTdaHpFCWcbxVKNcb0,32218
|
|
29
29
|
wandelbots_api_client/api/virtual_robot_mode_api.py,sha256=10-Uegk-HtigwJnAMPMDrhtkDOnZdh7ESJ0kD_nOXfo,72987
|
|
30
30
|
wandelbots_api_client/api/virtual_robot_setup_api.py,sha256=Twl6ZmHhHoa9-kBcVNV1TibwTErvBhIPTAVi_5eSil4,114644
|
|
31
|
-
wandelbots_api_client/api_client.py,sha256=
|
|
31
|
+
wandelbots_api_client/api_client.py,sha256=Y27OKhdI75VOlOuETOBN3iLkJ9-rdUgIKS2EJq39_W4,26427
|
|
32
32
|
wandelbots_api_client/api_response.py,sha256=WhxwYDSMm6wPixp9CegO8dJzjFxDz3JF1yCq9s0ZqKE,639
|
|
33
33
|
wandelbots_api_client/authorization.py,sha256=JERTe2xyuipN5rznFtCkfFVib1LeuUHroTRERYhEzYI,9405
|
|
34
|
-
wandelbots_api_client/configuration.py,sha256=
|
|
34
|
+
wandelbots_api_client/configuration.py,sha256=SKyjC956fHSHAWIANF9cnFK9hHblXfFR7OZTvvOyJSo,18044
|
|
35
35
|
wandelbots_api_client/exceptions.py,sha256=JycLLlMu4Vcf4EGkp_XQN5l53je8c24OYUvT4w86FxM,6393
|
|
36
36
|
wandelbots_api_client/models/__init__.py,sha256=LtudGp9PcPN_DoWK1SuIU0TfCX1BDosgsIhYvoZ7ZgY,23912
|
|
37
37
|
wandelbots_api_client/models/abb_controller.py,sha256=TAwe89bqD2wPPsr-Fu_ibV9AquDfI1UzlAns33P0RIs,4054
|
|
@@ -327,10 +327,10 @@ wandelbots_api_client/models/virtual_robot_configuration.py,sha256=FiYA1J2cx_fN_
|
|
|
327
327
|
wandelbots_api_client/models/yaskawa_controller.py,sha256=7JEYdmDPS-vaCCMB9036FuGszqZP0TivmVL7S1yf_dQ,3140
|
|
328
328
|
wandelbots_api_client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
329
329
|
wandelbots_api_client/rest.py,sha256=1dKCKmzslgorZRAC3aYw0_SA8lnuB2b-1nyBoORhoCc,7250
|
|
330
|
-
wandelbots_api_client/v2/__init__.py,sha256=
|
|
330
|
+
wandelbots_api_client/v2/__init__.py,sha256=0UqTIEmo2txCLJjMjKZ0FF_XhVfiDs27chsJkVIEq-I,1032
|
|
331
331
|
wandelbots_api_client/v2/api/__init__.py,sha256=P0yGp2xWLeEPi0maOq33OfqhAM3pyWPwtc5AJpdTp8Y,1967
|
|
332
332
|
wandelbots_api_client/v2/api/application_api.py,sha256=nVY1ZFCeazTJOou0UKhtAaFURbixCIFAl-AIAFvn4-8,69559
|
|
333
|
-
wandelbots_api_client/v2/api/bus_inputs_outputs_api.py,sha256=
|
|
333
|
+
wandelbots_api_client/v2/api/bus_inputs_outputs_api.py,sha256=3V_7OHnjzC0LnS-jAnEhb_Yv90TGnAP-egURffcUIcs,267414
|
|
334
334
|
wandelbots_api_client/v2/api/cell_api.py,sha256=LNF-C9mrwS7-FyCQ4wd7-IpbsJuUMitJ-wotCXiTNwY,98357
|
|
335
335
|
wandelbots_api_client/v2/api/controller_api.py,sha256=oMIaPzt3e1J96Kfs_OCimDWTf2aZGMUpnTOB9nBuczo,162803
|
|
336
336
|
wandelbots_api_client/v2/api/controller_inputs_outputs_api.py,sha256=xDVCv9n4Q-rJr1m7ISbucc_bck1zAaJJXWdM2N57ko4,61619
|
|
@@ -354,11 +354,11 @@ wandelbots_api_client/v2/api/version_api.py,sha256=1dAhtFz73CmB6F8fMOgsLGjCWq4w6
|
|
|
354
354
|
wandelbots_api_client/v2/api/virtual_controller_api.py,sha256=nQ_rkwRufKGKGHB3QIjm7i771tqKRJGlt8nGxWupMPI,291431
|
|
355
355
|
wandelbots_api_client/v2/api/virtual_controller_behavior_api.py,sha256=ByeJFFto88jrhAu8LpXAuHosXXIKpks5rSY8ZOWUdG4,41046
|
|
356
356
|
wandelbots_api_client/v2/api/virtual_controller_inputs_outputs_api.py,sha256=OcQg8mxoQqZLHpByvSY3iqWNLia8rsxlvdpwlc02wb0,42027
|
|
357
|
-
wandelbots_api_client/v2/api_client.py,sha256=
|
|
357
|
+
wandelbots_api_client/v2/api_client.py,sha256=5GutTeySJ_UbH1OA_AMmDAM82X3M4Bf_YDdBxlEMjW4,27803
|
|
358
358
|
wandelbots_api_client/v2/api_response.py,sha256=WhxwYDSMm6wPixp9CegO8dJzjFxDz3JF1yCq9s0ZqKE,639
|
|
359
|
-
wandelbots_api_client/v2/configuration.py,sha256=
|
|
359
|
+
wandelbots_api_client/v2/configuration.py,sha256=iSYCVMxa_7ilBkRTPMIn5OZm4xQ_LAI4wvtr1edU1S8,18047
|
|
360
360
|
wandelbots_api_client/v2/exceptions.py,sha256=7XIPwMCrxI3N-TgSYabwGXMOROXRQdrJA2wOpyaRC1A,6393
|
|
361
|
-
wandelbots_api_client/v2/models/__init__.py,sha256=
|
|
361
|
+
wandelbots_api_client/v2/models/__init__.py,sha256=dy4y6VNcCHGWUDaVkI1Ca4BCgxOb7j7byoFm6zfSiio,36411
|
|
362
362
|
wandelbots_api_client/v2/models/abb_confdata.py,sha256=lXK9rOsDRyCc2urbmVISftopF5LEbANjZ1R-1jXeLNg,3378
|
|
363
363
|
wandelbots_api_client/v2/models/abb_configured_pose.py,sha256=Lg-eaUD80RzyQRshY3vm5BIq3_qFPZdz3kQk0ue9w_w,3144
|
|
364
364
|
wandelbots_api_client/v2/models/abb_controller.py,sha256=P7QY_bKvz5fbW_nub4o2yROATVzb8xNr4cBetw5reSk,3741
|
|
@@ -369,9 +369,9 @@ wandelbots_api_client/v2/models/add_trajectory_error.py,sha256=4ZZNgmkVjrCXUyqmo
|
|
|
369
369
|
wandelbots_api_client/v2/models/add_trajectory_error_data.py,sha256=yBwEjh44aaCSsfT-8BX0Dn8S8IYeLKURQ2-lkgKt0_Q,12037
|
|
370
370
|
wandelbots_api_client/v2/models/add_trajectory_request.py,sha256=v1AkFMCRtyps9TZIJATZPgezaDjdNrE5subG013_08c,3340
|
|
371
371
|
wandelbots_api_client/v2/models/add_trajectory_response.py,sha256=nLQ5NJ8Wa4mYHTmcVn26mMaN7vu-RNl9HF0XUYV71Zc,4107
|
|
372
|
-
wandelbots_api_client/v2/models/add_virtual_controller_motion_group_request.py,sha256=
|
|
372
|
+
wandelbots_api_client/v2/models/add_virtual_controller_motion_group_request.py,sha256=oNPZMJ0nbKEh33m7qS8SR3MZ61_h7h4QQSOTZNC2Hq0,5992
|
|
373
373
|
wandelbots_api_client/v2/models/api_version.py,sha256=GSg2sjNUXrPsfKYW9qESM_uOj_yS4RjMKp7aAlMzmh8,2434
|
|
374
|
-
wandelbots_api_client/v2/models/app.py,sha256=
|
|
374
|
+
wandelbots_api_client/v2/models/app.py,sha256=Kf4_xcKsqXDfZ4-GuHCPMJwKKH4X-7ZrSqHu-ApEWYI,7401
|
|
375
375
|
wandelbots_api_client/v2/models/axis_range.py,sha256=_NFRBYPhK6f9sbQ3OkYiYPpBGXuqTHwGHc0ypElZIBs,2852
|
|
376
376
|
wandelbots_api_client/v2/models/behavior.py,sha256=aT7Zk899s7cTeA0kbBW94Mm6c1tvz0kPctHC_1WR_NU,1760
|
|
377
377
|
wandelbots_api_client/v2/models/blending_auto.py,sha256=2z9xoc8xJHOcu7bMejDKFEGZ_XaEJCBhSI0KpT_YWDc,3350
|
|
@@ -601,8 +601,8 @@ wandelbots_api_client/v2/models/motion_command_blending.py,sha256=OagbqpBKZIngWk
|
|
|
601
601
|
wandelbots_api_client/v2/models/motion_command_path.py,sha256=qw5dxdoD_SIBGjZT_cYn4kCjYb144fwICSdKfnPC7wg,11990
|
|
602
602
|
wandelbots_api_client/v2/models/motion_group_configuration.py,sha256=jUrLoRAFpJqCrsQla-OjwEqWzmMQejKHPhT8EPOgiJY,3333
|
|
603
603
|
wandelbots_api_client/v2/models/motion_group_description.py,sha256=c20KRlvuBgTBAzeYs8kZEmy_unaS-h9PP4KtpCV4cKs,12906
|
|
604
|
-
wandelbots_api_client/v2/models/motion_group_from_json.py,sha256=
|
|
605
|
-
wandelbots_api_client/v2/models/motion_group_from_type.py,sha256=
|
|
604
|
+
wandelbots_api_client/v2/models/motion_group_from_json.py,sha256=2a6Qbl1Xz1GC6oWBWrqpP91cuHeSS253GpGL6UZdocs,3843
|
|
605
|
+
wandelbots_api_client/v2/models/motion_group_from_type.py,sha256=ebph-vm7XwrPohFqq_pgMHWWPtB7QcnTT1RtB-7GG_4,3509
|
|
606
606
|
wandelbots_api_client/v2/models/motion_group_info.py,sha256=19eCUMmVa-MP3xlaG-PzTc1AiHaprd-29I6CBtXprRw,2926
|
|
607
607
|
wandelbots_api_client/v2/models/motion_group_joints.py,sha256=e9UjESBc6j_sXqzIMFb8bVHZ4y-yTU-9wJ9RNC11CTM,3394
|
|
608
608
|
wandelbots_api_client/v2/models/motion_group_model_description.py,sha256=9C5oRCJnToIdzy9TAVQFXhY1NdY8jnD_0ItCc363ebo,3182
|
|
@@ -664,12 +664,13 @@ wandelbots_api_client/v2/models/pose_waypoint.py,sha256=l8EW-HerSCc21sI9kuaS2yoq
|
|
|
664
664
|
wandelbots_api_client/v2/models/pose_waypoints_request.py,sha256=wUACg_Jw5mPt5QKrEAt446DdGYOUhUL6YmN2tKNbZZA,4129
|
|
665
665
|
wandelbots_api_client/v2/models/pose_waypoints_response.py,sha256=MfoepIztvujmRgp7ShYPCQzIT97PiajWnKyer3WYtUo,2902
|
|
666
666
|
wandelbots_api_client/v2/models/profinet_description.py,sha256=l2BAa64K7pKkrrEmES7MMrTm4mivIR_J-oo__kuPvGM,4346
|
|
667
|
-
wandelbots_api_client/v2/models/profinet_input_output_config.py,sha256=
|
|
668
|
-
wandelbots_api_client/v2/models/profinet_io.py,sha256=
|
|
669
|
-
wandelbots_api_client/v2/models/profinet_io_data.py,sha256=
|
|
667
|
+
wandelbots_api_client/v2/models/profinet_input_output_config.py,sha256=mG7OvtYDqHxemTA6HqUvVbiutRU5KAiNXxMz3RCydWk,4668
|
|
668
|
+
wandelbots_api_client/v2/models/profinet_io.py,sha256=CDhb0HiCNycdb8L-CMzMAVfsc6hTb0U2G2EQPHmPxqQ,4486
|
|
669
|
+
wandelbots_api_client/v2/models/profinet_io_data.py,sha256=2bfupZwvekC3Rlt_s7FnHaRjdzEGekpNBbrq2-oeapg,4226
|
|
670
670
|
wandelbots_api_client/v2/models/profinet_io_direction.py,sha256=TVmv7_FFbyVlfQYCYVnvZawz9klogGXjsZwKyaNwd8o,981
|
|
671
671
|
wandelbots_api_client/v2/models/profinet_io_type_enum.py,sha256=6NIVhjyI1FxQa2XYzrj05He-ftkIcTx9kxA0tYuzjeA,1276
|
|
672
672
|
wandelbots_api_client/v2/models/profinet_slot_description.py,sha256=O_eR16-TiMuOk8U1e9w6DqdF4EeTsb9uxzzwpuhMGus,4344
|
|
673
|
+
wandelbots_api_client/v2/models/profinet_slot_offset.py,sha256=oaVil37VWX9FQGxwdPeM1t4gmC2p_1uYQGk8ALnPe_M,3634
|
|
673
674
|
wandelbots_api_client/v2/models/profinet_sub_slot_description.py,sha256=fIMpmKvPuSpkrVQCGeiP_woCZGpOTJKJEmXqPDvMTZg,3115
|
|
674
675
|
wandelbots_api_client/v2/models/program.py,sha256=il2MNLh7_1qPr2P1tAxeP9swBmFrYoyLQKkPMwBIigE,3436
|
|
675
676
|
wandelbots_api_client/v2/models/program_run.py,sha256=YXMrkZc9f3mPj1tMtSJ9yvflfPpnGXpqmmQPn2OOUZU,4469
|
|
@@ -750,7 +751,7 @@ wandelbots_api_client/v2/models/update_nova_version_request.py,sha256=Ud4caP7pki
|
|
|
750
751
|
wandelbots_api_client/v2/models/user.py,sha256=VFWqbqojbO9chOLy9GplTbF4-33XbsjbJ3FOzmkZRAA,2819
|
|
751
752
|
wandelbots_api_client/v2/models/validation_error.py,sha256=75BIzg8BvvAyiV4hSXxg-7we9WxWEzVKnsQe6D4n2YE,3119
|
|
752
753
|
wandelbots_api_client/v2/models/validation_error2.py,sha256=DsUSXwFuMgD_ALT4tENHQg0yWnz6Al0n7ovAO_Dc0VY,2523
|
|
753
|
-
wandelbots_api_client/v2/models/virtual_controller.py,sha256=
|
|
754
|
+
wandelbots_api_client/v2/models/virtual_controller.py,sha256=B4mPkKx4-lVgnT7HFlK0-nUBh3VqaHHAw1tXiwL45is,6211
|
|
754
755
|
wandelbots_api_client/v2/models/virtual_robot_configuration.py,sha256=YT0CMFyiyg7OrIVpIbm9x6oHFlsy1EiVKSNWss91YOY,2817
|
|
755
756
|
wandelbots_api_client/v2/models/wait_for_io_event_request.py,sha256=-etzsegz0Y-yZt58hmmXhcd8BUAbEoVEoVbGlMIzm_g,3065
|
|
756
757
|
wandelbots_api_client/v2/models/yaskawa_controller.py,sha256=vNtXL8T3-KADzU1__0YWJ7_9QikLML4VFsbv2nz3owU,2843
|
|
@@ -760,10 +761,10 @@ wandelbots_api_client/v2/models/zod_validation_error_error_details_inner.py,sha2
|
|
|
760
761
|
wandelbots_api_client/v2/models/zod_validation_error_error_details_inner_path_inner.py,sha256=BJFV1ZqYKcQauiUfZ10UhbRxVhOL0DjQyHzHhlQ-hUA,5652
|
|
761
762
|
wandelbots_api_client/v2/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
762
763
|
wandelbots_api_client/v2/rest.py,sha256=pzalGbo_80nNBxbupQKYjZjOpOgPbYrEJtCfm236vL4,7253
|
|
763
|
-
wandelbots_api_client/v2_pydantic/__init__.py,sha256=
|
|
764
|
+
wandelbots_api_client/v2_pydantic/__init__.py,sha256=OAe_xLM4NSXP9wMaEZrTqrGoVzY6gY61OTa0IQUTxoE,1041
|
|
764
765
|
wandelbots_api_client/v2_pydantic/api/__init__.py,sha256=P0yGp2xWLeEPi0maOq33OfqhAM3pyWPwtc5AJpdTp8Y,1967
|
|
765
766
|
wandelbots_api_client/v2_pydantic/api/application_api.py,sha256=vU-xA4SdVSJuXu7EAO7tTK9yJjSkMR1Y5_76RZdBp-E,69591
|
|
766
|
-
wandelbots_api_client/v2_pydantic/api/bus_inputs_outputs_api.py,sha256=
|
|
767
|
+
wandelbots_api_client/v2_pydantic/api/bus_inputs_outputs_api.py,sha256=CKmqk0PsMcT0Cp-2zEQDIS65dTWJJonJ83vkCAWEjn8,267356
|
|
767
768
|
wandelbots_api_client/v2_pydantic/api/cell_api.py,sha256=KzWiJ_n_mTiwLcPNFADSRCmfwvohyEiYvtxb4413O2c,98340
|
|
768
769
|
wandelbots_api_client/v2_pydantic/api/controller_api.py,sha256=b8_tWpqOSn_9jZj8hWRvwkxPcKZinyCSw5rQFLE5-Y4,162740
|
|
769
770
|
wandelbots_api_client/v2_pydantic/api/controller_inputs_outputs_api.py,sha256=0XVnWUZedSIj2mIqCiukJYL-CqYoMYfK9QPbBWJ3aCs,61597
|
|
@@ -787,14 +788,14 @@ wandelbots_api_client/v2_pydantic/api/version_api.py,sha256=TTJwo3cWTBgxpeDO2S-S
|
|
|
787
788
|
wandelbots_api_client/v2_pydantic/api/virtual_controller_api.py,sha256=rdrD4YOLnKKg_ILuzc37Ku_VMMJh2MUsR2a8frZraXc,291365
|
|
788
789
|
wandelbots_api_client/v2_pydantic/api/virtual_controller_behavior_api.py,sha256=3mNzqQUb8JM_E7iZ4MJGg7rnEGdL9VFFqjLlrMa6bss,41027
|
|
789
790
|
wandelbots_api_client/v2_pydantic/api/virtual_controller_inputs_outputs_api.py,sha256=LItWYQPUCu8mh2XAA9gOudhYTNMzIjtzY1ijXoV4w2E,42039
|
|
790
|
-
wandelbots_api_client/v2_pydantic/api_client.py,sha256=
|
|
791
|
+
wandelbots_api_client/v2_pydantic/api_client.py,sha256=NUEk_PkCr-EdTP2PWM6uMdgcZkWtp8qHbdnasIjd2Io,27857
|
|
791
792
|
wandelbots_api_client/v2_pydantic/api_response.py,sha256=WhxwYDSMm6wPixp9CegO8dJzjFxDz3JF1yCq9s0ZqKE,639
|
|
792
|
-
wandelbots_api_client/v2_pydantic/configuration.py,sha256=
|
|
793
|
+
wandelbots_api_client/v2_pydantic/configuration.py,sha256=E4BJzedzJdDEPIaeI_m30mtc9h9pvTTAXpXF5a4hOJc,18056
|
|
793
794
|
wandelbots_api_client/v2_pydantic/exceptions.py,sha256=7XIPwMCrxI3N-TgSYabwGXMOROXRQdrJA2wOpyaRC1A,6393
|
|
794
|
-
wandelbots_api_client/v2_pydantic/models/__init__.py,sha256=
|
|
795
|
-
wandelbots_api_client/v2_pydantic/models/models.py,sha256=
|
|
795
|
+
wandelbots_api_client/v2_pydantic/models/__init__.py,sha256=gflmYOF-E0LVQOAqcHiGb1GpifDZ0n7HBqPr7iUBA0s,22337
|
|
796
|
+
wandelbots_api_client/v2_pydantic/models/models.py,sha256=ifk2xGZEvCdfrRkJrhvlucnwQjMckf71PDi-ITKGL5c,208356
|
|
796
797
|
wandelbots_api_client/v2_pydantic/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
797
798
|
wandelbots_api_client/v2_pydantic/rest.py,sha256=EDM0lK-GKehCIR2PgMyO_5a5MGlOHws5c7Ue3j0FeSc,7262
|
|
798
|
-
wandelbots_api_client-26.6.0.
|
|
799
|
-
wandelbots_api_client-26.6.0.
|
|
800
|
-
wandelbots_api_client-26.6.0.
|
|
799
|
+
wandelbots_api_client-26.6.0.dev36.dist-info/WHEEL,sha256=WvwXFgRajeoYkfRVmDhkP4Qlqo31Mk687zIO2QQoFmw,80
|
|
800
|
+
wandelbots_api_client-26.6.0.dev36.dist-info/METADATA,sha256=nr99iA8KaWN4gS2E5dtmheabqwleoCADDZnBXMSI6_A,7693
|
|
801
|
+
wandelbots_api_client-26.6.0.dev36.dist-info/RECORD,,
|
{wandelbots_api_client-26.6.0.dev34.dist-info → wandelbots_api_client-26.6.0.dev36.dist-info}/WHEEL
RENAMED
|
File without changes
|