Files
kittycad.py/kittycad/api/modeling/cmd.py
Jess Frazelle 8162fa1964 Update api spec (#127)
* YOYO NEW API SPEC!

* bump version

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* some fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes #128

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* mypy fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-30 15:59:51 -07:00

473 lines
13 KiB
Python

from typing import Any, Dict, Optional, Union
import httpx
from ...client import Client
from ...models.curve_get_control_points import CurveGetControlPoints
from ...models.curve_get_type import CurveGetType
from ...models.empty import Empty
from ...models.entity_get_all_child_uuids import EntityGetAllChildUuids
from ...models.entity_get_child_uuid import EntityGetChildUuid
from ...models.entity_get_num_children import EntityGetNumChildren
from ...models.entity_get_parent_id import EntityGetParentId
from ...models.error import Error
from ...models.export import Export
from ...models.get_entity_type import GetEntityType
from ...models.highlight_set_entity import HighlightSetEntity
from ...models.modeling_cmd_req import ModelingCmdReq
from ...models.mouse_click import MouseClick
from ...models.path_get_info import PathGetInfo
from ...models.select_get import SelectGet
from ...models.select_with_point import SelectWithPoint
from ...models.solid3d_get_all_edge_faces import Solid3dGetAllEdgeFaces
from ...models.solid3d_get_all_opposite_edges import Solid3dGetAllOppositeEdges
from ...models.solid3d_get_next_adjacent_edge import Solid3dGetNextAdjacentEdge
from ...models.solid3d_get_opposite_edge import Solid3dGetOppositeEdge
from ...models.solid3d_get_prev_adjacent_edge import Solid3dGetPrevAdjacentEdge
from ...models.take_snapshot import TakeSnapshot
from ...types import Response
def _get_kwargs(
body: ModelingCmdReq,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/modeling/cmd".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
return {
"url": url,
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
"content": body,
}
def _parse_response(
*, response: httpx.Response
) -> Optional[
Union[
Empty,
Export,
SelectWithPoint,
HighlightSetEntity,
EntityGetChildUuid,
EntityGetNumChildren,
EntityGetParentId,
EntityGetAllChildUuids,
SelectGet,
GetEntityType,
Solid3dGetAllEdgeFaces,
Solid3dGetAllOppositeEdges,
Solid3dGetOppositeEdge,
Solid3dGetPrevAdjacentEdge,
Solid3dGetNextAdjacentEdge,
MouseClick,
CurveGetType,
CurveGetControlPoints,
TakeSnapshot,
PathGetInfo,
Error,
]
]:
if response.status_code == 200:
data = response.json()
try:
if not isinstance(data, dict):
raise TypeError()
option_empty = Empty.from_dict(data)
return option_empty
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_export = Export.from_dict(data)
return option_export
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_select_with_point = SelectWithPoint.from_dict(data)
return option_select_with_point
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_highlight_set_entity = HighlightSetEntity.from_dict(data)
return option_highlight_set_entity
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_entity_get_child_uuid = EntityGetChildUuid.from_dict(data)
return option_entity_get_child_uuid
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_entity_get_num_children = EntityGetNumChildren.from_dict(data)
return option_entity_get_num_children
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_entity_get_parent_id = EntityGetParentId.from_dict(data)
return option_entity_get_parent_id
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_entity_get_all_child_uuids = EntityGetAllChildUuids.from_dict(data)
return option_entity_get_all_child_uuids
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_select_get = SelectGet.from_dict(data)
return option_select_get
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_get_entity_type = GetEntityType.from_dict(data)
return option_get_entity_type
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_solid3d_get_all_edge_faces = Solid3dGetAllEdgeFaces.from_dict(data)
return option_solid3d_get_all_edge_faces
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_solid3d_get_all_opposite_edges = (
Solid3dGetAllOppositeEdges.from_dict(data)
)
return option_solid3d_get_all_opposite_edges
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_solid3d_get_opposite_edge = Solid3dGetOppositeEdge.from_dict(data)
return option_solid3d_get_opposite_edge
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_solid3d_get_prev_adjacent_edge = (
Solid3dGetPrevAdjacentEdge.from_dict(data)
)
return option_solid3d_get_prev_adjacent_edge
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_solid3d_get_next_adjacent_edge = (
Solid3dGetNextAdjacentEdge.from_dict(data)
)
return option_solid3d_get_next_adjacent_edge
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_mouse_click = MouseClick.from_dict(data)
return option_mouse_click
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_curve_get_type = CurveGetType.from_dict(data)
return option_curve_get_type
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_curve_get_control_points = CurveGetControlPoints.from_dict(data)
return option_curve_get_control_points
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_take_snapshot = TakeSnapshot.from_dict(data)
return option_take_snapshot
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_path_get_info = PathGetInfo.from_dict(data)
return option_path_get_info
except ValueError:
raise
except TypeError:
raise
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
return response_5XX
return Error.from_dict(response.json())
def _build_response(
*, response: httpx.Response
) -> Response[
Optional[
Union[
Empty,
Export,
SelectWithPoint,
HighlightSetEntity,
EntityGetChildUuid,
EntityGetNumChildren,
EntityGetParentId,
EntityGetAllChildUuids,
SelectGet,
GetEntityType,
Solid3dGetAllEdgeFaces,
Solid3dGetAllOppositeEdges,
Solid3dGetOppositeEdge,
Solid3dGetPrevAdjacentEdge,
Solid3dGetNextAdjacentEdge,
MouseClick,
CurveGetType,
CurveGetControlPoints,
TakeSnapshot,
PathGetInfo,
Error,
]
]
]:
return Response(
status_code=response.status_code,
content=response.content,
headers=response.headers,
parsed=_parse_response(response=response),
)
def sync_detailed(
body: ModelingCmdReq,
*,
client: Client,
) -> Response[
Optional[
Union[
Empty,
Export,
SelectWithPoint,
HighlightSetEntity,
EntityGetChildUuid,
EntityGetNumChildren,
EntityGetParentId,
EntityGetAllChildUuids,
SelectGet,
GetEntityType,
Solid3dGetAllEdgeFaces,
Solid3dGetAllOppositeEdges,
Solid3dGetOppositeEdge,
Solid3dGetPrevAdjacentEdge,
Solid3dGetNextAdjacentEdge,
MouseClick,
CurveGetType,
CurveGetControlPoints,
TakeSnapshot,
PathGetInfo,
Error,
]
]
]:
kwargs = _get_kwargs(
body=body,
client=client,
)
response = httpx.post(
verify=client.verify_ssl,
**kwargs,
)
return _build_response(response=response)
def sync(
body: ModelingCmdReq,
*,
client: Client,
) -> Optional[
Union[
Empty,
Export,
SelectWithPoint,
HighlightSetEntity,
EntityGetChildUuid,
EntityGetNumChildren,
EntityGetParentId,
EntityGetAllChildUuids,
SelectGet,
GetEntityType,
Solid3dGetAllEdgeFaces,
Solid3dGetAllOppositeEdges,
Solid3dGetOppositeEdge,
Solid3dGetPrevAdjacentEdge,
Solid3dGetNextAdjacentEdge,
MouseClick,
CurveGetType,
CurveGetControlPoints,
TakeSnapshot,
PathGetInfo,
Error,
]
]:
"""Response depends on which command was submitted, so unfortunately the OpenAPI schema can't generate the right response type.""" # noqa: E501
return sync_detailed(
body=body,
client=client,
).parsed
async def asyncio_detailed(
body: ModelingCmdReq,
*,
client: Client,
) -> Response[
Optional[
Union[
Empty,
Export,
SelectWithPoint,
HighlightSetEntity,
EntityGetChildUuid,
EntityGetNumChildren,
EntityGetParentId,
EntityGetAllChildUuids,
SelectGet,
GetEntityType,
Solid3dGetAllEdgeFaces,
Solid3dGetAllOppositeEdges,
Solid3dGetOppositeEdge,
Solid3dGetPrevAdjacentEdge,
Solid3dGetNextAdjacentEdge,
MouseClick,
CurveGetType,
CurveGetControlPoints,
TakeSnapshot,
PathGetInfo,
Error,
]
]
]:
kwargs = _get_kwargs(
body=body,
client=client,
)
async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
response = await _client.post(**kwargs)
return _build_response(response=response)
async def asyncio(
body: ModelingCmdReq,
*,
client: Client,
) -> Optional[
Union[
Empty,
Export,
SelectWithPoint,
HighlightSetEntity,
EntityGetChildUuid,
EntityGetNumChildren,
EntityGetParentId,
EntityGetAllChildUuids,
SelectGet,
GetEntityType,
Solid3dGetAllEdgeFaces,
Solid3dGetAllOppositeEdges,
Solid3dGetOppositeEdge,
Solid3dGetPrevAdjacentEdge,
Solid3dGetNextAdjacentEdge,
MouseClick,
CurveGetType,
CurveGetControlPoints,
TakeSnapshot,
PathGetInfo,
Error,
]
]:
"""Response depends on which command was submitted, so unfortunately the OpenAPI schema can't generate the right response type.""" # noqa: E501
return (
await asyncio_detailed(
body=body,
client=client,
)
).parsed