Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update api spec #256

Merged
merged 2 commits into from
Aug 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
766 changes: 387 additions & 379 deletions kittycad.py.patch.json

Large diffs are not rendered by default.

16 changes: 16 additions & 0 deletions kittycad/api/api_calls/get_async_operation.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
from ...models.file_surface_area import FileSurfaceArea
from ...models.file_volume import FileVolume
from ...models.text_to_cad import TextToCad
from ...models.text_to_cad_iteration import TextToCadIteration
from ...types import Response


Expand Down Expand Up @@ -44,6 +45,7 @@ def _parse_response(*, response: httpx.Response) -> Optional[
FileDensity,
FileSurfaceArea,
TextToCad,
TextToCadIteration,
Error,
]
]:
Expand Down Expand Up @@ -108,6 +110,15 @@ def _parse_response(*, response: httpx.Response) -> Optional[
raise TypeError()
option_text_to_cad = TextToCad(**data)
return option_text_to_cad
except ValueError:
pass
except TypeError:
pass
try:
if not isinstance(data, dict):
raise TypeError()
option_text_to_cad_iteration = TextToCadIteration(**data)
return option_text_to_cad_iteration
except ValueError:
raise
except TypeError:
Expand All @@ -131,6 +142,7 @@ def _build_response(*, response: httpx.Response) -> Response[
FileDensity,
FileSurfaceArea,
TextToCad,
TextToCadIteration,
Error,
]
]
Expand All @@ -157,6 +169,7 @@ def sync_detailed(
FileDensity,
FileSurfaceArea,
TextToCad,
TextToCadIteration,
Error,
]
]
Expand Down Expand Up @@ -187,6 +200,7 @@ def sync(
FileDensity,
FileSurfaceArea,
TextToCad,
TextToCadIteration,
Error,
]
]:
Expand Down Expand Up @@ -216,6 +230,7 @@ async def asyncio_detailed(
FileDensity,
FileSurfaceArea,
TextToCad,
TextToCadIteration,
Error,
]
]
Expand Down Expand Up @@ -244,6 +259,7 @@ async def asyncio(
FileDensity,
FileSurfaceArea,
TextToCad,
TextToCadIteration,
Error,
]
]:
Expand Down
2 changes: 1 addition & 1 deletion kittycad/api/ml/create_kcl_code_completions.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/ai/kcl/completions".format(
url = "{}/ml/kcl/completions".format(
client.base_url,
) # noqa: E501

Expand Down
118 changes: 118 additions & 0 deletions kittycad/api/ml/create_text_to_cad_iteration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
from typing import Any, Dict, Optional, Union

import httpx

from ...client import Client
from ...models.error import Error
from ...models.text_to_cad_iteration import TextToCadIteration
from ...models.text_to_cad_iteration_body import TextToCadIterationBody
from ...types import Response


def _get_kwargs(
body: TextToCadIterationBody,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/ml/text-to-cad/iteration".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.model_dump_json(),
}


def _parse_response(
*, response: httpx.Response
) -> Optional[Union[TextToCadIteration, Error]]:
if response.status_code == 201:
response_201 = TextToCadIteration(**response.json())
return response_201
if response.status_code == 400:
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error(**response.json())
return response_5XX
return Error(**response.json())


def _build_response(
*, response: httpx.Response
) -> Response[Optional[Union[TextToCadIteration, Error]]]:
return Response(
status_code=response.status_code,
content=response.content,
headers=response.headers,
parsed=_parse_response(response=response),
)


def sync_detailed(
body: TextToCadIterationBody,
*,
client: Client,
) -> Response[Optional[Union[TextToCadIteration, Error]]]:
kwargs = _get_kwargs(
body=body,
client=client,
)

response = httpx.post(
verify=client.verify_ssl,
**kwargs,
)

return _build_response(response=response)


def sync(
body: TextToCadIterationBody,
*,
client: Client,
) -> Optional[Union[TextToCadIteration, Error]]:
"""This operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint.""" # noqa: E501

return sync_detailed(
body=body,
client=client,
).parsed


