Skip to content

Commit

Permalink
Update api spec (#256)
Browse files Browse the repository at this point in the history
* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • Loading branch information
1 parent 48de213 commit d724c8e
Show file tree
Hide file tree
Showing 25 changed files with 2,564 additions and 1,643 deletions.
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

0 comments on commit d724c8e

Please sign in to comment.