async def asyncio_detailed(
body: TextToCadIterationBody,
*,
client: Client,
) -> Response[Optional[Union[TextToCadIteration, 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: TextToCadIterationBody,
*,
client: Client,
) -> Optional[Union[TextToCadIteration, Error]]:
"""This operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint.""" # noqa: E501

return (
await asyncio_detailed(
body=body,
client=client,
)
).parsed
12 changes: 6 additions & 6 deletions kittycad/api/ml/create_text_to_cad_model_feedback.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
import httpx

from ...client import Client
from ...models.ai_feedback import AiFeedback
from ...models.error import Error
from ...models.ml_feedback import MlFeedback
from ...types import Response


def _get_kwargs(
id: str,
feedback: AiFeedback,
feedback: MlFeedback,
*,
client: Client,
) -> Dict[str, Any]:
Expand Down Expand Up @@ -59,7 +59,7 @@ def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:

def sync_detailed(
id: str,
feedback: AiFeedback,
feedback: MlFeedback,
*,
client: Client,
) -> Response[Optional[Error]]:
Expand All @@ -79,7 +79,7 @@ def sync_detailed(

def sync(
id: str,
feedback: AiFeedback,
feedback: MlFeedback,
*,
client: Client,
) -> Optional[Error]:
Expand All @@ -94,7 +94,7 @@ def sync(

async def asyncio_detailed(
id: str,
feedback: AiFeedback,
feedback: MlFeedback,
*,
client: Client,
) -> Response[Optional[Error]]:
Expand All @@ -112,7 +112,7 @@ async def asyncio_detailed(

async def asyncio(
id: str,
feedback: AiFeedback,
feedback: MlFeedback,
*,
client: Client,
) -> Optional[Error]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import httpx

from ...client import Client
from ...models.ai_prompt import AiPrompt
from ...models.error import Error
from ...models.ml_prompt import MlPrompt
from ...types import Response


Expand All @@ -13,7 +13,7 @@ def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/ai-prompts/{id}".format(
url = "{}/ml-prompts/{id}".format(
client.base_url,
id=id,
) # noqa: E501
Expand All @@ -29,9 +29,9 @@ def _get_kwargs(
}


def _parse_response(*, response: httpx.Response) -> Optional[Union[AiPrompt, Error]]:
def _parse_response(*, response: httpx.Response) -> Optional[Union[MlPrompt, Error]]:
if response.status_code == 200:
response_200 = AiPrompt(**response.json())
response_200 = MlPrompt(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error(**response.json())
Expand All @@ -44,7 +44,7 @@ def _parse_response(*, response: httpx.Response) -> Optional[Union[AiPrompt, Err

def _build_response(
*, response: httpx.Response
) -> Response[Optional[Union[AiPrompt, Error]]]:
) -> Response[Optional[Union[MlPrompt, Error]]]:
return Response(
status_code=response.status_code,
content=response.content,
Expand All @@ -57,7 +57,7 @@ def sync_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[AiPrompt, Error]]]:
) -> Response[Optional[Union[MlPrompt, Error]]]:
kwargs = _get_kwargs(
id=id,
client=client,
Expand All @@ -75,7 +75,7 @@ def sync(
id: str,
*,
client: Client,
) -> Optional[Union[AiPrompt, Error]]:
) -> Optional[Union[MlPrompt, Error]]:
"""This endpoint requires authentication by a Zoo employee.""" # noqa: E501

return sync_detailed(
Expand All @@ -88,7 +88,7 @@ async def asyncio_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[AiPrompt, Error]]]:
) -> Response[Optional[Union[MlPrompt, Error]]]:
kwargs = _get_kwargs(
id=id,
client=client,
Expand All @@ -104,7 +104,7 @@ async def asyncio(
id: str,
*,
client: Client,
) -> Optional[Union[AiPrompt, Error]]:
) -> Optional[Union[MlPrompt, Error]]:
"""This endpoint requires authentication by a Zoo employee.""" # noqa: E501

return (
Expand Down
Loading