Compare commits

..

17 Commits

Author SHA1 Message Date
d5dbeadda3 fix
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-11-29 10:33:22 -08:00
ed36086040 working samples
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-11-29 10:32:31 -08:00
9f8069decb one working
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-11-29 09:04:49 -08:00
faaeb3a472 pydantic
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-11-29 00:39:14 -08:00
bc3d698539 switch to pydantic
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-11-28 23:50:50 -08:00
d9d73522fd fixes
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-11-28 17:22:38 -08:00
243ed3222a updates
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-11-28 17:07:29 -08:00
098e1fa97d fixes
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-11-28 17:05:43 -08:00
738659dfbc fixes
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-11-28 16:43:20 -08:00
5054fd19d3 fixes
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-11-28 16:37:47 -08:00
058b4dc40a got further
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-11-28 15:17:44 -08:00
373b5ef4ae better
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-11-28 14:29:16 -08:00
6b8807feea improvements
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-11-28 14:16:05 -08:00
b6aa9ab98b better working ws
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2023-11-28 13:13:13 -08:00
be246702fd Bump urllib3 from 1.26.15 to 1.26.18 (#161)
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.15 to 1.26.18.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.15...1.26.18)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-27 16:01:44 -08:00
68d7a6d9a3 Bump pillow from 10.0.0 to 10.0.1 (#158)
Bumps [pillow](https://github.com/python-pillow/Pillow) from 10.0.0 to 10.0.1.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/10.0.0...10.0.1)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-27 16:01:35 -08:00
6b2fe3decb Update api spec (#162)
* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-27 16:01:20 -08:00
303 changed files with 8437 additions and 29269 deletions

2
.gitignore vendored
View File

@ -28,3 +28,5 @@ testing
docs/_build/
docs/_autosummary/
docs/html/_sources/
snapshot.png

16
generate/float.py.jinja2 Normal file
View File

@ -0,0 +1,16 @@
from typing import Any
from pydantic import GetCoreSchemaHandler
from pydantic_core import CoreSchema, core_schema
class {{name}}(float):
"""{{description}}"""
def __float__(self) -> float:
return self
@classmethod
def __get_pydantic_core_schema__(
cls, source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema:
return core_schema.no_info_after_validator_function(cls, handler(float))

View File

@ -1,4 +1,6 @@
from typing import Any, Dict, Optional, Union, List
from typing import Iterator, Any, Dict, Optional, Union, List
import json
import bson
from websockets.sync.client import connect as ws_connect
from websockets.client import connect as ws_connect_async
@ -16,27 +18,38 @@ from ...types import Response
def _get_kwargs(
{% for arg in args %}
{% if arg.in_query %}
{% if arg.is_optional == False %}
{{arg.name}}: {{arg.type}},
{% endif %}
{% endif %}
{% endfor %}
*,
client: Client,
{% for arg in args %}
{% if arg.in_query %}
{% if arg.is_optional %}
{{arg.name}}: {{arg.type}},
{% endif %}
{% endif %}
{% endfor %}
) -> Dict[str, Any]:
url = "{{url_template}}".format(client.base_url{% for arg in args %}{% if arg.in_url %}, {{arg.name}}={{arg.name}}{% endif %}{% endfor %}) # noqa: E501
{% for arg in args %}
{% if arg.in_query %}
if {{arg.name}} is not None:
{% if arg.type == "bool" %}
if "?" in url:
url = url + "&{{arg.name}}=" + str({{arg.name}}).lower()
else:
url = url + "?{{arg.name}}=" + str({{arg.name}}).lower()
{% else %}
if "?" in url:
url = url + "&{{arg.name}}=" + str({{arg.name}})
else:
url = url + "?{{arg.name}}=" + str({{arg.name}})
{% endif %}
{% endif %}
{% endfor %}
@ -48,66 +61,140 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
{% if has_request_body %}"content": body,{% endif %}
}
def sync(
{% for arg in args %}
{% if arg.in_query %}
{% if arg.is_optional == False %}
{{arg.name}}: {{arg.type}},
{% endif %}
{% endif %}
{% endfor %}
*,
client: Client,
{% for arg in args %}
{% if arg.in_query %}
{% if arg.is_optional %}
{{arg.name}}: {{arg.type}},
{% endif %}
{% endif %}
{% endfor %}
) -> ClientConnection:
{%if docs%}"""{{docs}}""" # noqa: E501{% endif %}
kwargs = _get_kwargs(
{% for arg in args %}
{% if arg.in_query %}
{{arg.name}}={{arg.name}},
{% endif %}
{% endfor %}
client=client,
)
with ws_connect(kwargs["url"].replace("https://", "wss://"), additional_headers=kwargs["headers"]) as websocket:
return websocket # type: ignore
# Return an error if we got here.
return Error(message="An error occurred while connecting to the websocket.")
return ws_connect(kwargs["url"].replace("http", "ws"), additional_headers=kwargs["headers"], close_timeout=120, max_size=None) # type: ignore
async def asyncio(
{% for arg in args %}
{% if arg.in_query %}
{% if arg.is_optional == False %}
{{arg.name}}: {{arg.type}},
{% endif %}
{% endif %}
{% endfor %}
*,
client: Client,
{% for arg in args %}
{% if arg.in_query %}
{% if arg.is_optional %}
{{arg.name}}: {{arg.type}},
{% endif %}
{% endif %}
{% endfor %}
) -> WebSocketClientProtocol:
{%if docs%}"""{{docs}}""" # noqa: E501{% endif %}
kwargs = _get_kwargs(
{% for arg in args %}
{% if arg.in_query %}
{{arg.name}}={{arg.name}},
{% endif %}
{% endfor %}
client=client,
)
async with ws_connect_async(kwargs["url"].replace("https://", "wss://"), extra_headers=kwargs["headers"]) as websocket:
return websocket
return await ws_connect_async(kwargs["url"].replace("http", "ws"), extra_headers=kwargs["headers"], close_timeout=120, max_size=None)
# Return an error if we got here.
return Error(message="An error occurred while connecting to the websocket.")
{% if has_request_body %}
class WebSocket:
"""A websocket connection to the API endpoint."""
ws: ClientConnection
def __init__(self,
{% for arg in args %}
{% if arg.in_query %}
{% if arg.is_optional == False %}
{{arg.name}}: {{arg.type}},
{% endif %}
{% endif %}
{% endfor %}
client: Client,
{% for arg in args %}
{% if arg.in_query %}
{% if arg.is_optional %}
{{arg.name}}: {{arg.type}},
{% endif %}
{% endif %}
{% endfor %}
):
self.ws = sync(
{% for arg in args %}
{% if arg.in_query %}
{{arg.name}},
{% endif %}
{% endfor %}
client=client,
)
def __enter__(self,
):
return self
def __exit__(self, exc_type, exc_value, traceback):
self.close()
def __iter__(self) -> Iterator[{{response_type}}]:
"""
Iterate on incoming messages.
The iterator calls :meth:`recv` and yields messages in an infinite loop.
It exits when the connection is closed normally. It raises a
:exc:`~websockets.exceptions.ConnectionClosedError` exception after a
protocol error or a network failure.
"""
for message in self.ws:
yield {{response_type}}(**json.loads(message))
def send(self, data:{% for arg in args %}{%if arg.name == "body" %}{{arg.type}}{% endif %}{% endfor %}):
"""Send data to the websocket."""
self.ws.send(json.dumps(data.model_dump()))
def send_binary(self, data:{% for arg in args %}{%if arg.name == "body" %}{{arg.type}}{% endif %}{% endfor %}):
"""Send data as bson to the websocket."""
self.ws.send(bson.encode(data.model_dump())) # type: ignore
def recv(self) -> {{response_type}}:
"""Receive data from the websocket."""
message = self.ws.recv(timeout=60)
return {{response_type}}(**json.loads(message))
def close(self):
"""Close the websocket."""
self.ws.close()
{%endif%}

View File

@ -28,11 +28,18 @@ def _get_kwargs(
{% for arg in args %}
{% if arg.in_query %}
if {{arg.name}} is not None:
{% if arg.type == "bool" %}
if "?" in url:
url = url + "&{{arg.name}}=" + str({{arg.name}}).lower()
else:
url = url + "?{{arg.name}}=" + str({{arg.name}}).lower()
{% else %}
if "?" in url:
url = url + "&{{arg.name}}=" + str({{arg.name}})
else:
url = url + "?{{arg.name}}=" + str({{arg.name}})
{% endif %}
{% endif %}
{% endfor %}

File diff suppressed because it is too large Load Diff

16
generate/int.py.jinja2 Normal file
View File

@ -0,0 +1,16 @@
from typing import Any
from pydantic import GetCoreSchemaHandler
from pydantic_core import CoreSchema, core_schema
class {{name}}(int):
"""{{description}}"""
def __int__(self) -> int:
return self
@classmethod
def __get_pydantic_core_schema__(
cls, source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema:
return core_schema.no_info_after_validator_function(cls, handler(int))

21
generate/object.py.jinja2 Normal file
View File

@ -0,0 +1,21 @@
import datetime
from typing import List, Optional, Dict, Union, Any, Literal
from uuid import UUID
from pydantic import BaseModel, Base64Bytes, AnyUrl
from pydantic_extra_types.phone_numbers import PhoneNumber
from .base64data import Base64Data
{% for import in imports %}
{{ import }}
{% endfor %}
class {{ name }}(BaseModel):
"""{{ description }}"""
{% for field in fields %}
{% if field.value %}
{{ field.name }}: Literal[{{ field.value }}] = {{ field.value }}
{% else %}
{{ field.name }}: {{ field.type }}
{% endif %}
{% endfor %}

View File

@ -8,6 +8,7 @@ git config --global --add safe.directory /home/user/src
git add kittycad/models/base64data.py
git add kittycad/models/empty.py
# Cleanup old stuff.
rm -rf kittycad/models
rm -rf kittycad/api
@ -21,7 +22,7 @@ poetry run python generate/generate.py
poetry run isort .
poetry run black . generate/generate.py docs/conf.py kittycad/client_test.py kittycad/examples_test.py
poetry run ruff check --fix .
poetry run mypy . || true
poetry run mypy .
# Run the tests.

16
generate/str.py.jinja2 Normal file
View File

@ -0,0 +1,16 @@
from typing import Any
from pydantic import GetCoreSchemaHandler
from pydantic_core import CoreSchema, core_schema
class {{name}}(str):
"""{{description}}"""
def __str__(self) -> str:
return self
@classmethod
def __get_pydantic_core_schema__(
cls, source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema:
return core_schema.no_info_after_validator_function(cls, handler(str))

View File

@ -0,0 +1,21 @@
from typing import Dict, Any, Union, Type, TypeVar
from pydantic import RootModel, Field
from typing_extensions import Annotated
{% if tag %}
{{name}} = RootModel[Annotated[Union[
{% for type in types %}
{{type.name}},
{% endfor %}
], Field(discriminator='{{tag}}')]]
{% else %}
{{name}} = RootModel[Union[
{% for type in types %}
{{type.name}},
{% endfor %}
]]
{% endif %}

View File

@ -1,18 +1,34 @@
[
{
"op": "add",
"path": "/info/x-python",
"path": "/paths/~1file~1execute~1{lang}/post/x-python",
"value": {
"client": "# Create a client with your token.\nfrom kittycad.client import Client\n\nclient = Client(token=\"$TOKEN\")\n\n# - OR -\n\n# Create a new client with your token parsed from the environment variable:\n# `KITTYCAD_API_TOKEN`.\nfrom kittycad.client import ClientFromEnv\n\nclient = ClientFromEnv()\n\n# NOTE: The python library additionally implements asyncio, however all the code samples we\n# show below use the sync functions for ease of use and understanding.\n# Check out the library docs at:\n# https://python.api.docs.kittycad.io/_autosummary/kittycad.api.html#module-kittycad.api\n# for more details.",
"install": "pip install kittycad"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.executor import create_file_execution\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import CodeOutput, Error\nfrom kittycad.models.code_language import CodeLanguage\nfrom kittycad.types import Response\n\n\ndef example_create_file_execution():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[CodeOutput, Error]] = create_file_execution.sync(\n client=client,\n lang=CodeLanguage.GO,\n output=None, # Optional[str]\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: CodeOutput = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.executor.create_file_execution.html"
}
},
{
"op": "add",
"path": "/paths/~1api-calls~1{id}/get/x-python",
"path": "/paths/~1async~1operations~1{id}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.api_calls import get_api_call\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPrice, Error\nfrom kittycad.types import Response\n\n\ndef example_get_api_call():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ApiCallWithPrice, Error]] = get_api_call.sync(\n client=client,\n id=\"<string>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPrice = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_api_call.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.api_calls import get_async_operation\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import (\n Error,\n FileCenterOfMass,\n FileConversion,\n FileDensity,\n FileMass,\n FileSurfaceArea,\n FileVolume,\n TextToCad,\n)\nfrom kittycad.types import Response\n\n\ndef example_get_async_operation():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[\n FileConversion,\n FileCenterOfMass,\n FileMass,\n FileVolume,\n FileDensity,\n FileSurfaceArea,\n TextToCad,\n Error,\n ]\n ] = get_async_operation.sync(\n client=client,\n id=\"<string>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Union[\n FileConversion,\n FileCenterOfMass,\n FileMass,\n FileVolume,\n FileDensity,\n FileSurfaceArea,\n TextToCad,\n ] = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_async_operation.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1force~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_force_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitForceConversion\nfrom kittycad.models.unit_force import UnitForce\nfrom kittycad.types import Response\n\n\ndef example_get_force_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitForceConversion, Error]\n ] = get_force_unit_conversion.sync(\n client=client,\n input_unit=UnitForce.DYNES,\n output_unit=UnitForce.DYNES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitForceConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_force_unit_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1logout/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.hidden import logout\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_logout():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = logout.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.hidden.logout.html"
}
},
{
@ -33,138 +49,18 @@
},
{
"op": "add",
"path": "/paths/~1.well-known~1ai-plugin.json/get/x-python",
"path": "/paths/~1users~1{id}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.meta import get_ai_plugin_manifest\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import AiPluginManifest, Error\nfrom kittycad.types import Response\n\n\ndef example_get_ai_plugin_manifest():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[AiPluginManifest, Error]\n ] = get_ai_plugin_manifest.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: AiPluginManifest = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_ai_plugin_manifest.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import get_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, User\nfrom kittycad.types import Response\n\n\ndef example_get_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[User, Error]] = get_user.sync(\n client=client,\n id=\"<string>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: User = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1api-calls~1{id}/get/x-python",
"path": "/paths/~1api-calls~1{id}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.api_calls import get_api_call_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPrice, Error\nfrom kittycad.types import Response\n\n\ndef example_get_api_call_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ApiCallWithPrice, Error]] = get_api_call_for_user.sync(\n client=client,\n id=\"<string>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPrice = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_api_call_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1current~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_current_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitCurrentConversion\nfrom kittycad.models.unit_current import UnitCurrent\nfrom kittycad.types import Response\n\n\ndef example_get_current_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitCurrentConversion, Error]\n ] = get_current_unit_conversion.sync(\n client=client,\n input_unit=UnitCurrent.AMPERES,\n output_unit=UnitCurrent.AMPERES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitCurrentConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_current_unit_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1api-call-metrics/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.api_calls import get_api_call_metrics\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallQueryGroup, Error\nfrom kittycad.models.api_call_query_group_by import ApiCallQueryGroupBy\nfrom kittycad.types import Response\n\n\ndef example_get_api_call_metrics():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[List[ApiCallQueryGroup], Error]\n ] = get_api_call_metrics.sync(\n client=client,\n group_by=ApiCallQueryGroupBy.EMAIL,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: List[ApiCallQueryGroup] = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_api_call_metrics.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1front-hash/get/x-python",
"value": {
"example": "from kittycad.api.users import get_user_front_hash_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_get_user_front_hash_self():\n # Create our client.\n client = ClientFromEnv()\n\n get_user_front_hash_self.sync(\n client=client,\n )\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_front_hash_self.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1onboarding/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import get_user_onboarding_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Onboarding\nfrom kittycad.types import Response\n\n\ndef example_get_user_onboarding_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Onboarding, Error]] = get_user_onboarding_self.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Onboarding = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_onboarding_self.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1mass~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_mass_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitMassConversion\nfrom kittycad.models.unit_mass import UnitMass\nfrom kittycad.types import Response\n\n\ndef example_get_mass_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitMassConversion, Error]\n ] = get_mass_unit_conversion.sync(\n client=client,\n input_unit=UnitMass.G,\n output_unit=UnitMass.G,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitMassConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_mass_unit_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1text-to-cad~1{id}/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.ai import create_text_to_cad_model_feedback\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.models.ai_feedback import AiFeedback\nfrom kittycad.types import Response\n\n\ndef example_create_text_to_cad_model_feedback():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = create_text_to_cad_model_feedback.sync(\n client=client,\n id=\"<uuid>\",\n feedback=AiFeedback.THUMBS_UP,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.ai.create_text_to_cad_model_feedback.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1payment~1invoices/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.payments import list_invoices_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Invoice\nfrom kittycad.types import Response\n\n\ndef example_list_invoices_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[List[Invoice], Error]] = list_invoices_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: List[Invoice] = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.list_invoices_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1user/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import get_user_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, User\nfrom kittycad.types import Response\n\n\ndef example_get_user_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[User, Error]] = get_user_self.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: User = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_self.html"
}
},
{
"op": "add",
"path": "/paths/~1user/put/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import update_user_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, User\nfrom kittycad.models.update_user import UpdateUser\nfrom kittycad.types import Response\n\n\ndef example_update_user_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[User, Error]] = update_user_self.sync(\n client=client,\n body=UpdateUser(\n company=\"<string>\",\n discord=\"<string>\",\n first_name=\"<string>\",\n github=\"<string>\",\n last_name=\"<string>\",\n phone=\"<string>\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: User = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.update_user_self.html"
}
},
{
"op": "add",
"path": "/paths/~1user/delete/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import delete_user_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_delete_user_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = delete_user_self.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.delete_user_self.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1extended/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import get_user_self_extended\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, ExtendedUser\nfrom kittycad.types import Response\n\n\ndef example_get_user_self_extended():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ExtendedUser, Error]] = get_user_self_extended.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ExtendedUser = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_self_extended.html"
}
},
{
"op": "add",
"path": "/paths/~1logout/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.hidden import logout\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_logout():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = logout.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.hidden.logout.html"
}
},
{
"op": "add",
"path": "/paths/~1auth~1email/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.hidden import auth_email\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, VerificationToken\nfrom kittycad.models.email_authentication_form import EmailAuthenticationForm\nfrom kittycad.types import Response\n\n\ndef example_auth_email():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[VerificationToken, Error]] = auth_email.sync(\n client=client,\n body=EmailAuthenticationForm(\n email=\"<string>\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: VerificationToken = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.hidden.auth_email.html"
}
},
{
"op": "add",
"path": "/paths/~1ping/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.meta import ping\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Pong\nfrom kittycad.types import Response\n\n\ndef example_ping():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Pong, Error]] = ping.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Pong = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.ping.html"
}
},
{
"op": "add",
"path": "/paths/~1file~1conversion~1{src_format}~1{output_format}/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.file import create_file_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileConversion\nfrom kittycad.models.file_export_format import FileExportFormat\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_file_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[FileConversion, Error]] = create_file_conversion.sync(\n client=client,\n output_format=FileExportFormat.FBX,\n src_format=FileImportFormat.FBX,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_conversion.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.api_calls import get_api_call\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPrice, Error\nfrom kittycad.types import Response\n\n\ndef example_get_api_call():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ApiCallWithPrice, Error]] = get_api_call.sync(\n client=client,\n id=\"<string>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPrice = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_api_call.html"
}
},
{
@ -177,18 +73,146 @@
},
{
"op": "add",
"path": "/paths/~1ai~1text-to-cad~1{output_format}/post/x-python",
"path": "/paths/~1user/put/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.ai import create_text_to_cad\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, TextToCad\nfrom kittycad.models.file_export_format import FileExportFormat\nfrom kittycad.models.text_to_cad_create_body import TextToCadCreateBody\nfrom kittycad.types import Response\n\n\ndef example_create_text_to_cad():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[TextToCad, Error]] = create_text_to_cad.sync(\n client=client,\n output_format=FileExportFormat.FBX,\n body=TextToCadCreateBody(\n prompt=\"<string>\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: TextToCad = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.ai.create_text_to_cad.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import update_user_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, User\nfrom kittycad.models.update_user import UpdateUser\nfrom kittycad.types import Response\n\n\ndef example_update_user_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[User, Error]] = update_user_self.sync(\n client=client,\n body=UpdateUser(\n company=\"<string>\",\n discord=\"<string>\",\n first_name=\"<string>\",\n github=\"<string>\",\n last_name=\"<string>\",\n phone=\"<string>\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: User = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.update_user_self.html"
}
},
{
"op": "add",
"path": "/paths/~1apps~1github~1callback/get/x-python",
"path": "/paths/~1user/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.apps import apps_github_callback\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_apps_github_callback():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = apps_github_callback.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.apps.apps_github_callback.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import get_user_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, User\nfrom kittycad.types import Response\n\n\ndef example_get_user_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[User, Error]] = get_user_self.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: User = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_self.html"
}
},
{
"op": "add",
"path": "/paths/~1user/delete/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import delete_user_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_delete_user_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = delete_user_self.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.delete_user_self.html"
}
},
{
"op": "add",
"path": "/paths/~1users-extended/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import list_users_extended\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, ExtendedUserResultsPage\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_users_extended():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ExtendedUserResultsPage, Error]\n ] = list_users_extended.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ExtendedUserResultsPage = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.list_users_extended.html"
}
},
{
"op": "add",
"path": "/paths/~1ai-prompts/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.ai import list_ai_prompts\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import AiPromptResultsPage, Error\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_ai_prompts():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[AiPromptResultsPage, Error]] = list_ai_prompts.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: AiPromptResultsPage = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.ai.list_ai_prompts.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1api-calls~1{id}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.api_calls import get_api_call_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPrice, Error\nfrom kittycad.types import Response\n\n\ndef example_get_api_call_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ApiCallWithPrice, Error]] = get_api_call_for_user.sync(\n client=client,\n id=\"<string>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPrice = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_api_call_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1front-hash/get/x-python",
"value": {
"example": "from kittycad.api.users import get_user_front_hash_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_get_user_front_hash_self():\n # Create our client.\n client = ClientFromEnv()\n\n get_user_front_hash_self.sync(\n client=client,\n )\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_front_hash_self.html"
}
},
{
"op": "add",
"path": "/paths/~1async~1operations/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.api_calls import list_async_operations\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import AsyncApiCallResultsPage, Error\nfrom kittycad.models.api_call_status import ApiCallStatus\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_async_operations():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[AsyncApiCallResultsPage, Error]\n ] = list_async_operations.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n status=ApiCallStatus.QUEUED,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: AsyncApiCallResultsPage = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.list_async_operations.html"
}
},
{
"op": "add",
"path": "/paths/~1users~1{id}~1api-calls/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.api_calls import list_api_calls_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPriceResultsPage, Error\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_api_calls_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ApiCallWithPriceResultsPage, Error]\n ] = list_api_calls_for_user.sync(\n client=client,\n id=\"<string>\",\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPriceResultsPage = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.list_api_calls_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1payment~1invoices/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.payments import list_invoices_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Invoice\nfrom kittycad.types import Response\n\n\ndef example_list_invoices_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[List[Invoice], Error]] = list_invoices_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: List[Invoice] = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.list_invoices_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1mass~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_mass_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitMassConversion\nfrom kittycad.models.unit_mass import UnitMass\nfrom kittycad.types import Response\n\n\ndef example_get_mass_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitMassConversion, Error]\n ] = get_mass_unit_conversion.sync(\n client=client,\n input_unit=UnitMass.G,\n output_unit=UnitMass.G,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitMassConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_mass_unit_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1auth~1email~1callback/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.hidden import auth_email_callback\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_auth_email_callback():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = auth_email_callback.sync(\n client=client,\n email=\"<string>\",\n token=\"<string>\",\n callback_url=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.hidden.auth_email_callback.html"
}
},
{
"op": "add",
"path": "/paths/~1/get/x-python",
"value": {
"example": "from kittycad.api.meta import get_schema\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_get_schema():\n # Create our client.\n client = ClientFromEnv()\n\n get_schema.sync(\n client=client,\n )\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_schema.html"
}
},
{
"op": "add",
"path": "/paths/~1users-extended~1{id}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import get_user_extended\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, ExtendedUser\nfrom kittycad.types import Response\n\n\ndef example_get_user_extended():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ExtendedUser, Error]] = get_user_extended.sync(\n client=client,\n id=\"<string>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ExtendedUser = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_extended.html"
}
},
{
"op": "add",
"path": "/paths/~1openai~1openapi.json/get/x-python",
"value": {
"example": "from kittycad.api.meta import get_openai_schema\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_get_openai_schema():\n # Create our client.\n client = ClientFromEnv()\n\n get_openai_schema.sync(\n client=client,\n )\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_openai_schema.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1angle~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_angle_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitAngleConversion\nfrom kittycad.models.unit_angle import UnitAngle\nfrom kittycad.types import Response\n\n\ndef example_get_angle_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitAngleConversion, Error]\n ] = get_angle_unit_conversion.sync(\n client=client,\n input_unit=UnitAngle.DEGREES,\n output_unit=UnitAngle.DEGREES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitAngleConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_angle_unit_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1frequency~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_frequency_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitFrequencyConversion\nfrom kittycad.models.unit_frequency import UnitFrequency\nfrom kittycad.types import Response\n\n\ndef example_get_frequency_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitFrequencyConversion, Error]\n ] = get_frequency_unit_conversion.sync(\n client=client,\n input_unit=UnitFrequency.GIGAHERTZ,\n output_unit=UnitFrequency.GIGAHERTZ,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitFrequencyConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_frequency_unit_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1pressure~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_pressure_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitPressureConversion\nfrom kittycad.models.unit_pressure import UnitPressure\nfrom kittycad.types import Response\n\n\ndef example_get_pressure_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitPressureConversion, Error]\n ] = get_pressure_unit_conversion.sync(\n client=client,\n input_unit=UnitPressure.ATMOSPHERES,\n output_unit=UnitPressure.ATMOSPHERES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitPressureConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_pressure_unit_conversion.html"
}
},
{
@ -207,14 +231,6 @@
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.update_payment_information_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1payment/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.payments import create_payment_information_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Customer, Error\nfrom kittycad.models.billing_info import BillingInfo\nfrom kittycad.types import Response\n\n\ndef example_create_payment_information_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[Customer, Error]\n ] = create_payment_information_for_user.sync(\n client=client,\n body=BillingInfo(\n name=\"<string>\",\n phone=\"<string>\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Customer = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.create_payment_information_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1payment/delete/x-python",
@ -225,170 +241,18 @@
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1energy~1{input_unit}~1{output_unit}/get/x-python",
"path": "/paths/~1user~1payment/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_energy_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitEnergyConversion\nfrom kittycad.models.unit_energy import UnitEnergy\nfrom kittycad.types import Response\n\n\ndef example_get_energy_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitEnergyConversion, Error]\n ] = get_energy_unit_conversion.sync(\n client=client,\n input_unit=UnitEnergy.BTU,\n output_unit=UnitEnergy.BTU,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitEnergyConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_energy_unit_conversion.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.payments import create_payment_information_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Customer, Error\nfrom kittycad.models.billing_info import BillingInfo\nfrom kittycad.types import Response\n\n\ndef example_create_payment_information_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[Customer, Error]\n ] = create_payment_information_for_user.sync(\n client=client,\n body=BillingInfo(\n name=\"<string>\",\n phone=\"<string>\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Customer = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.create_payment_information_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1payment~1methods/get/x-python",
"path": "/paths/~1ai-prompts~1{id}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.payments import list_payment_methods_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, PaymentMethod\nfrom kittycad.types import Response\n\n\ndef example_list_payment_methods_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[List[PaymentMethod], Error]\n ] = list_payment_methods_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: List[PaymentMethod] = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.list_payment_methods_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1async~1operations/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.api_calls import list_async_operations\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import AsyncApiCallResultsPage, Error\nfrom kittycad.models.api_call_status import ApiCallStatus\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_async_operations():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[AsyncApiCallResultsPage, Error]\n ] = list_async_operations.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n status=ApiCallStatus.QUEUED,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: AsyncApiCallResultsPage = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.list_async_operations.html"
}
},
{
"op": "add",
"path": "/paths/~1file~1volume/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.file import create_file_volume\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileVolume\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.models.unit_volume import UnitVolume\nfrom kittycad.types import Response\n\n\ndef example_create_file_volume():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[FileVolume, Error]] = create_file_volume.sync(\n client=client,\n output_unit=UnitVolume.CM3,\n src_format=FileImportFormat.FBX,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileVolume = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_volume.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1pressure~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_pressure_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitPressureConversion\nfrom kittycad.models.unit_pressure import UnitPressure\nfrom kittycad.types import Response\n\n\ndef example_get_pressure_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitPressureConversion, Error]\n ] = get_pressure_unit_conversion.sync(\n client=client,\n input_unit=UnitPressure.ATMOSPHERES,\n output_unit=UnitPressure.ATMOSPHERES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitPressureConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_pressure_unit_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1volume~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_volume_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitVolumeConversion\nfrom kittycad.models.unit_volume import UnitVolume\nfrom kittycad.types import Response\n\n\ndef example_get_volume_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitVolumeConversion, Error]\n ] = get_volume_unit_conversion.sync(\n client=client,\n input_unit=UnitVolume.CM3,\n output_unit=UnitVolume.CM3,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitVolumeConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_volume_unit_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1auth~1email~1callback/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.hidden import auth_email_callback\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_auth_email_callback():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = auth_email_callback.sync(\n client=client,\n email=\"<string>\",\n token=\"<string>\",\n callback_url=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.hidden.auth_email_callback.html"
}
},
{
"op": "add",
"path": "/paths/~1users~1{id}~1api-calls/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.api_calls import list_api_calls_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPriceResultsPage, Error\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_api_calls_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ApiCallWithPriceResultsPage, Error]\n ] = list_api_calls_for_user.sync(\n client=client,\n id=\"<string>\",\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPriceResultsPage = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.list_api_calls_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1apps~1github~1consent/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.apps import apps_github_consent\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import AppClientInfo, Error\nfrom kittycad.types import Response\n\n\ndef example_apps_github_consent():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[AppClientInfo, Error]] = apps_github_consent.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: AppClientInfo = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.apps.apps_github_consent.html"
}
},
{
"op": "add",
"path": "/paths/~1openai~1openapi.json/get/x-python",
"value": {
"example": "from kittycad.api.meta import get_openai_schema\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_get_openai_schema():\n # Create our client.\n client = ClientFromEnv()\n\n get_openai_schema.sync(\n client=client,\n )\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_openai_schema.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1api-calls/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.api_calls import user_list_api_calls\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPriceResultsPage, Error\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_user_list_api_calls():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ApiCallWithPriceResultsPage, Error]\n ] = user_list_api_calls.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPriceResultsPage = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.user_list_api_calls.html"
}
},
{
"op": "add",
"path": "/paths/~1file~1density/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.file import create_file_density\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileDensity\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.models.unit_density import UnitDensity\nfrom kittycad.models.unit_mass import UnitMass\nfrom kittycad.types import Response\n\n\ndef example_create_file_density():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[FileDensity, Error]] = create_file_density.sync(\n client=client,\n material_mass=3.14,\n material_mass_unit=UnitMass.G,\n output_unit=UnitDensity.LB_FT3,\n src_format=FileImportFormat.FBX,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileDensity = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_density.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1payment~1methods~1{id}/delete/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.payments import delete_payment_method_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_delete_payment_method_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = delete_payment_method_for_user.sync(\n client=client,\n id=\"<string>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.delete_payment_method_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1file~1execute~1{lang}/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.executor import create_file_execution\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import CodeOutput, Error\nfrom kittycad.models.code_language import CodeLanguage\nfrom kittycad.types import Response\n\n\ndef example_create_file_execution():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[CodeOutput, Error]] = create_file_execution.sync(\n client=client,\n lang=CodeLanguage.GO,\n output=None, # Optional[str]\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: CodeOutput = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.executor.create_file_execution.html"
}
},
{
"op": "add",
"path": "/paths/~1apps~1github~1webhook/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.apps import apps_github_webhook\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_apps_github_webhook():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = apps_github_webhook.sync(\n client=client,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.apps.apps_github_webhook.html"
}
},
{
"op": "add",
"path": "/paths/~1/get/x-python",
"value": {
"example": "from kittycad.api.meta import get_schema\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_get_schema():\n # Create our client.\n client = ClientFromEnv()\n\n get_schema.sync(\n client=client,\n )\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_schema.html"
}
},
{
"op": "add",
"path": "/paths/~1users-extended/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import list_users_extended\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, ExtendedUserResultsPage\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_users_extended():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ExtendedUserResultsPage, Error]\n ] = list_users_extended.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ExtendedUserResultsPage = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.list_users_extended.html"
}
},
{
"op": "add",
"path": "/paths/~1_meta~1info/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.meta import get_metadata\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Metadata\nfrom kittycad.types import Response\n\n\ndef example_get_metadata():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Metadata, Error]] = get_metadata.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Metadata = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_metadata.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1session~1{token}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import get_session_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Session\nfrom kittycad.types import Response\n\n\ndef example_get_session_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Session, Error]] = get_session_for_user.sync(\n client=client,\n token=\"<uuid>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Session = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_session_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1angle~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_angle_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitAngleConversion\nfrom kittycad.models.unit_angle import UnitAngle\nfrom kittycad.types import Response\n\n\ndef example_get_angle_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitAngleConversion, Error]\n ] = get_angle_unit_conversion.sync(\n client=client,\n input_unit=UnitAngle.DEGREES,\n output_unit=UnitAngle.DEGREES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitAngleConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_angle_unit_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1force~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_force_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitForceConversion\nfrom kittycad.models.unit_force import UnitForce\nfrom kittycad.types import Response\n\n\ndef example_get_force_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitForceConversion, Error]\n ] = get_force_unit_conversion.sync(\n client=client,\n input_unit=UnitForce.DYNES,\n output_unit=UnitForce.DYNES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitForceConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_force_unit_conversion.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.ai import get_ai_prompt\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import AiPrompt, Error\nfrom kittycad.types import Response\n\n\ndef example_get_ai_prompt():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[AiPrompt, Error]] = get_ai_prompt.sync(\n client=client,\n id=\"<uuid>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: AiPrompt = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.ai.get_ai_prompt.html"
}
},
{
@ -401,18 +265,18 @@
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1power~1{input_unit}~1{output_unit}/get/x-python",
"path": "/paths/~1unit~1conversion~1current~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_power_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitPowerConversion\nfrom kittycad.models.unit_power import UnitPower\nfrom kittycad.types import Response\n\n\ndef example_get_power_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitPowerConversion, Error]\n ] = get_power_unit_conversion.sync(\n client=client,\n input_unit=UnitPower.BTU_PER_MINUTE,\n output_unit=UnitPower.BTU_PER_MINUTE,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitPowerConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_power_unit_conversion.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_current_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitCurrentConversion\nfrom kittycad.models.unit_current import UnitCurrent\nfrom kittycad.types import Response\n\n\ndef example_get_current_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitCurrentConversion, Error]\n ] = get_current_unit_conversion.sync(\n client=client,\n input_unit=UnitCurrent.AMPERES,\n output_unit=UnitCurrent.AMPERES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitCurrentConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_current_unit_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1payment~1balance/get/x-python",
"path": "/paths/~1internal~1discord~1api-token~1{discord_id}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.payments import get_payment_balance_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import CustomerBalance, Error\nfrom kittycad.types import Response\n\n\ndef example_get_payment_balance_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[CustomerBalance, Error]\n ] = get_payment_balance_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: CustomerBalance = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.get_payment_balance_for_user.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.meta import internal_get_api_token_for_discord_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiToken, Error\nfrom kittycad.types import Response\n\n\ndef example_internal_get_api_token_for_discord_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ApiToken, Error]\n ] = internal_get_api_token_for_discord_user.sync(\n client=client,\n discord_id=\"<string>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiToken = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.internal_get_api_token_for_discord_user.html"
}
},
{
@ -433,42 +297,82 @@
},
{
"op": "add",
"path": "/paths/~1users-extended~1{id}/get/x-python",
"path": "/paths/~1user~1payment~1methods~1{id}/delete/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import get_user_extended\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, ExtendedUser\nfrom kittycad.types import Response\n\n\ndef example_get_user_extended():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ExtendedUser, Error]] = get_user_extended.sync(\n client=client,\n id=\"<string>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ExtendedUser = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_extended.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.payments import delete_payment_method_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_delete_payment_method_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = delete_payment_method_for_user.sync(\n client=client,\n id=\"<string>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.delete_payment_method_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1file~1center-of-mass/post/x-python",
"path": "/paths/~1user~1session~1{token}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.file import create_file_center_of_mass\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileCenterOfMass\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.models.unit_length import UnitLength\nfrom kittycad.types import Response\n\n\ndef example_create_file_center_of_mass():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[FileCenterOfMass, Error]\n ] = create_file_center_of_mass.sync(\n client=client,\n output_unit=UnitLength.CM,\n src_format=FileImportFormat.FBX,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileCenterOfMass = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_center_of_mass.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import get_session_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Session\nfrom kittycad.types import Response\n\n\ndef example_get_session_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Session, Error]] = get_session_for_user.sync(\n client=client,\n token=\"<uuid>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Session = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_session_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1file~1surface-area/post/x-python",
"path": "/paths/~1user~1text-to-cad~1{id}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.file import create_file_surface_area\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileSurfaceArea\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.models.unit_area import UnitArea\nfrom kittycad.types import Response\n\n\ndef example_create_file_surface_area():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[FileSurfaceArea, Error]\n ] = create_file_surface_area.sync(\n client=client,\n output_unit=UnitArea.CM2,\n src_format=FileImportFormat.FBX,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileSurfaceArea = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_surface_area.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.ai import get_text_to_cad_model_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, TextToCad\nfrom kittycad.types import Response\n\n\ndef example_get_text_to_cad_model_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[TextToCad, Error]\n ] = get_text_to_cad_model_for_user.sync(\n client=client,\n id=\"<uuid>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: TextToCad = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.ai.get_text_to_cad_model_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1async~1operations~1{id}/get/x-python",
"path": "/paths/~1user~1text-to-cad~1{id}/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.api_calls import get_async_operation\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import (\n Error,\n FileCenterOfMass,\n FileConversion,\n FileDensity,\n FileMass,\n FileSurfaceArea,\n FileVolume,\n TextToCad,\n)\nfrom kittycad.types import Response\n\n\ndef example_get_async_operation():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[\n FileConversion,\n FileCenterOfMass,\n FileMass,\n FileVolume,\n FileDensity,\n FileSurfaceArea,\n TextToCad,\n Error,\n ]\n ] = get_async_operation.sync(\n client=client,\n id=\"<string>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Union[\n FileConversion,\n FileCenterOfMass,\n FileMass,\n FileVolume,\n FileDensity,\n FileSurfaceArea,\n TextToCad,\n ] = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_async_operation.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.ai import create_text_to_cad_model_feedback\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.models.ai_feedback import AiFeedback\nfrom kittycad.types import Response\n\n\ndef example_create_text_to_cad_model_feedback():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = create_text_to_cad_model_feedback.sync(\n client=client,\n id=\"<uuid>\",\n feedback=AiFeedback.THUMBS_UP,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.ai.create_text_to_cad_model_feedback.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1torque~1{input_unit}~1{output_unit}/get/x-python",
"path": "/paths/~1ws~1executor~1term/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_torque_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitTorqueConversion\nfrom kittycad.models.unit_torque import UnitTorque\nfrom kittycad.types import Response\n\n\ndef example_get_torque_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitTorqueConversion, Error]\n ] = get_torque_unit_conversion.sync(\n client=client,\n input_unit=UnitTorque.NEWTON_METRES,\n output_unit=UnitTorque.NEWTON_METRES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitTorqueConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_torque_unit_conversion.html"
"example": "from kittycad.api.executor import create_executor_term\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_create_executor_term():\n # Create our client.\n client = ClientFromEnv()\n\n # Connect to the websocket.\n with create_executor_term.sync(\n client=client,\n ) as websocket:\n # Send a message.\n websocket.send(\"{}\")\n\n # Get the messages.\n for message in websocket:\n print(message)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.executor.create_executor_term.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1onboarding/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import get_user_onboarding_self\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Onboarding\nfrom kittycad.types import Response\n\n\ndef example_get_user_onboarding_self():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Onboarding, Error]] = get_user_onboarding_self.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Onboarding = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_onboarding_self.html"
}
},
{
"op": "add",
"path": "/paths/~1api-call-metrics/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.api_calls import get_api_call_metrics\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallQueryGroup, Error\nfrom kittycad.models.api_call_query_group_by import ApiCallQueryGroupBy\nfrom kittycad.types import Response\n\n\ndef example_get_api_call_metrics():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[List[ApiCallQueryGroup], Error]\n ] = get_api_call_metrics.sync(\n client=client,\n group_by=ApiCallQueryGroupBy.EMAIL,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: List[ApiCallQueryGroup] = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.get_api_call_metrics.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1payment~1balance/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.payments import get_payment_balance_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import CustomerBalance, Error\nfrom kittycad.types import Response\n\n\ndef example_get_payment_balance_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[CustomerBalance, Error]\n ] = get_payment_balance_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: CustomerBalance = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.get_payment_balance_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1file~1volume/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.file import create_file_volume\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileVolume\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.models.unit_volume import UnitVolume\nfrom kittycad.types import Response\n\n\ndef example_create_file_volume():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[FileVolume, Error]] = create_file_volume.sync(\n client=client,\n output_unit=UnitVolume.CM3,\n src_format=FileImportFormat.FBX,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileVolume = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_volume.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1energy~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_energy_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitEnergyConversion\nfrom kittycad.models.unit_energy import UnitEnergy\nfrom kittycad.types import Response\n\n\ndef example_get_energy_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitEnergyConversion, Error]\n ] = get_energy_unit_conversion.sync(\n client=client,\n input_unit=UnitEnergy.BTU,\n output_unit=UnitEnergy.BTU,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitEnergyConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_energy_unit_conversion.html"
}
},
{
@ -481,58 +385,74 @@
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1length~1{input_unit}~1{output_unit}/get/x-python",
"path": "/paths/~1file~1conversion~1{src_format}~1{output_format}/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_length_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitLengthConversion\nfrom kittycad.models.unit_length import UnitLength\nfrom kittycad.types import Response\n\n\ndef example_get_length_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitLengthConversion, Error]\n ] = get_length_unit_conversion.sync(\n client=client,\n input_unit=UnitLength.CM,\n output_unit=UnitLength.CM,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitLengthConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_length_unit_conversion.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.file import create_file_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileConversion\nfrom kittycad.models.file_export_format import FileExportFormat\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.types import Response\n\n\ndef example_create_file_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[FileConversion, Error]] = create_file_conversion.sync(\n client=client,\n output_format=FileExportFormat.FBX,\n src_format=FileImportFormat.FBX,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1file~1mass/post/x-python",
"path": "/paths/~1unit~1conversion~1torque~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.file import create_file_mass\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileMass\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.models.unit_density import UnitDensity\nfrom kittycad.models.unit_mass import UnitMass\nfrom kittycad.types import Response\n\n\ndef example_create_file_mass():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[FileMass, Error]] = create_file_mass.sync(\n client=client,\n material_density=3.14,\n material_density_unit=UnitDensity.LB_FT3,\n output_unit=UnitMass.G,\n src_format=FileImportFormat.FBX,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileMass = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_mass.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_torque_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitTorqueConversion\nfrom kittycad.models.unit_torque import UnitTorque\nfrom kittycad.types import Response\n\n\ndef example_get_torque_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitTorqueConversion, Error]\n ] = get_torque_unit_conversion.sync(\n client=client,\n input_unit=UnitTorque.NEWTON_METRES,\n output_unit=UnitTorque.NEWTON_METRES,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitTorqueConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_torque_unit_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1frequency~1{input_unit}~1{output_unit}/get/x-python",
"path": "/paths/~1auth~1email/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_frequency_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitFrequencyConversion\nfrom kittycad.models.unit_frequency import UnitFrequency\nfrom kittycad.types import Response\n\n\ndef example_get_frequency_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitFrequencyConversion, Error]\n ] = get_frequency_unit_conversion.sync(\n client=client,\n input_unit=UnitFrequency.GIGAHERTZ,\n output_unit=UnitFrequency.GIGAHERTZ,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitFrequencyConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_frequency_unit_conversion.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.hidden import auth_email\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, VerificationToken\nfrom kittycad.models.email_authentication_form import EmailAuthenticationForm\nfrom kittycad.types import Response\n\n\ndef example_auth_email():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[VerificationToken, Error]] = auth_email.sync(\n client=client,\n body=EmailAuthenticationForm(\n email=\"<string>\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: VerificationToken = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.hidden.auth_email.html"
}
},
{
"op": "add",
"path": "/paths/~1ws~1executor~1term/get/x-python",
"path": "/paths/~1.well-known~1ai-plugin.json/get/x-python",
"value": {
"example": "from kittycad.api.executor import create_executor_term\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.types import Response\n\n\ndef example_create_executor_term():\n # Create our client.\n client = ClientFromEnv()\n\n # Connect to the websocket.\n websocket = create_executor_term.sync(\n client=client,\n )\n\n # Send a message.\n websocket.send(\"{}\")\n\n # Get the messages.\n for message in websocket:\n print(message)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.executor.create_executor_term.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.meta import get_ai_plugin_manifest\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import AiPluginManifest, Error\nfrom kittycad.types import Response\n\n\ndef example_get_ai_plugin_manifest():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[AiPluginManifest, Error]\n ] = get_ai_plugin_manifest.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: AiPluginManifest = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_ai_plugin_manifest.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1payment~1tax/get/x-python",
"path": "/paths/~1unit~1conversion~1power~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.payments import validate_customer_tax_information_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_validate_customer_tax_information_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = validate_customer_tax_information_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.validate_customer_tax_information_for_user.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_power_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitPowerConversion\nfrom kittycad.models.unit_power import UnitPower\nfrom kittycad.types import Response\n\n\ndef example_get_power_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitPowerConversion, Error]\n ] = get_power_unit_conversion.sync(\n client=client,\n input_unit=UnitPower.BTU_PER_MINUTE,\n output_unit=UnitPower.BTU_PER_MINUTE,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitPowerConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_power_unit_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1users/get/x-python",
"path": "/paths/~1user~1api-calls/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import list_users\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UserResultsPage\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_users():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[UserResultsPage, Error]] = list_users.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UserResultsPage = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.list_users.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.api_calls import user_list_api_calls\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import ApiCallWithPriceResultsPage, Error\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_user_list_api_calls():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[ApiCallWithPriceResultsPage, Error]\n ] = user_list_api_calls.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ApiCallWithPriceResultsPage = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.api_calls.user_list_api_calls.html"
}
},
{
"op": "add",
"path": "/paths/~1ws~1modeling~1commands/get/x-python",
"path": "/paths/~1apps~1github~1callback/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.modeling import modeling_commands_ws\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, WebSocketResponse\nfrom kittycad.models.rtc_sdp_type import RtcSdpType\nfrom kittycad.models.rtc_session_description import RtcSessionDescription\nfrom kittycad.models.web_socket_request import sdp_offer\nfrom kittycad.types import Response\n\n\ndef example_modeling_commands_ws():\n # Create our client.\n client = ClientFromEnv()\n\n # Connect to the websocket.\n websocket = modeling_commands_ws.sync(\n client=client,\n fps=10,\n unlocked_framerate=False,\n video_res_height=10,\n video_res_width=10,\n webrtc=False,\n body=sdp_offer(\n offer=RtcSessionDescription(\n sdp=\"<string>\",\n type=RtcSdpType.UNSPECIFIED,\n ),\n ),\n )\n\n # Send a message.\n websocket.send(\"{}\")\n\n # Get the messages.\n for message in websocket:\n print(message)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.modeling.modeling_commands_ws.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.apps import apps_github_callback\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_apps_github_callback():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = apps_github_callback.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.apps.apps_github_callback.html"
}
},
{
"op": "add",
"path": "/paths/~1file~1center-of-mass/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.file import create_file_center_of_mass\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileCenterOfMass\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.models.unit_length import UnitLength\nfrom kittycad.types import Response\n\n\ndef example_create_file_center_of_mass():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[FileCenterOfMass, Error]\n ] = create_file_center_of_mass.sync(\n client=client,\n output_unit=UnitLength.CM,\n src_format=FileImportFormat.FBX,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileCenterOfMass = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_center_of_mass.html"
}
},
{
"op": "add",
"path": "/paths/~1_meta~1info/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.meta import get_metadata\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Metadata\nfrom kittycad.types import Response\n\n\ndef example_get_metadata():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Metadata, Error]] = get_metadata.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Metadata = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.get_metadata.html"
}
},
{
@ -545,10 +465,106 @@
},
{
"op": "add",
"path": "/paths/~1users~1{id}/get/x-python",
"path": "/paths/~1user~1payment~1methods/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import get_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, User\nfrom kittycad.types import Response\n\n\ndef example_get_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[User, Error]] = get_user.sync(\n client=client,\n id=\"<string>\",\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: User = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user.html"
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.payments import list_payment_methods_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, PaymentMethod\nfrom kittycad.types import Response\n\n\ndef example_list_payment_methods_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[List[PaymentMethod], Error]\n ] = list_payment_methods_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: List[PaymentMethod] = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.list_payment_methods_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1file~1surface-area/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.file import create_file_surface_area\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileSurfaceArea\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.models.unit_area import UnitArea\nfrom kittycad.types import Response\n\n\ndef example_create_file_surface_area():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[FileSurfaceArea, Error]\n ] = create_file_surface_area.sync(\n client=client,\n output_unit=UnitArea.CM2,\n src_format=FileImportFormat.FBX,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileSurfaceArea = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_surface_area.html"
}
},
{
"op": "add",
"path": "/paths/~1ping/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.meta import ping\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, Pong\nfrom kittycad.types import Response\n\n\ndef example_ping():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[Pong, Error]] = ping.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Pong = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.meta.ping.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1length~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_length_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitLengthConversion\nfrom kittycad.models.unit_length import UnitLength\nfrom kittycad.types import Response\n\n\ndef example_get_length_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitLengthConversion, Error]\n ] = get_length_unit_conversion.sync(\n client=client,\n input_unit=UnitLength.CM,\n output_unit=UnitLength.CM,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitLengthConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_length_unit_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1apps~1github~1webhook/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.apps import apps_github_webhook\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_apps_github_webhook():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = apps_github_webhook.sync(\n client=client,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.apps.apps_github_webhook.html"
}
},
{
"op": "add",
"path": "/paths/~1file~1density/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.file import create_file_density\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileDensity\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.models.unit_density import UnitDensity\nfrom kittycad.models.unit_mass import UnitMass\nfrom kittycad.types import Response\n\n\ndef example_create_file_density():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[FileDensity, Error]] = create_file_density.sync(\n client=client,\n material_mass=3.14,\n material_mass_unit=UnitMass.G,\n output_unit=UnitDensity.LB_FT3,\n src_format=FileImportFormat.FBX,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileDensity = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_density.html"
}
},
{
"op": "add",
"path": "/paths/~1ws~1modeling~1commands/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.modeling import modeling_commands_ws\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, WebSocketRequest, WebSocketResponse\nfrom kittycad.models.rtc_sdp_type import RtcSdpType\nfrom kittycad.models.rtc_session_description import RtcSessionDescription\nfrom kittycad.models.web_socket_request import sdp_offer\nfrom kittycad.types import Response\n\n\ndef example_modeling_commands_ws():\n # Create our client.\n client = ClientFromEnv()\n\n # Connect to the websocket.\n with modeling_commands_ws.WebSocket(\n client=client,\n fps=10,\n unlocked_framerate=False,\n video_res_height=10,\n video_res_width=10,\n webrtc=False,\n ) as websocket:\n # Send a message.\n websocket.send(\n WebSocketRequest(\n sdp_offer(\n offer=RtcSessionDescription(\n sdp=\"<string>\",\n type=RtcSdpType.UNSPECIFIED,\n ),\n )\n )\n )\n\n # Get a message.\n message = websocket.recv()\n print(message)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.modeling.modeling_commands_ws.html"
}
},
{
"op": "add",
"path": "/paths/~1unit~1conversion~1volume~1{input_unit}~1{output_unit}/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.unit import get_volume_unit_conversion\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UnitVolumeConversion\nfrom kittycad.models.unit_volume import UnitVolume\nfrom kittycad.types import Response\n\n\ndef example_get_volume_unit_conversion():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[UnitVolumeConversion, Error]\n ] = get_volume_unit_conversion.sync(\n client=client,\n input_unit=UnitVolume.CM3,\n output_unit=UnitVolume.CM3,\n value=3.14,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UnitVolumeConversion = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.unit.get_volume_unit_conversion.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1payment~1tax/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.payments import validate_customer_tax_information_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error\nfrom kittycad.types import Response\n\n\ndef example_validate_customer_tax_information_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Error] = validate_customer_tax_information_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: Error = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.validate_customer_tax_information_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1apps~1github~1consent/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.apps import apps_github_consent\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import AppClientInfo, Error\nfrom kittycad.types import Response\n\n\ndef example_apps_github_consent():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[AppClientInfo, Error]] = apps_github_consent.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: AppClientInfo = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.apps.apps_github_consent.html"
}
},
{
"op": "add",
"path": "/paths/~1file~1mass/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.file import create_file_mass\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, FileMass\nfrom kittycad.models.file_import_format import FileImportFormat\nfrom kittycad.models.unit_density import UnitDensity\nfrom kittycad.models.unit_mass import UnitMass\nfrom kittycad.types import Response\n\n\ndef example_create_file_mass():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[FileMass, Error]] = create_file_mass.sync(\n client=client,\n material_density=3.14,\n material_density_unit=UnitDensity.LB_FT3,\n output_unit=UnitMass.G,\n src_format=FileImportFormat.FBX,\n body=bytes(\"some bytes\", \"utf-8\"),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: FileMass = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.file.create_file_mass.html"
}
},
{
"op": "add",
"path": "/paths/~1user~1extended/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import get_user_self_extended\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, ExtendedUser\nfrom kittycad.types import Response\n\n\ndef example_get_user_self_extended():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[ExtendedUser, Error]] = get_user_self_extended.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: ExtendedUser = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.get_user_self_extended.html"
}
},
{
"op": "add",
"path": "/paths/~1users/get/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.users import list_users\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, UserResultsPage\nfrom kittycad.models.created_at_sort_mode import CreatedAtSortMode\nfrom kittycad.types import Response\n\n\ndef example_list_users():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[UserResultsPage, Error]] = list_users.sync(\n client=client,\n sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,\n limit=None, # Optional[int]\n page_token=None, # Optional[str]\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: UserResultsPage = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.users.list_users.html"
}
},
{
@ -558,5 +574,21 @@
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.payments import create_payment_intent_for_user\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, PaymentIntent\nfrom kittycad.types import Response\n\n\ndef example_create_payment_intent_for_user():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[\n Union[PaymentIntent, Error]\n ] = create_payment_intent_for_user.sync(\n client=client,\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: PaymentIntent = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.payments.create_payment_intent_for_user.html"
}
},
{
"op": "add",
"path": "/paths/~1ai~1text-to-cad~1{output_format}/post/x-python",
"value": {
"example": "from typing import Any, List, Optional, Tuple, Union\n\nfrom kittycad.api.ai import create_text_to_cad\nfrom kittycad.client import ClientFromEnv\nfrom kittycad.models import Error, TextToCad\nfrom kittycad.models.file_export_format import FileExportFormat\nfrom kittycad.models.text_to_cad_create_body import TextToCadCreateBody\nfrom kittycad.types import Response\n\n\ndef example_create_text_to_cad():\n # Create our client.\n client = ClientFromEnv()\n\n result: Optional[Union[TextToCad, Error]] = create_text_to_cad.sync(\n client=client,\n output_format=FileExportFormat.FBX,\n body=TextToCadCreateBody(\n prompt=\"<string>\",\n ),\n )\n\n if isinstance(result, Error) or result == None:\n print(result)\n raise Exception(\"Error in response\")\n\n body: TextToCad = result\n print(body)\n",
"libDocsLink": "https://python.api.docs.kittycad.io/_autosummary/kittycad.api.ai.create_text_to_cad.html"
}
},
{
"op": "add",
"path": "/info/x-python",
"value": {
"client": "# Create a client with your token.\nfrom kittycad.client import Client\n\nclient = Client(token=\"$TOKEN\")\n\n# - OR -\n\n# Create a new client with your token parsed from the environment variable:\n# `KITTYCAD_API_TOKEN`.\nfrom kittycad.client import ClientFromEnv\n\nclient = ClientFromEnv()\n\n# NOTE: The python library additionally implements asyncio, however all the code samples we\n# show below use the sync functions for ease of use and understanding.\n# Check out the library docs at:\n# https://python.api.docs.kittycad.io/_autosummary/kittycad.api.html#module-kittycad.api\n# for more details.",
"install": "pip install kittycad"
}
}
]

View File

@ -11,30 +11,15 @@ from ...types import Response
def _get_kwargs(
output_format: FileExportFormat,
body: TextToCadCreateBody,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/ai/text-to-cad/{output_format}".format(client.base_url, output_format=output_format,) # noqa: E501
url = "{}/ai/text-to-cad/{output_format}".format(
client.base_url,
output_format=output_format,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -48,18 +33,17 @@ def _get_kwargs(
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[TextToCad, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[TextToCad, Error]]:
if response.status_code == 201:
response_201 = TextToCad.from_dict(response.json())
response_201 = TextToCad(**response.json())
return response_201
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -74,29 +58,14 @@ def _build_response(
def sync_detailed(
output_format: FileExportFormat,
body: TextToCadCreateBody,
*,
client: Client,
) -> Response[Optional[Union[TextToCad, Error]]]:
kwargs = _get_kwargs(
output_format=output_format,
body=body,
client=client,
)
@ -109,60 +78,33 @@ def sync_detailed(
def sync(
output_format: FileExportFormat,
body: TextToCadCreateBody,
*,
client: Client,
) -> Optional[Union[TextToCad, 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.
This is an alpha endpoint. It will change in the future. The current output is honestly pretty bad. So if you find this endpoint, you get what you pay for, which currently is nothing. But in the future will be made a lot better.""" # noqa: E501
) -> Optional[Union[TextToCad, Error]]:
"""Because our source of truth for the resulting model is a STEP file, you will always have STEP file contents when you list your generated models. Any other formats you request here will also be returned when you list your generated models.
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.
One thing to note, if you hit the cache, this endpoint will return right away. So you only have to wait if the status is not `Completed` or `Failed`.
This is an alpha endpoint. It will change in the future. The current output is honestly pretty bad. So if you find this endpoint, you get what you pay for, which currently is nothing. But in the future will be made a lot better.
""" # noqa: E501
return sync_detailed(
output_format=output_format,
body=body,
client=client,
).parsed
async def asyncio_detailed(
output_format: FileExportFormat,
body: TextToCadCreateBody,
*,
client: Client,
) -> Response[Optional[Union[TextToCad, Error]]]:
kwargs = _get_kwargs(
output_format=output_format,
body=body,
client=client,
)
@ -173,33 +115,21 @@ async def asyncio_detailed(
async def asyncio(
output_format: FileExportFormat,
body: TextToCadCreateBody,
*,
client: Client,
) -> Optional[Union[TextToCad, 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.
This is an alpha endpoint. It will change in the future. The current output is honestly pretty bad. So if you find this endpoint, you get what you pay for, which currently is nothing. But in the future will be made a lot better.""" # noqa: E501
) -> Optional[Union[TextToCad, Error]]:
"""Because our source of truth for the resulting model is a STEP file, you will always have STEP file contents when you list your generated models. Any other formats you request here will also be returned when you list your generated models.
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.
One thing to note, if you hit the cache, this endpoint will return right away. So you only have to wait if the status is not `Completed` or `Failed`.
This is an alpha endpoint. It will change in the future. The current output is honestly pretty bad. So if you find this endpoint, you get what you pay for, which currently is nothing. But in the future will be made a lot better.
""" # noqa: E501
return (
await asyncio_detailed(
output_format=output_format,
body=body,
client=client,
)
).parsed

View File

@ -9,27 +9,15 @@ from ...types import Response
def _get_kwargs(
id: str,
feedback: AiFeedback,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/text-to-cad/{id}".format(client.base_url, id=id,) # noqa: E501
url = "{}/user/text-to-cad/{id}".format(
client.base_url,
id=id,
) # noqa: E501
if feedback is not None:
if "?" in url:
@ -37,9 +25,6 @@ def _get_kwargs(
else:
url = url + "?feedback=" + str(feedback)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -48,25 +33,21 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Error] :
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
return None
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
*, response: httpx.Response
) -> Response[Optional[Error]]:
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
return Response(
status_code=response.status_code,
content=response.content,
@ -76,29 +57,14 @@ def _build_response(
def sync_detailed(
id: str,
feedback: AiFeedback,
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
id=id,
feedback=feedback,
client=client,
)
@ -111,59 +77,29 @@ def sync_detailed(
def sync(
id: str,
feedback: AiFeedback,
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This endpoint requires authentication by any KittyCAD user. The user must be the owner of the text-to-CAD model, in order to give feedback.""" # noqa: E501
return sync_detailed(
id=id,
feedback=feedback,
client=client,
).parsed
async def asyncio_detailed(
id: str,
feedback: AiFeedback,
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
id=id,
feedback=feedback,
client=client,
)
@ -174,32 +110,17 @@ async def asyncio_detailed(
async def asyncio(
id: str,
feedback: AiFeedback,
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This endpoint requires authentication by any KittyCAD user. The user must be the owner of the text-to-CAD model, in order to give feedback.""" # noqa: E501
return (
await asyncio_detailed(
id=id,
feedback=feedback,
client=client,
)
).parsed

View File

@ -0,0 +1,115 @@
from typing import Any, Dict, Optional, Union
import httpx
from ...client import Client
from ...models.ai_prompt import AiPrompt
from ...models.error import Error
from ...types import Response
def _get_kwargs(
id: str,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/ai-prompts/{id}".format(
client.base_url,
id=id,
) # 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(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[AiPrompt, Error]]:
if response.status_code == 200:
response_200 = AiPrompt(**response.json())
return response_200
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[AiPrompt, Error]]]:
return Response(
status_code=response.status_code,
content=response.content,
headers=response.headers,
parsed=_parse_response(response=response),
)
def sync_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[AiPrompt, Error]]]:
kwargs = _get_kwargs(
id=id,
client=client,
)
response = httpx.get(
verify=client.verify_ssl,
**kwargs,
)
return _build_response(response=response)
def sync(
id: str,
*,
client: Client,
) -> Optional[Union[AiPrompt, Error]]:
"""This endpoint requires authentication by a KittyCAD employee.""" # noqa: E501
return sync_detailed(
id=id,
client=client,
).parsed
async def asyncio_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[AiPrompt, Error]]]:
kwargs = _get_kwargs(
id=id,
client=client,
)
async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
response = await _client.get(**kwargs)
return _build_response(response=response)
async def asyncio(
id: str,
*,
client: Client,
) -> Optional[Union[AiPrompt, Error]]:
"""This endpoint requires authentication by a KittyCAD employee.""" # noqa: E501
return (
await asyncio_detailed(
id=id,
client=client,
)
).parsed

View File

@ -0,0 +1,115 @@
from typing import Any, Dict, Optional, Union
import httpx
from ...client import Client
from ...models.error import Error
from ...models.text_to_cad import TextToCad
from ...types import Response
def _get_kwargs(
id: str,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/text-to-cad/{id}".format(
client.base_url,
id=id,
) # 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(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[TextToCad, Error]]:
if response.status_code == 200:
response_200 = TextToCad(**response.json())
return response_200
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[TextToCad, Error]]]:
return Response(
status_code=response.status_code,
content=response.content,
headers=response.headers,
parsed=_parse_response(response=response),
)
def sync_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[TextToCad, Error]]]:
kwargs = _get_kwargs(
id=id,
client=client,
)
response = httpx.get(
verify=client.verify_ssl,
**kwargs,
)
return _build_response(response=response)
def sync(
id: str,
*,
client: Client,
) -> Optional[Union[TextToCad, Error]]:
"""This endpoint requires authentication by any KittyCAD user. The user must be the owner of the text-to-CAD model.""" # noqa: E501
return sync_detailed(
id=id,
client=client,
).parsed
async def asyncio_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[TextToCad, Error]]]:
kwargs = _get_kwargs(
id=id,
client=client,
)
async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
response = await _client.get(**kwargs)
return _build_response(response=response)
async def asyncio(
id: str,
*,
client: Client,
) -> Optional[Union[TextToCad, Error]]:
"""This endpoint requires authentication by any KittyCAD user. The user must be the owner of the text-to-CAD model.""" # noqa: E501
return (
await asyncio_detailed(
id=id,
client=client,
)
).parsed

View File

@ -0,0 +1,159 @@
from typing import Any, Dict, Optional, Union
import httpx
from ...client import Client
from ...models.ai_prompt_results_page import AiPromptResultsPage
from ...models.created_at_sort_mode import CreatedAtSortMode
from ...models.error import Error
from ...types import Response
def _get_kwargs(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Dict[str, Any]:
url = "{}/ai-prompts".format(
client.base_url,
) # noqa: E501
if limit is not None:
if "?" in url:
url = url + "&limit=" + str(limit)
else:
url = url + "?limit=" + str(limit)
if page_token is not None:
if "?" in url:
url = url + "&page_token=" + str(page_token)
else:
url = url + "?page_token=" + str(page_token)
if sort_by is not None:
if "?" in url:
url = url + "&sort_by=" + str(sort_by)
else:
url = url + "?sort_by=" + str(sort_by)
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(),
}
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[AiPromptResultsPage, Error]]:
if response.status_code == 200:
response_200 = AiPromptResultsPage(**response.json())
return response_200
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[AiPromptResultsPage, Error]]]:
return Response(
status_code=response.status_code,
content=response.content,
headers=response.headers,
parsed=_parse_response(response=response),
)
def sync_detailed(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[AiPromptResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
response = httpx.get(
verify=client.verify_ssl,
**kwargs,
)
return _build_response(response=response)
def sync(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[AiPromptResultsPage, Error]]:
"""For text-to-cad prompts, this will always return the STEP file contents as well as the format the user originally requested.
This endpoint requires authentication by a KittyCAD employee.
The AI prompts are returned in order of creation, with the most recently created AI prompts first.
""" # noqa: E501
return sync_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
).parsed
async def asyncio_detailed(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[AiPromptResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
response = await _client.get(**kwargs)
return _build_response(response=response)
async def asyncio(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[AiPromptResultsPage, Error]]:
"""For text-to-cad prompts, this will always return the STEP file contents as well as the format the user originally requested.
This endpoint requires authentication by a KittyCAD employee.
The AI prompts are returned in order of creation, with the most recently created AI prompts first.
""" # noqa: E501
return (
await asyncio_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
).parsed

View File

@ -10,31 +10,15 @@ from ...types import Response
def _get_kwargs(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Dict[str, Any]:
url = "{}/user/text-to-cad".format(client.base_url, ) # noqa: E501
url = "{}/user/text-to-cad".format(
client.base_url,
) # noqa: E501
if limit is not None:
if "?" in url:
@ -42,25 +26,18 @@ def _get_kwargs(
else:
url = url + "?limit=" + str(limit)
if page_token is not None:
if "?" in url:
url = url + "&page_token=" + str(page_token)
else:
url = url + "?page_token=" + str(page_token)
if sort_by is not None:
if "?" in url:
url = url + "&sort_by=" + str(sort_by)
else:
url = url + "?sort_by=" + str(sort_by)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -69,22 +46,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[TextToCadResultsPage, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[TextToCadResultsPage, Error]]:
if response.status_code == 200:
response_200 = TextToCadResultsPage.from_dict(response.json())
response_200 = TextToCadResultsPage(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -99,37 +76,16 @@ def _build_response(
def sync_detailed(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[TextToCadResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
@ -142,76 +98,36 @@ def sync_detailed(
def sync(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[TextToCadResultsPage, Error]] :
"""This endpoint requires authentication by any KittyCAD user. It returns the text-to-CAD models for the authenticated user.
The text-to-CAD models are returned in order of creation, with the most recently created text-to-CAD models first.""" # noqa: E501
) -> Optional[Union[TextToCadResultsPage, Error]]:
"""This will always return the STEP file contents as well as the format the user originally requested.
This endpoint requires authentication by any KittyCAD user. It returns the text-to-CAD models for the authenticated user.
The text-to-CAD models are returned in order of creation, with the most recently created text-to-CAD models first.
""" # noqa: E501
return sync_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
).parsed
async def asyncio_detailed(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[TextToCadResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
@ -222,41 +138,22 @@ async def asyncio_detailed(
async def asyncio(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[TextToCadResultsPage, Error]] :
"""This endpoint requires authentication by any KittyCAD user. It returns the text-to-CAD models for the authenticated user.
The text-to-CAD models are returned in order of creation, with the most recently created text-to-CAD models first.""" # noqa: E501
) -> Optional[Union[TextToCadResultsPage, Error]]:
"""This will always return the STEP file contents as well as the format the user originally requested.
This endpoint requires authentication by any KittyCAD user. It returns the text-to-CAD models for the authenticated user.
The text-to-CAD models are returned in order of creation, with the most recently created text-to-CAD models first.
""" # noqa: E501
return (
await asyncio_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
).parsed

View File

@ -9,22 +9,14 @@ from ...types import Response
def _get_kwargs(
id: str,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/api-calls/{id}".format(client.base_url, id=id,) # noqa: E501
url = "{}/api-calls/{id}".format(
client.base_url,
id=id,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -34,22 +26,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[ApiCallWithPrice, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[ApiCallWithPrice, Error]]:
if response.status_code == 200:
response_200 = ApiCallWithPrice.from_dict(response.json())
response_200 = ApiCallWithPrice(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -64,21 +56,12 @@ def _build_response(
def sync_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[ApiCallWithPrice, Error]]]:
kwargs = _get_kwargs(
id=id,
client=client,
)
@ -91,45 +74,27 @@ def sync_detailed(
def sync(
id: str,
*,
client: Client,
) -> Optional[Union[ApiCallWithPrice, Error]] :
) -> Optional[Union[ApiCallWithPrice, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It returns details of the requested API call for the user.
If the user is not authenticated to view the specified API call, then it is not returned.
Only KittyCAD employees can view API calls for other users.""" # noqa: E501
If the user is not authenticated to view the specified API call, then it is not returned.
Only KittyCAD employees can view API calls for other users.""" # noqa: E501
return sync_detailed(
id=id,
client=client,
).parsed
async def asyncio_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[ApiCallWithPrice, Error]]]:
kwargs = _get_kwargs(
id=id,
client=client,
)
@ -140,26 +105,17 @@ async def asyncio_detailed(
async def asyncio(
id: str,
*,
client: Client,
) -> Optional[Union[ApiCallWithPrice, Error]] :
) -> Optional[Union[ApiCallWithPrice, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It returns details of the requested API call for the user.
If the user is not authenticated to view the specified API call, then it is not returned.
Only KittyCAD employees can view API calls for other users.""" # noqa: E501
If the user is not authenticated to view the specified API call, then it is not returned.
Only KittyCAD employees can view API calls for other users.""" # noqa: E501
return (
await asyncio_detailed(
id=id,
client=client,
)
).parsed

View File

@ -9,22 +9,14 @@ from ...types import Response
def _get_kwargs(
id: str,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/api-calls/{id}".format(client.base_url, id=id,) # noqa: E501
url = "{}/user/api-calls/{id}".format(
client.base_url,
id=id,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -34,22 +26,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[ApiCallWithPrice, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[ApiCallWithPrice, Error]]:
if response.status_code == 200:
response_200 = ApiCallWithPrice.from_dict(response.json())
response_200 = ApiCallWithPrice(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -64,21 +56,12 @@ def _build_response(
def sync_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[ApiCallWithPrice, Error]]]:
kwargs = _get_kwargs(
id=id,
client=client,
)
@ -91,43 +74,25 @@ def sync_detailed(
def sync(
id: str,
*,
client: Client,
) -> Optional[Union[ApiCallWithPrice, Error]] :
) -> Optional[Union[ApiCallWithPrice, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It returns details of the requested API call for the user.""" # noqa: E501
return sync_detailed(
id=id,
client=client,
).parsed
async def asyncio_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[ApiCallWithPrice, Error]]]:
kwargs = _get_kwargs(
id=id,
client=client,
)
@ -138,24 +103,15 @@ async def asyncio_detailed(
async def asyncio(
id: str,
*,
client: Client,
) -> Optional[Union[ApiCallWithPrice, Error]] :
) -> Optional[Union[ApiCallWithPrice, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It returns details of the requested API call for the user.""" # noqa: E501
return (
await asyncio_detailed(
id=id,
client=client,
)
).parsed

View File

@ -10,19 +10,13 @@ from ...types import Response
def _get_kwargs(
group_by: ApiCallQueryGroupBy,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/api-call-metrics".format(client.base_url, ) # noqa: E501
url = "{}/api-call-metrics".format(
client.base_url,
) # noqa: E501
if group_by is not None:
if "?" in url:
@ -30,9 +24,6 @@ def _get_kwargs(
else:
url = url + "?group_by=" + str(group_by)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -41,25 +32,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[List[ApiCallQueryGroup], Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[List[ApiCallQueryGroup], Error]]:
if response.status_code == 200:
response_200 = [
ApiCallQueryGroup.from_dict(item)
for item in response.json()
]
response_200 = [ApiCallQueryGroup(**item) for item in response.json()]
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -74,21 +62,12 @@ def _build_response(
def sync_detailed(
group_by: ApiCallQueryGroupBy,
*,
client: Client,
) -> Response[Optional[Union[List[ApiCallQueryGroup], Error]]]:
kwargs = _get_kwargs(
group_by=group_by,
client=client,
)
@ -101,43 +80,25 @@ def sync_detailed(
def sync(
group_by: ApiCallQueryGroupBy,
*,
client: Client,
) -> Optional[Union[List[ApiCallQueryGroup], Error]] :
) -> Optional[Union[List[ApiCallQueryGroup], Error]]:
"""This endpoint requires authentication by a KittyCAD employee. The API calls are grouped by the parameter passed.""" # noqa: E501
return sync_detailed(
group_by=group_by,
client=client,
).parsed
async def asyncio_detailed(
group_by: ApiCallQueryGroupBy,
*,
client: Client,
) -> Response[Optional[Union[List[ApiCallQueryGroup], Error]]]:
kwargs = _get_kwargs(
group_by=group_by,
client=client,
)
@ -148,24 +109,15 @@ async def asyncio_detailed(
async def asyncio(
group_by: ApiCallQueryGroupBy,
*,
client: Client,
) -> Optional[Union[List[ApiCallQueryGroup], Error]] :
) -> Optional[Union[List[ApiCallQueryGroup], Error]]:
"""This endpoint requires authentication by a KittyCAD employee. The API calls are grouped by the parameter passed.""" # noqa: E501
return (
await asyncio_detailed(
group_by=group_by,
client=client,
)
).parsed

View File

@ -15,22 +15,14 @@ from ...types import Response
def _get_kwargs(
id: str,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/async/operations/{id}".format(client.base_url, id=id,) # noqa: E501
url = "{}/async/operations/{id}".format(
client.base_url,
id=id,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -40,17 +32,29 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[FileConversion, FileCenterOfMass, FileMass, FileVolume, FileDensity, FileSurfaceArea, TextToCad, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[
Union[
FileConversion,
FileCenterOfMass,
FileMass,
FileVolume,
FileDensity,
FileSurfaceArea,
TextToCad,
Error,
]
]:
if response.status_code == 200:
data = response.json()
try:
if not isinstance(data, dict):
raise TypeError()
option_file_conversion = FileConversion.from_dict(data)
option_file_conversion = FileConversion(**data)
return option_file_conversion
except ValueError:
pass
@ -59,7 +63,7 @@ def _parse_response(*, response: httpx.Response) -> Optional[Union[FileConversio
try:
if not isinstance(data, dict):
raise TypeError()
option_file_center_of_mass = FileCenterOfMass.from_dict(data)
option_file_center_of_mass = FileCenterOfMass(**data)
return option_file_center_of_mass
except ValueError:
pass
@ -68,7 +72,7 @@ def _parse_response(*, response: httpx.Response) -> Optional[Union[FileConversio
try:
if not isinstance(data, dict):
raise TypeError()
option_file_mass = FileMass.from_dict(data)
option_file_mass = FileMass(**data)
return option_file_mass
except ValueError:
pass
@ -77,7 +81,7 @@ def _parse_response(*, response: httpx.Response) -> Optional[Union[FileConversio
try:
if not isinstance(data, dict):
raise TypeError()
option_file_volume = FileVolume.from_dict(data)
option_file_volume = FileVolume(**data)
return option_file_volume
except ValueError:
pass
@ -86,7 +90,7 @@ def _parse_response(*, response: httpx.Response) -> Optional[Union[FileConversio
try:
if not isinstance(data, dict):
raise TypeError()
option_file_density = FileDensity.from_dict(data)
option_file_density = FileDensity(**data)
return option_file_density
except ValueError:
pass
@ -95,7 +99,7 @@ def _parse_response(*, response: httpx.Response) -> Optional[Union[FileConversio
try:
if not isinstance(data, dict):
raise TypeError()
option_file_surface_area = FileSurfaceArea.from_dict(data)
option_file_surface_area = FileSurfaceArea(**data)
return option_file_surface_area
except ValueError:
pass
@ -104,25 +108,37 @@ def _parse_response(*, response: httpx.Response) -> Optional[Union[FileConversio
try:
if not isinstance(data, dict):
raise TypeError()
option_text_to_cad = TextToCad.from_dict(data)
option_text_to_cad = TextToCad(**data)
return option_text_to_cad
except ValueError:
raise
except TypeError:
raise
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
*, response: httpx.Response
) -> Response[Optional[Union[FileConversion, FileCenterOfMass, FileMass, FileVolume, FileDensity, FileSurfaceArea, TextToCad, Error]]]:
) -> Response[
Optional[
Union[
FileConversion,
FileCenterOfMass,
FileMass,
FileVolume,
FileDensity,
FileSurfaceArea,
TextToCad,
Error,
]
]
]:
return Response(
status_code=response.status_code,
content=response.content,
@ -132,21 +148,25 @@ def _build_response(
def sync_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[FileConversion, FileCenterOfMass, FileMass, FileVolume, FileDensity, FileSurfaceArea, TextToCad, Error]]]:
) -> Response[
Optional[
Union[
FileConversion,
FileCenterOfMass,
FileMass,
FileVolume,
FileDensity,
FileSurfaceArea,
TextToCad,
Error,
]
]
]:
kwargs = _get_kwargs(
id=id,
client=client,
)
@ -159,46 +179,53 @@ def sync_detailed(
def sync(
id: str,
*,
client: Client,
) -> Optional[Union[FileConversion, FileCenterOfMass, FileMass, FileVolume, FileDensity, FileSurfaceArea, TextToCad, Error]] :
) -> Optional[
Union[
FileConversion,
FileCenterOfMass,
FileMass,
FileVolume,
FileDensity,
FileSurfaceArea,
TextToCad,
Error,
]
]:
"""Get the status and output of an async operation.
This endpoint requires authentication by any KittyCAD user. It returns details of the requested async operation for the user.
If the user is not authenticated to view the specified async operation, then it is not returned.
Only KittyCAD employees with the proper access can view async operations for other users.""" # noqa: E501
This endpoint requires authentication by any KittyCAD user. It returns details of the requested async operation for the user.
If the user is not authenticated to view the specified async operation, then it is not returned.
Only KittyCAD employees with the proper access can view async operations for other users.
""" # noqa: E501
return sync_detailed(
id=id,
client=client,
).parsed
async def asyncio_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[FileConversion, FileCenterOfMass, FileMass, FileVolume, FileDensity, FileSurfaceArea, TextToCad, Error]]]:
) -> Response[
Optional[
Union[
FileConversion,
FileCenterOfMass,
FileMass,
FileVolume,
FileDensity,
FileSurfaceArea,
TextToCad,
Error,
]
]
]:
kwargs = _get_kwargs(
id=id,
client=client,
)
@ -209,27 +236,30 @@ async def asyncio_detailed(
async def asyncio(
id: str,
*,
client: Client,
) -> Optional[Union[FileConversion, FileCenterOfMass, FileMass, FileVolume, FileDensity, FileSurfaceArea, TextToCad, Error]] :
) -> Optional[
Union[
FileConversion,
FileCenterOfMass,
FileMass,
FileVolume,
FileDensity,
FileSurfaceArea,
TextToCad,
Error,
]
]:
"""Get the status and output of an async operation.
This endpoint requires authentication by any KittyCAD user. It returns details of the requested async operation for the user.
If the user is not authenticated to view the specified async operation, then it is not returned.
Only KittyCAD employees with the proper access can view async operations for other users.""" # noqa: E501
This endpoint requires authentication by any KittyCAD user. It returns details of the requested async operation for the user.
If the user is not authenticated to view the specified async operation, then it is not returned.
Only KittyCAD employees with the proper access can view async operations for other users.
""" # noqa: E501
return (
await asyncio_detailed(
id=id,
client=client,
)
).parsed

View File

@ -10,31 +10,15 @@ from ...types import Response
def _get_kwargs(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Dict[str, Any]:
url = "{}/api-calls".format(client.base_url, ) # noqa: E501
url = "{}/api-calls".format(
client.base_url,
) # noqa: E501
if limit is not None:
if "?" in url:
@ -42,25 +26,18 @@ def _get_kwargs(
else:
url = url + "?limit=" + str(limit)
if page_token is not None:
if "?" in url:
url = url + "&page_token=" + str(page_token)
else:
url = url + "?page_token=" + str(page_token)
if sort_by is not None:
if "?" in url:
url = url + "&sort_by=" + str(sort_by)
else:
url = url + "?sort_by=" + str(sort_by)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -69,22 +46,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[ApiCallWithPriceResultsPage, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]]:
if response.status_code == 200:
response_200 = ApiCallWithPriceResultsPage.from_dict(response.json())
response_200 = ApiCallWithPriceResultsPage(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -99,37 +76,16 @@ def _build_response(
def sync_detailed(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[ApiCallWithPriceResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
@ -142,75 +98,33 @@ def sync_detailed(
def sync(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]] :
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]]:
"""This endpoint requires authentication by a KittyCAD employee. The API calls are returned in order of creation, with the most recently created API calls first.""" # noqa: E501
return sync_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
).parsed
async def asyncio_detailed(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[ApiCallWithPriceResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
@ -221,40 +135,19 @@ async def asyncio_detailed(
async def asyncio(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]] :
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]]:
"""This endpoint requires authentication by a KittyCAD employee. The API calls are returned in order of creation, with the most recently created API calls first.""" # noqa: E501
return (
await asyncio_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
).parsed

View File

@ -10,39 +10,17 @@ from ...types import Response
def _get_kwargs(
id: str,
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Dict[str, Any]:
url = "{}/users/{id}/api-calls".format(client.base_url, id=id,) # noqa: E501
url = "{}/users/{id}/api-calls".format(
client.base_url,
id=id,
) # noqa: E501
if limit is not None:
if "?" in url:
@ -50,25 +28,18 @@ def _get_kwargs(
else:
url = url + "?limit=" + str(limit)
if page_token is not None:
if "?" in url:
url = url + "&page_token=" + str(page_token)
else:
url = url + "?page_token=" + str(page_token)
if sort_by is not None:
if "?" in url:
url = url + "&sort_by=" + str(sort_by)
else:
url = url + "?sort_by=" + str(sort_by)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -77,22 +48,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[ApiCallWithPriceResultsPage, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]]:
if response.status_code == 200:
response_200 = ApiCallWithPriceResultsPage.from_dict(response.json())
response_200 = ApiCallWithPriceResultsPage(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -107,45 +78,18 @@ def _build_response(
def sync_detailed(
id: str,
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[ApiCallWithPriceResultsPage, Error]]]:
kwargs = _get_kwargs(
id=id,
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
@ -158,94 +102,41 @@ def sync_detailed(
def sync(
id: str,
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]] :
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It returns the API calls for the authenticated user if "me" is passed as the user id.
Alternatively, you can use the `/user/api-calls` endpoint to get the API calls for your user.
If the authenticated user is a KittyCAD employee, then the API calls are returned for the user specified by the user id.
The API calls are returned in order of creation, with the most recently created API calls first.""" # noqa: E501
Alternatively, you can use the `/user/api-calls` endpoint to get the API calls for your user.
If the authenticated user is a KittyCAD employee, then the API calls are returned for the user specified by the user id.
The API calls are returned in order of creation, with the most recently created API calls first.
""" # noqa: E501
return sync_detailed(
id=id,
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
).parsed
async def asyncio_detailed(
id: str,
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[ApiCallWithPriceResultsPage, Error]]]:
kwargs = _get_kwargs(
id=id,
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
@ -256,51 +147,25 @@ async def asyncio_detailed(
async def asyncio(
id: str,
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]] :
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It returns the API calls for the authenticated user if "me" is passed as the user id.
Alternatively, you can use the `/user/api-calls` endpoint to get the API calls for your user.
If the authenticated user is a KittyCAD employee, then the API calls are returned for the user specified by the user id.
The API calls are returned in order of creation, with the most recently created API calls first.""" # noqa: E501
Alternatively, you can use the `/user/api-calls` endpoint to get the API calls for your user.
If the authenticated user is a KittyCAD employee, then the API calls are returned for the user specified by the user id.
The API calls are returned in order of creation, with the most recently created API calls first.
""" # noqa: E501
return (
await asyncio_detailed(
id=id,
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
).parsed

View File

@ -11,37 +11,16 @@ from ...types import Response
def _get_kwargs(
sort_by: CreatedAtSortMode,
status: ApiCallStatus,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Dict[str, Any]:
url = "{}/async/operations".format(client.base_url, ) # noqa: E501
url = "{}/async/operations".format(
client.base_url,
) # noqa: E501
if limit is not None:
if "?" in url:
@ -49,33 +28,24 @@ def _get_kwargs(
else:
url = url + "?limit=" + str(limit)
if page_token is not None:
if "?" in url:
url = url + "&page_token=" + str(page_token)
else:
url = url + "?page_token=" + str(page_token)
if sort_by is not None:
if "?" in url:
url = url + "&sort_by=" + str(sort_by)
else:
url = url + "?sort_by=" + str(sort_by)
if status is not None:
if "?" in url:
url = url + "&status=" + str(status)
else:
url = url + "?status=" + str(status)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -84,22 +54,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[AsyncApiCallResultsPage, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[AsyncApiCallResultsPage, Error]]:
if response.status_code == 200:
response_200 = AsyncApiCallResultsPage.from_dict(response.json())
response_200 = AsyncApiCallResultsPage(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -114,45 +84,18 @@ def _build_response(
def sync_detailed(
sort_by: CreatedAtSortMode,
status: ApiCallStatus,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[AsyncApiCallResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
status=status,
client=client,
)
@ -165,92 +108,38 @@ def sync_detailed(
def sync(
sort_by: CreatedAtSortMode,
status: ApiCallStatus,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[AsyncApiCallResultsPage, Error]] :
) -> Optional[Union[AsyncApiCallResultsPage, Error]]:
"""For async file conversion operations, this endpoint does not return the contents of converted files (`output`). To get the contents use the `/async/operations/{id}` endpoint.
This endpoint requires authentication by a KittyCAD employee.""" # noqa: E501
This endpoint requires authentication by a KittyCAD employee.""" # noqa: E501
return sync_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
status=status,
client=client,
).parsed
async def asyncio_detailed(
sort_by: CreatedAtSortMode,
status: ApiCallStatus,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[AsyncApiCallResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
status=status,
client=client,
)
@ -261,49 +150,22 @@ async def asyncio_detailed(
async def asyncio(
sort_by: CreatedAtSortMode,
status: ApiCallStatus,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[AsyncApiCallResultsPage, Error]] :
) -> Optional[Union[AsyncApiCallResultsPage, Error]]:
"""For async file conversion operations, this endpoint does not return the contents of converted files (`output`). To get the contents use the `/async/operations/{id}` endpoint.
This endpoint requires authentication by a KittyCAD employee.""" # noqa: E501
This endpoint requires authentication by a KittyCAD employee.""" # noqa: E501
return (
await asyncio_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
status=status,
client=client,
)
).parsed

View File

@ -10,31 +10,15 @@ from ...types import Response
def _get_kwargs(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Dict[str, Any]:
url = "{}/user/api-calls".format(client.base_url, ) # noqa: E501
url = "{}/user/api-calls".format(
client.base_url,
) # noqa: E501
if limit is not None:
if "?" in url:
@ -42,25 +26,18 @@ def _get_kwargs(
else:
url = url + "?limit=" + str(limit)
if page_token is not None:
if "?" in url:
url = url + "&page_token=" + str(page_token)
else:
url = url + "?page_token=" + str(page_token)
if sort_by is not None:
if "?" in url:
url = url + "&sort_by=" + str(sort_by)
else:
url = url + "?sort_by=" + str(sort_by)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -69,22 +46,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[ApiCallWithPriceResultsPage, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]]:
if response.status_code == 200:
response_200 = ApiCallWithPriceResultsPage.from_dict(response.json())
response_200 = ApiCallWithPriceResultsPage(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -99,37 +76,16 @@ def _build_response(
def sync_detailed(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[ApiCallWithPriceResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
@ -142,76 +98,35 @@ def sync_detailed(
def sync(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]] :
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It returns the API calls for the authenticated user.
The API calls are returned in order of creation, with the most recently created API calls first.""" # noqa: E501
The API calls are returned in order of creation, with the most recently created API calls first.
""" # noqa: E501
return sync_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
).parsed
async def asyncio_detailed(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[ApiCallWithPriceResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
@ -222,41 +137,21 @@ async def asyncio_detailed(
async def asyncio(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]] :
) -> Optional[Union[ApiCallWithPriceResultsPage, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It returns the API calls for the authenticated user.
The API calls are returned in order of creation, with the most recently created API calls first.""" # noqa: E501
The API calls are returned in order of creation, with the most recently created API calls first.
""" # noqa: E501
return (
await asyncio_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
).parsed

View File

@ -9,14 +9,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/api-tokens".format(client.base_url, ) # noqa: E501
url = "{}/user/api-tokens".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -26,22 +24,20 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[ApiToken, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[ApiToken, Error]]:
if response.status_code == 201:
response_201 = ApiToken.from_dict(response.json())
response_201 = ApiToken(**response.json())
return response_201
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -56,13 +52,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[ApiToken, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -75,27 +68,21 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[ApiToken, Error]] :
) -> Optional[Union[ApiToken, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It creates a new API token for the authenticated user.""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[ApiToken, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -106,16 +93,13 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[ApiToken, Error]] :
) -> Optional[Union[ApiToken, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It creates a new API token for the authenticated user.""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -8,22 +8,14 @@ from ...types import Response
def _get_kwargs(
token: str,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/api-tokens/{token}".format(client.base_url, token=token,) # noqa: E501
url = "{}/user/api-tokens/{token}".format(
client.base_url,
token=token,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -33,25 +25,21 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Error] :
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
return None
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
*, response: httpx.Response
) -> Response[Optional[Error]]:
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
return Response(
status_code=response.status_code,
content=response.content,
@ -61,21 +49,12 @@ def _build_response(
def sync_detailed(
token: str,
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
token=token,
client=client,
)
@ -88,44 +67,27 @@ def sync_detailed(
def sync(
token: str,
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This endpoint requires authentication by any KittyCAD user. It deletes the requested API token for the user.
This endpoint does not actually delete the API token from the database. It merely marks the token as invalid. We still want to keep the token in the database for historical purposes.""" # noqa: E501
This endpoint does not actually delete the API token from the database. It merely marks the token as invalid. We still want to keep the token in the database for historical purposes.
""" # noqa: E501
return sync_detailed(
token=token,
client=client,
).parsed
async def asyncio_detailed(
token: str,
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
token=token,
client=client,
)
@ -136,25 +98,17 @@ async def asyncio_detailed(
async def asyncio(
token: str,
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This endpoint requires authentication by any KittyCAD user. It deletes the requested API token for the user.
This endpoint does not actually delete the API token from the database. It merely marks the token as invalid. We still want to keep the token in the database for historical purposes.""" # noqa: E501
This endpoint does not actually delete the API token from the database. It merely marks the token as invalid. We still want to keep the token in the database for historical purposes.
""" # noqa: E501
return (
await asyncio_detailed(
token=token,
client=client,
)
).parsed

View File

@ -9,22 +9,14 @@ from ...types import Response
def _get_kwargs(
token: str,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/api-tokens/{token}".format(client.base_url, token=token,) # noqa: E501
url = "{}/user/api-tokens/{token}".format(
client.base_url,
token=token,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -34,22 +26,20 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[ApiToken, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[ApiToken, Error]]:
if response.status_code == 200:
response_200 = ApiToken.from_dict(response.json())
response_200 = ApiToken(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -64,21 +54,12 @@ def _build_response(
def sync_detailed(
token: str,
*,
client: Client,
) -> Response[Optional[Union[ApiToken, Error]]]:
kwargs = _get_kwargs(
token=token,
client=client,
)
@ -91,43 +72,25 @@ def sync_detailed(
def sync(
token: str,
*,
client: Client,
) -> Optional[Union[ApiToken, Error]] :
) -> Optional[Union[ApiToken, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It returns details of the requested API token for the user.""" # noqa: E501
return sync_detailed(
token=token,
client=client,
).parsed
async def asyncio_detailed(
token: str,
*,
client: Client,
) -> Response[Optional[Union[ApiToken, Error]]]:
kwargs = _get_kwargs(
token=token,
client=client,
)
@ -138,24 +101,15 @@ async def asyncio_detailed(
async def asyncio(
token: str,
*,
client: Client,
) -> Optional[Union[ApiToken, Error]] :
) -> Optional[Union[ApiToken, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It returns details of the requested API token for the user.""" # noqa: E501
return (
await asyncio_detailed(
token=token,
client=client,
)
).parsed

View File

@ -10,31 +10,15 @@ from ...types import Response
def _get_kwargs(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Dict[str, Any]:
url = "{}/user/api-tokens".format(client.base_url, ) # noqa: E501
url = "{}/user/api-tokens".format(
client.base_url,
) # noqa: E501
if limit is not None:
if "?" in url:
@ -42,25 +26,18 @@ def _get_kwargs(
else:
url = url + "?limit=" + str(limit)
if page_token is not None:
if "?" in url:
url = url + "&page_token=" + str(page_token)
else:
url = url + "?page_token=" + str(page_token)
if sort_by is not None:
if "?" in url:
url = url + "&sort_by=" + str(sort_by)
else:
url = url + "?sort_by=" + str(sort_by)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -69,22 +46,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[ApiTokenResultsPage, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[ApiTokenResultsPage, Error]]:
if response.status_code == 200:
response_200 = ApiTokenResultsPage.from_dict(response.json())
response_200 = ApiTokenResultsPage(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -99,37 +76,16 @@ def _build_response(
def sync_detailed(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[ApiTokenResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
@ -142,76 +98,35 @@ def sync_detailed(
def sync(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[ApiTokenResultsPage, Error]] :
) -> Optional[Union[ApiTokenResultsPage, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It returns the API tokens for the authenticated user.
The API tokens are returned in order of creation, with the most recently created API tokens first.""" # noqa: E501
The API tokens are returned in order of creation, with the most recently created API tokens first.
""" # noqa: E501
return sync_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
).parsed
async def asyncio_detailed(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[ApiTokenResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
@ -222,41 +137,21 @@ async def asyncio_detailed(
async def asyncio(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[ApiTokenResultsPage, Error]] :
) -> Optional[Union[ApiTokenResultsPage, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It returns the API tokens for the authenticated user.
The API tokens are returned in order of creation, with the most recently created API tokens first.""" # noqa: E501
The API tokens are returned in order of creation, with the most recently created API tokens first.
""" # noqa: E501
return (
await asyncio_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
).parsed

View File

@ -8,14 +8,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/apps/github/callback".format(client.base_url, ) # noqa: E501
url = "{}/apps/github/callback".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -25,25 +23,21 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Error] :
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
return None
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
*, response: httpx.Response
) -> Response[Optional[Error]]:
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
return Response(
status_code=response.status_code,
content=response.content,
@ -53,13 +47,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
client=client,
)
@ -72,28 +63,23 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This is different than OAuth 2.0 authentication for users. This endpoint grants access for KittyCAD to access user's repos.
The user doesn't need KittyCAD OAuth authorization for this endpoint, this is purely for the GitHub permissions to access repos.""" # noqa: E501
The user doesn't need KittyCAD OAuth authorization for this endpoint, this is purely for the GitHub permissions to access repos.
""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
client=client,
)
@ -104,17 +90,15 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This is different than OAuth 2.0 authentication for users. This endpoint grants access for KittyCAD to access user's repos.
The user doesn't need KittyCAD OAuth authorization for this endpoint, this is purely for the GitHub permissions to access repos.""" # noqa: E501
The user doesn't need KittyCAD OAuth authorization for this endpoint, this is purely for the GitHub permissions to access repos.
""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -9,14 +9,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/apps/github/consent".format(client.base_url, ) # noqa: E501
url = "{}/apps/github/consent".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -26,22 +24,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[AppClientInfo, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[AppClientInfo, Error]]:
if response.status_code == 200:
response_200 = AppClientInfo.from_dict(response.json())
response_200 = AppClientInfo(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -56,13 +54,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[AppClientInfo, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -75,28 +70,23 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[AppClientInfo, Error]] :
) -> Optional[Union[AppClientInfo, Error]]:
"""This is different than OAuth 2.0 authentication for users. This endpoint grants access for KittyCAD to access user's repos.
The user doesn't need KittyCAD OAuth authorization for this endpoint, this is purely for the GitHub permissions to access repos.""" # noqa: E501
The user doesn't need KittyCAD OAuth authorization for this endpoint, this is purely for the GitHub permissions to access repos.
""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[AppClientInfo, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -107,17 +97,15 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[AppClientInfo, Error]] :
) -> Optional[Union[AppClientInfo, Error]]:
"""This is different than OAuth 2.0 authentication for users. This endpoint grants access for KittyCAD to access user's repos.
The user doesn't need KittyCAD OAuth authorization for this endpoint, this is purely for the GitHub permissions to access repos.""" # noqa: E501
The user doesn't need KittyCAD OAuth authorization for this endpoint, this is purely for the GitHub permissions to access repos.
""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -8,22 +8,13 @@ from ...types import Response
def _get_kwargs(
body: bytes,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/apps/github/webhook".format(client.base_url, ) # noqa: E501
url = "{}/apps/github/webhook".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -37,21 +28,18 @@ def _get_kwargs(
}
def _parse_response(*, response: httpx.Response) -> Optional[Error] :
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
return None
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
*, response: httpx.Response
) -> Response[Optional[Error]]:
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
return Response(
status_code=response.status_code,
content=response.content,
@ -61,21 +49,12 @@ def _build_response(
def sync_detailed(
body: bytes,
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
@ -88,43 +67,25 @@ def sync_detailed(
def sync(
body: bytes,
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""These come from the GitHub app.""" # noqa: E501
return sync_detailed(
body=body,
client=client,
).parsed
async def asyncio_detailed(
body: bytes,
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
@ -135,24 +96,15 @@ async def asyncio_detailed(
async def asyncio(
body: bytes,
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""These come from the GitHub app.""" # noqa: E501
return (
await asyncio_detailed(
body=body,
client=client,
)
).parsed

View File

@ -4,19 +4,14 @@ from websockets.client import WebSocketClientProtocol, connect as ws_connect_asy
from websockets.sync.client import ClientConnection, connect as ws_connect
from ...client import Client
from ...models.error import Error
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/ws/executor/term".format(client.base_url) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -25,46 +20,35 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def sync(
*,
client: Client,
) -> ClientConnection:
"""Attach to a docker container to create an interactive terminal.""" # noqa: E501
kwargs = _get_kwargs(
client=client,
)
with ws_connect(kwargs["url"].replace("https://", "wss://"), additional_headers=kwargs["headers"]) as websocket:
return websocket # type: ignore
# Return an error if we got here.
return Error(message="An error occurred while connecting to the websocket.")
return ws_connect(kwargs["url"].replace("http", "ws"), additional_headers=kwargs["headers"], close_timeout=120, max_size=None) # type: ignore
async def asyncio(
*,
client: Client,
) -> WebSocketClientProtocol:
"""Attach to a docker container to create an interactive terminal.""" # noqa: E501
kwargs = _get_kwargs(
client=client,
)
async with ws_connect_async(kwargs["url"].replace("https://", "wss://"), extra_headers=kwargs["headers"]) as websocket:
return websocket
# Return an error if we got here.
return Error(message="An error occurred while connecting to the websocket.")
return await ws_connect_async(
kwargs["url"].replace("http", "ws"),
extra_headers=kwargs["headers"],
close_timeout=120,
max_size=None,
)

View File

@ -10,33 +10,16 @@ from ...types import Response
def _get_kwargs(
lang: CodeLanguage,
body: bytes,
*,
client: Client,
output: Optional[str] = None,
) -> Dict[str, Any]:
url = "{}/file/execute/{lang}".format(client.base_url, lang=lang,) # noqa: E501
url = "{}/file/execute/{lang}".format(
client.base_url,
lang=lang,
) # noqa: E501
if output is not None:
if "?" in url:
@ -44,11 +27,6 @@ def _get_kwargs(
else:
url = url + "?output=" + str(output)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -61,18 +39,17 @@ def _get_kwargs(
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[CodeOutput, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[CodeOutput, Error]]:
if response.status_code == 200:
response_200 = CodeOutput.from_dict(response.json())
response_200 = CodeOutput(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -87,37 +64,16 @@ def _build_response(
def sync_detailed(
lang: CodeLanguage,
body: bytes,
*,
client: Client,
output: Optional[str] = None,
) -> Response[Optional[Union[CodeOutput, Error]]]:
kwargs = _get_kwargs(
lang=lang,
output=output,
body=body,
client=client,
)
@ -130,75 +86,31 @@ def sync_detailed(
def sync(
lang: CodeLanguage,
body: bytes,
*,
client: Client,
output: Optional[str] = None,
) -> Optional[Union[CodeOutput, Error]] :
) -> Optional[Union[CodeOutput, Error]]:
return sync_detailed(
lang=lang,
output=output,
body=body,
client=client,
).parsed
async def asyncio_detailed(
lang: CodeLanguage,
body: bytes,
*,
client: Client,
output: Optional[str] = None,
) -> Response[Optional[Union[CodeOutput, Error]]]:
kwargs = _get_kwargs(
lang=lang,
output=output,
body=body,
client=client,
)
@ -209,40 +121,17 @@ async def asyncio_detailed(
async def asyncio(
lang: CodeLanguage,
body: bytes,
*,
client: Client,
output: Optional[str] = None,
) -> Optional[Union[CodeOutput, Error]] :
) -> Optional[Union[CodeOutput, Error]]:
return (
await asyncio_detailed(
lang=lang,
output=output,
body=body,
client=client,
)
).parsed

View File

@ -11,31 +11,15 @@ from ...types import Response
def _get_kwargs(
output_unit: UnitLength,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/file/center-of-mass".format(client.base_url, ) # noqa: E501
url = "{}/file/center-of-mass".format(
client.base_url,
) # noqa: E501
if output_unit is not None:
if "?" in url:
@ -43,19 +27,12 @@ def _get_kwargs(
else:
url = url + "?output_unit=" + str(output_unit)
if src_format is not None:
if "?" in url:
url = url + "&src_format=" + str(src_format)
else:
url = url + "?src_format=" + str(src_format)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -68,18 +45,19 @@ def _get_kwargs(
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[FileCenterOfMass, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[FileCenterOfMass, Error]]:
if response.status_code == 201:
response_201 = FileCenterOfMass.from_dict(response.json())
response_201 = FileCenterOfMass(**response.json())
return response_201
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -94,37 +72,16 @@ def _build_response(
def sync_detailed(
output_unit: UnitLength,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Response[Optional[Union[FileCenterOfMass, Error]]]:
kwargs = _get_kwargs(
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
@ -137,79 +94,38 @@ def sync_detailed(
def sync(
output_unit: UnitLength,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Optional[Union[FileCenterOfMass, Error]] :
) -> Optional[Union[FileCenterOfMass, Error]]:
"""We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
This endpoint returns the cartesian co-ordinate in world space measure units.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the center of mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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
This endpoint returns the cartesian coordinate in world space measure units.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the center of mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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(
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
).parsed
async def asyncio_detailed(
output_unit: UnitLength,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Response[Optional[Union[FileCenterOfMass, Error]]]:
kwargs = _get_kwargs(
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
@ -220,44 +136,24 @@ async def asyncio_detailed(
async def asyncio(
output_unit: UnitLength,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Optional[Union[FileCenterOfMass, Error]] :
) -> Optional[Union[FileCenterOfMass, Error]]:
"""We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
This endpoint returns the cartesian co-ordinate in world space measure units.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the center of mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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
This endpoint returns the cartesian coordinate in world space measure units.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the center of mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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(
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
).parsed

View File

@ -11,38 +11,17 @@ from ...types import Response
def _get_kwargs(
output_format: FileExportFormat,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/file/conversion/{src_format}/{output_format}".format(client.base_url, output_format=output_format,src_format=src_format,) # noqa: E501
url = "{}/file/conversion/{src_format}/{output_format}".format(
client.base_url,
output_format=output_format,
src_format=src_format,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -56,18 +35,19 @@ def _get_kwargs(
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[FileConversion, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[FileConversion, Error]]:
if response.status_code == 201:
response_201 = FileConversion.from_dict(response.json())
response_201 = FileConversion(**response.json())
return response_201
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -82,37 +62,16 @@ def _build_response(
def sync_detailed(
output_format: FileExportFormat,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Response[Optional[Union[FileConversion, Error]]]:
kwargs = _get_kwargs(
output_format=output_format,
src_format=src_format,
body=body,
client=client,
)
@ -125,78 +84,37 @@ def sync_detailed(
def sync(
output_format: FileExportFormat,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Optional[Union[FileConversion, Error]] :
) -> Optional[Union[FileConversion, Error]]:
"""If you wish to specify the conversion options, use the `/file/conversion` endpoint instead.
Convert a CAD file from one format to another. If the file being converted is larger than 25MB, it will be performed asynchronously.
If the conversion is performed synchronously, the contents of the converted file (`output`) will be returned as a base64 encoded string.
If the 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
Convert a CAD file from one format to another. If the file being converted is larger than 25MB, it will be performed asynchronously.
If the conversion is performed synchronously, the contents of the converted file (`output`) will be returned as a base64 encoded string.
If the 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(
output_format=output_format,
src_format=src_format,
body=body,
client=client,
).parsed
async def asyncio_detailed(
output_format: FileExportFormat,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Response[Optional[Union[FileConversion, Error]]]:
kwargs = _get_kwargs(
output_format=output_format,
src_format=src_format,
body=body,
client=client,
)
@ -207,43 +125,23 @@ async def asyncio_detailed(
async def asyncio(
output_format: FileExportFormat,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Optional[Union[FileConversion, Error]] :
) -> Optional[Union[FileConversion, Error]]:
"""If you wish to specify the conversion options, use the `/file/conversion` endpoint instead.
Convert a CAD file from one format to another. If the file being converted is larger than 25MB, it will be performed asynchronously.
If the conversion is performed synchronously, the contents of the converted file (`output`) will be returned as a base64 encoded string.
If the 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
Convert a CAD file from one format to another. If the file being converted is larger than 25MB, it will be performed asynchronously.
If the conversion is performed synchronously, the contents of the converted file (`output`) will be returned as a base64 encoded string.
If the 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(
output_format=output_format,
src_format=src_format,
body=body,
client=client,
)
).parsed

View File

@ -12,43 +12,17 @@ from ...types import Response
def _get_kwargs(
material_mass: float,
material_mass_unit: UnitMass,
output_unit: UnitDensity,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/file/density".format(client.base_url, ) # noqa: E501
url = "{}/file/density".format(
client.base_url,
) # noqa: E501
if material_mass is not None:
if "?" in url:
@ -56,35 +30,24 @@ def _get_kwargs(
else:
url = url + "?material_mass=" + str(material_mass)
if material_mass_unit is not None:
if "?" in url:
url = url + "&material_mass_unit=" + str(material_mass_unit)
else:
url = url + "?material_mass_unit=" + str(material_mass_unit)
if output_unit is not None:
if "?" in url:
url = url + "&output_unit=" + str(output_unit)
else:
url = url + "?output_unit=" + str(output_unit)
if src_format is not None:
if "?" in url:
url = url + "&src_format=" + str(src_format)
else:
url = url + "?src_format=" + str(src_format)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -97,18 +60,17 @@ def _get_kwargs(
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[FileDensity, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[FileDensity, Error]]:
if response.status_code == 201:
response_201 = FileDensity.from_dict(response.json())
response_201 = FileDensity(**response.json())
return response_201
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -123,53 +85,20 @@ def _build_response(
def sync_detailed(
material_mass: float,
material_mass_unit: UnitMass,
output_unit: UnitDensity,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Response[Optional[Union[FileDensity, Error]]]:
kwargs = _get_kwargs(
material_mass=material_mass,
material_mass_unit=material_mass_unit,
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
@ -182,111 +111,46 @@ def sync_detailed(
def sync(
material_mass: float,
material_mass_unit: UnitMass,
output_unit: UnitDensity,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Optional[Union[FileDensity, Error]] :
) -> Optional[Union[FileDensity, Error]]:
"""We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
This endpoint assumes if you are giving a material mass in a specific mass units, we return a density in mass unit per cubic measure unit.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the density of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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
This endpoint assumes if you are giving a material mass in a specific mass units, we return a density in mass unit per cubic measure unit.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the density of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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(
material_mass=material_mass,
material_mass_unit=material_mass_unit,
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
).parsed
async def asyncio_detailed(
material_mass: float,
material_mass_unit: UnitMass,
output_unit: UnitDensity,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Response[Optional[Union[FileDensity, Error]]]:
kwargs = _get_kwargs(
material_mass=material_mass,
material_mass_unit=material_mass_unit,
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
@ -297,60 +161,28 @@ async def asyncio_detailed(
async def asyncio(
material_mass: float,
material_mass_unit: UnitMass,
output_unit: UnitDensity,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Optional[Union[FileDensity, Error]] :
) -> Optional[Union[FileDensity, Error]]:
"""We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
This endpoint assumes if you are giving a material mass in a specific mass units, we return a density in mass unit per cubic measure unit.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the density of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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
This endpoint assumes if you are giving a material mass in a specific mass units, we return a density in mass unit per cubic measure unit.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the density of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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(
material_mass=material_mass,
material_mass_unit=material_mass_unit,
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
).parsed

View File

@ -12,43 +12,17 @@ from ...types import Response
def _get_kwargs(
material_density: float,
material_density_unit: UnitDensity,
output_unit: UnitMass,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/file/mass".format(client.base_url, ) # noqa: E501
url = "{}/file/mass".format(
client.base_url,
) # noqa: E501
if material_density is not None:
if "?" in url:
@ -56,35 +30,24 @@ def _get_kwargs(
else:
url = url + "?material_density=" + str(material_density)
if material_density_unit is not None:
if "?" in url:
url = url + "&material_density_unit=" + str(material_density_unit)
else:
url = url + "?material_density_unit=" + str(material_density_unit)
if output_unit is not None:
if "?" in url:
url = url + "&output_unit=" + str(output_unit)
else:
url = url + "?output_unit=" + str(output_unit)
if src_format is not None:
if "?" in url:
url = url + "&src_format=" + str(src_format)
else:
url = url + "?src_format=" + str(src_format)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -97,18 +60,17 @@ def _get_kwargs(
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[FileMass, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[FileMass, Error]]:
if response.status_code == 201:
response_201 = FileMass.from_dict(response.json())
response_201 = FileMass(**response.json())
return response_201
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -123,53 +85,20 @@ def _build_response(
def sync_detailed(
material_density: float,
material_density_unit: UnitDensity,
output_unit: UnitMass,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Response[Optional[Union[FileMass, Error]]]:
kwargs = _get_kwargs(
material_density=material_density,
material_density_unit=material_density_unit,
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
@ -182,111 +111,46 @@ def sync_detailed(
def sync(
material_density: float,
material_density_unit: UnitDensity,
output_unit: UnitMass,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Optional[Union[FileMass, Error]] :
) -> Optional[Union[FileMass, Error]]:
"""We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
This endpoint assumes if you are giving a material density in a specific mass unit per cubic measure unit, we return a mass in mass units. The same mass units as passed in the material density.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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
This endpoint assumes if you are giving a material density in a specific mass unit per cubic measure unit, we return a mass in mass units. The same mass units as passed in the material density.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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(
material_density=material_density,
material_density_unit=material_density_unit,
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
).parsed
async def asyncio_detailed(
material_density: float,
material_density_unit: UnitDensity,
output_unit: UnitMass,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Response[Optional[Union[FileMass, Error]]]:
kwargs = _get_kwargs(
material_density=material_density,
material_density_unit=material_density_unit,
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
@ -297,60 +161,28 @@ async def asyncio_detailed(
async def asyncio(
material_density: float,
material_density_unit: UnitDensity,
output_unit: UnitMass,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Optional[Union[FileMass, Error]] :
) -> Optional[Union[FileMass, Error]]:
"""We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
This endpoint assumes if you are giving a material density in a specific mass unit per cubic measure unit, we return a mass in mass units. The same mass units as passed in the material density.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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
This endpoint assumes if you are giving a material density in a specific mass unit per cubic measure unit, we return a mass in mass units. The same mass units as passed in the material density.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the mass of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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(
material_density=material_density,
material_density_unit=material_density_unit,
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
).parsed

View File

@ -11,31 +11,15 @@ from ...types import Response
def _get_kwargs(
output_unit: UnitArea,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/file/surface-area".format(client.base_url, ) # noqa: E501
url = "{}/file/surface-area".format(
client.base_url,
) # noqa: E501
if output_unit is not None:
if "?" in url:
@ -43,19 +27,12 @@ def _get_kwargs(
else:
url = url + "?output_unit=" + str(output_unit)
if src_format is not None:
if "?" in url:
url = url + "&src_format=" + str(src_format)
else:
url = url + "?src_format=" + str(src_format)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -68,18 +45,19 @@ def _get_kwargs(
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[FileSurfaceArea, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[FileSurfaceArea, Error]]:
if response.status_code == 201:
response_201 = FileSurfaceArea.from_dict(response.json())
response_201 = FileSurfaceArea(**response.json())
return response_201
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -94,37 +72,16 @@ def _build_response(
def sync_detailed(
output_unit: UnitArea,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Response[Optional[Union[FileSurfaceArea, Error]]]:
kwargs = _get_kwargs(
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
@ -137,79 +94,38 @@ def sync_detailed(
def sync(
output_unit: UnitArea,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Optional[Union[FileSurfaceArea, Error]] :
) -> Optional[Union[FileSurfaceArea, Error]]:
"""We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
This endpoint returns the square measure units.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the surface area of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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
This endpoint returns the square measure units.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the surface area of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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(
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
).parsed
async def asyncio_detailed(
output_unit: UnitArea,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Response[Optional[Union[FileSurfaceArea, Error]]]:
kwargs = _get_kwargs(
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
@ -220,44 +136,24 @@ async def asyncio_detailed(
async def asyncio(
output_unit: UnitArea,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Optional[Union[FileSurfaceArea, Error]] :
) -> Optional[Union[FileSurfaceArea, Error]]:
"""We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
This endpoint returns the square measure units.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the surface area of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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
This endpoint returns the square measure units.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the surface area of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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(
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
).parsed

View File

@ -11,31 +11,15 @@ from ...types import Response
def _get_kwargs(
output_unit: UnitVolume,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/file/volume".format(client.base_url, ) # noqa: E501
url = "{}/file/volume".format(
client.base_url,
) # noqa: E501
if output_unit is not None:
if "?" in url:
@ -43,19 +27,12 @@ def _get_kwargs(
else:
url = url + "?output_unit=" + str(output_unit)
if src_format is not None:
if "?" in url:
url = url + "&src_format=" + str(src_format)
else:
url = url + "?src_format=" + str(src_format)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -68,18 +45,17 @@ def _get_kwargs(
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[FileVolume, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[FileVolume, Error]]:
if response.status_code == 201:
response_201 = FileVolume.from_dict(response.json())
response_201 = FileVolume(**response.json())
return response_201
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -94,37 +70,16 @@ def _build_response(
def sync_detailed(
output_unit: UnitVolume,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Response[Optional[Union[FileVolume, Error]]]:
kwargs = _get_kwargs(
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
@ -137,79 +92,38 @@ def sync_detailed(
def sync(
output_unit: UnitVolume,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Optional[Union[FileVolume, Error]] :
) -> Optional[Union[FileVolume, Error]]:
"""We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
This endpoint returns the cubic measure units.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the volume of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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
This endpoint returns the cubic measure units.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the volume of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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(
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
).parsed
async def asyncio_detailed(
output_unit: UnitVolume,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Response[Optional[Union[FileVolume, Error]]]:
kwargs = _get_kwargs(
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
@ -220,44 +134,24 @@ async def asyncio_detailed(
async def asyncio(
output_unit: UnitVolume,
src_format: FileImportFormat,
body: bytes,
*,
client: Client,
) -> Optional[Union[FileVolume, Error]] :
) -> Optional[Union[FileVolume, Error]]:
"""We assume any file given to us has one consistent unit throughout. We also assume the file is at the proper scale.
This endpoint returns the cubic measure units.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the volume of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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
This endpoint returns the cubic measure units.
In the future, we will use the units inside the file if they are given and do any conversions if necessary for the calculation. But currently, that is not supported.
Get the volume of an object in a CAD file. If the file is larger than 25MB, it will be performed asynchronously.
If the 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(
output_unit=output_unit,
src_format=src_format,
body=body,
client=client,
)
).parsed

View File

@ -10,22 +10,13 @@ from ...types import Response
def _get_kwargs(
body: EmailAuthenticationForm,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/auth/email".format(client.base_url, ) # noqa: E501
url = "{}/auth/email".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -39,18 +30,19 @@ def _get_kwargs(
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[VerificationToken, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[VerificationToken, Error]]:
if response.status_code == 201:
response_201 = VerificationToken.from_dict(response.json())
response_201 = VerificationToken(**response.json())
return response_201
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -65,21 +57,12 @@ def _build_response(
def sync_detailed(
body: EmailAuthenticationForm,
*,
client: Client,
) -> Response[Optional[Union[VerificationToken, Error]]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
@ -92,43 +75,23 @@ def sync_detailed(
def sync(
body: EmailAuthenticationForm,
*,
client: Client,
) -> Optional[Union[VerificationToken, Error]] :
) -> Optional[Union[VerificationToken, Error]]:
return sync_detailed(
body=body,
client=client,
).parsed
async def asyncio_detailed(
body: EmailAuthenticationForm,
*,
client: Client,
) -> Response[Optional[Union[VerificationToken, Error]]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
@ -139,24 +102,13 @@ async def asyncio_detailed(
async def asyncio(
body: EmailAuthenticationForm,
*,
client: Client,
) -> Optional[Union[VerificationToken, Error]] :
) -> Optional[Union[VerificationToken, Error]]:
return (
await asyncio_detailed(
body=body,
client=client,
)
).parsed

View File

@ -8,31 +8,15 @@ from ...types import Response
def _get_kwargs(
email: str,
token: str,
*,
client: Client,
callback_url: Optional[str] = None,
) -> Dict[str, Any]:
url = "{}/auth/email/callback".format(client.base_url, ) # noqa: E501
url = "{}/auth/email/callback".format(
client.base_url,
) # noqa: E501
if callback_url is not None:
if "?" in url:
@ -40,25 +24,18 @@ def _get_kwargs(
else:
url = url + "?callback_url=" + str(callback_url)
if email is not None:
if "?" in url:
url = url + "&email=" + str(email)
else:
url = url + "?email=" + str(email)
if token is not None:
if "?" in url:
url = url + "&token=" + str(token)
else:
url = url + "?token=" + str(token)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -67,25 +44,21 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Error] :
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
return None
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
*, response: httpx.Response
) -> Response[Optional[Error]]:
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
return Response(
status_code=response.status_code,
content=response.content,
@ -95,37 +68,16 @@ def _build_response(
def sync_detailed(
email: str,
token: str,
*,
client: Client,
callback_url: Optional[str] = None,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
callback_url=callback_url,
email=email,
token=token,
client=client,
)
@ -138,75 +90,31 @@ def sync_detailed(
def sync(
email: str,
token: str,
*,
client: Client,
callback_url: Optional[str] = None,
) -> Optional[Error] :
) -> Optional[Error]:
return sync_detailed(
callback_url=callback_url,
email=email,
token=token,
client=client,
).parsed
async def asyncio_detailed(
email: str,
token: str,
*,
client: Client,
callback_url: Optional[str] = None,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
callback_url=callback_url,
email=email,
token=token,
client=client,
)
@ -217,40 +125,17 @@ async def asyncio_detailed(
async def asyncio(
email: str,
token: str,
*,
client: Client,
callback_url: Optional[str] = None,
) -> Optional[Error] :
) -> Optional[Error]:
return (
await asyncio_detailed(
callback_url=callback_url,
email=email,
token=token,
client=client,
)
).parsed

View File

@ -8,14 +8,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/logout".format(client.base_url, ) # noqa: E501
url = "{}/logout".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -25,25 +23,21 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Error] :
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
return None
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
*, response: httpx.Response
) -> Response[Optional[Error]]:
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
return Response(
status_code=response.status_code,
content=response.content,
@ -53,13 +47,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
client=client,
)
@ -72,27 +63,21 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This is used in logout scenarios.""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
client=client,
)
@ -103,16 +88,13 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This is used in logout scenarios.""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -9,14 +9,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/.well-known/ai-plugin.json".format(client.base_url, ) # noqa: E501
url = "{}/.well-known/ai-plugin.json".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -26,22 +24,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[AiPluginManifest, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[AiPluginManifest, Error]]:
if response.status_code == 200:
response_200 = AiPluginManifest.from_dict(response.json())
response_200 = AiPluginManifest(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -56,13 +54,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[AiPluginManifest, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -75,27 +70,19 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[AiPluginManifest, Error]] :
) -> Optional[Union[AiPluginManifest, Error]]:
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[AiPluginManifest, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -106,16 +93,11 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[AiPluginManifest, Error]] :
) -> Optional[Union[AiPluginManifest, Error]]:
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -9,14 +9,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/_meta/info".format(client.base_url, ) # noqa: E501
url = "{}/_meta/info".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -26,22 +24,20 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[Metadata, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[Metadata, Error]]:
if response.status_code == 200:
response_200 = Metadata.from_dict(response.json())
response_200 = Metadata(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -56,13 +52,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[Metadata, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -75,28 +68,22 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[Metadata, Error]] :
) -> Optional[Union[Metadata, Error]]:
"""This includes information on any of our other distributed systems it is connected to.
You must be a KittyCAD employee to perform this request.""" # noqa: E501
You must be a KittyCAD employee to perform this request.""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[Metadata, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -107,17 +94,14 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[Metadata, Error]] :
) -> Optional[Union[Metadata, Error]]:
"""This includes information on any of our other distributed systems it is connected to.
You must be a KittyCAD employee to perform this request.""" # noqa: E501
You must be a KittyCAD employee to perform this request.""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -8,14 +8,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/openai/openapi.json".format(client.base_url, ) # noqa: E501
url = "{}/openai/openapi.json".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -25,22 +23,20 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[dict, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[dict, Error]]:
if response.status_code == 200:
response_200 = response.json()
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -55,13 +51,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[dict, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -74,27 +67,21 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[dict, Error]] :
) -> Optional[Union[dict, Error]]:
"""This is the same as the OpenAPI schema, BUT it has some modifications to make it compatible with OpenAI. For example, descriptions must be < 300 chars.""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[dict, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -105,16 +92,13 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[dict, Error]] :
) -> Optional[Union[dict, Error]]:
"""This is the same as the OpenAPI schema, BUT it has some modifications to make it compatible with OpenAI. For example, descriptions must be < 300 chars.""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -8,14 +8,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/".format(client.base_url, ) # noqa: E501
url = "{}/".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -25,22 +23,20 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[dict, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[dict, Error]]:
if response.status_code == 200:
response_200 = response.json()
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -55,13 +51,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[dict, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -74,27 +67,19 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[dict, Error]] :
) -> Optional[Union[dict, Error]]:
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[dict, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -105,16 +90,11 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[dict, Error]] :
) -> Optional[Union[dict, Error]]:
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -0,0 +1,117 @@
from typing import Any, Dict, Optional, Union
import httpx
from ...client import Client
from ...models.api_token import ApiToken
from ...models.error import Error
from ...types import Response
def _get_kwargs(
discord_id: str,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/internal/discord/api-token/{discord_id}".format(
client.base_url,
discord_id=discord_id,
) # 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(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[ApiToken, Error]]:
if response.status_code == 200:
response_200 = ApiToken(**response.json())
return response_200
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[ApiToken, Error]]]:
return Response(
status_code=response.status_code,
content=response.content,
headers=response.headers,
parsed=_parse_response(response=response),
)
def sync_detailed(
discord_id: str,
*,
client: Client,
) -> Response[Optional[Union[ApiToken, Error]]]:
kwargs = _get_kwargs(
discord_id=discord_id,
client=client,
)
response = httpx.get(
verify=client.verify_ssl,
**kwargs,
)
return _build_response(response=response)
def sync(
discord_id: str,
*,
client: Client,
) -> Optional[Union[ApiToken, Error]]:
"""This endpoint allows us to run API calls from our discord bot on behalf of a user. The user must have a discord account linked to their KittyCAD Account via oauth2 for this to work.
You must be a KittyCAD employee to use this endpoint.""" # noqa: E501
return sync_detailed(
discord_id=discord_id,
client=client,
).parsed
async def asyncio_detailed(
discord_id: str,
*,
client: Client,
) -> Response[Optional[Union[ApiToken, Error]]]:
kwargs = _get_kwargs(
discord_id=discord_id,
client=client,
)
async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
response = await _client.get(**kwargs)
return _build_response(response=response)
async def asyncio(
discord_id: str,
*,
client: Client,
) -> Optional[Union[ApiToken, Error]]:
"""This endpoint allows us to run API calls from our discord bot on behalf of a user. The user must have a discord account linked to their KittyCAD Account via oauth2 for this to work.
You must be a KittyCAD employee to use this endpoint.""" # noqa: E501
return (
await asyncio_detailed(
discord_id=discord_id,
client=client,
)
).parsed

View File

@ -9,14 +9,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/ping".format(client.base_url, ) # noqa: E501
url = "{}/ping".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -26,22 +24,20 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[Pong, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[Pong, Error]]:
if response.status_code == 200:
response_200 = Pong.from_dict(response.json())
response_200 = Pong(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -56,13 +52,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[Pong, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -75,27 +68,19 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[Pong, Error]] :
) -> Optional[Union[Pong, Error]]:
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[Pong, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -106,16 +91,11 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[Pong, Error]] :
) -> Optional[Union[Pong, Error]]:
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -1,73 +1,37 @@
from typing import Any, Dict
import json
from typing import Any, Dict, Iterator
import bson
from websockets.client import WebSocketClientProtocol, connect as ws_connect_async
from websockets.sync.client import ClientConnection, connect as ws_connect
from ...client import Client
from ...models.error import Error
from ...models.web_socket_request import WebSocketRequest
from ...models.web_socket_response import WebSocketResponse
def _get_kwargs(
fps: int,
unlocked_framerate: bool,
video_res_height: int,
video_res_width: int,
webrtc: bool,
body: WebSocketRequest,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/ws/modeling/commands".format(client.base_url) # noqa: E501
if fps is not None:
if "?" in url:
url = url + "&fps=" + str(fps)
else:
url = url + "?fps=" + str(fps)
if unlocked_framerate is not None:
if "?" in url:
url = url + "&unlocked_framerate=" + str(unlocked_framerate)
url = url + "&unlocked_framerate=" + str(unlocked_framerate).lower()
else:
url = url + "?unlocked_framerate=" + str(unlocked_framerate)
url = url + "?unlocked_framerate=" + str(unlocked_framerate).lower()
if video_res_height is not None:
if "?" in url:
@ -75,26 +39,17 @@ def _get_kwargs(
else:
url = url + "?video_res_height=" + str(video_res_height)
if video_res_width is not None:
if "?" in url:
url = url + "&video_res_width=" + str(video_res_width)
else:
url = url + "?video_res_width=" + str(video_res_width)
if webrtc is not None:
if "?" in url:
url = url + "&webrtc=" + str(webrtc)
url = url + "&webrtc=" + str(webrtc).lower()
else:
url = url + "?webrtc=" + str(webrtc)
url = url + "?webrtc=" + str(webrtc).lower()
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -104,142 +59,118 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
"content": body,
}
def sync(
fps: int,
unlocked_framerate: bool,
video_res_height: int,
video_res_width: int,
webrtc: bool,
body: WebSocketRequest,
*,
client: Client,
) -> ClientConnection:
"""Pass those commands to the engine via websocket, and pass responses back to the client. Basically, this is a websocket proxy between the frontend/client and the engine.""" # noqa: E501
kwargs = _get_kwargs(
fps=fps,
unlocked_framerate=unlocked_framerate,
video_res_height=video_res_height,
video_res_width=video_res_width,
webrtc=webrtc,
body=body,
client=client,
)
with ws_connect(kwargs["url"].replace("https://", "wss://"), additional_headers=kwargs["headers"]) as websocket:
return websocket # type: ignore
# Return an error if we got here.
return Error(message="An error occurred while connecting to the websocket.")
return ws_connect(kwargs["url"].replace("http", "ws"), additional_headers=kwargs["headers"], close_timeout=120, max_size=None) # type: ignore
async def asyncio(
fps: int,
unlocked_framerate: bool,
video_res_height: int,
video_res_width: int,
webrtc: bool,
body: WebSocketRequest,
*,
client: Client,
) -> WebSocketClientProtocol:
"""Pass those commands to the engine via websocket, and pass responses back to the client. Basically, this is a websocket proxy between the frontend/client and the engine.""" # noqa: E501
kwargs = _get_kwargs(
fps=fps,
unlocked_framerate=unlocked_framerate,
video_res_height=video_res_height,
video_res_width=video_res_width,
webrtc=webrtc,
body=body,
client=client,
)
async with ws_connect_async(kwargs["url"].replace("https://", "wss://"), extra_headers=kwargs["headers"]) as websocket:
return websocket
return await ws_connect_async(
kwargs["url"].replace("http", "ws"),
extra_headers=kwargs["headers"],
close_timeout=120,
max_size=None,
)
# Return an error if we got here.
return Error(message="An error occurred while connecting to the websocket.")
class WebSocket:
"""A websocket connection to the API endpoint."""
ws: ClientConnection
def __init__(
self,
fps: int,
unlocked_framerate: bool,
video_res_height: int,
video_res_width: int,
webrtc: bool,
client: Client,
):
self.ws = sync(
fps,
unlocked_framerate,
video_res_height,
video_res_width,
webrtc,
client=client,
)
def __enter__(
self,
):
return self
def __exit__(self, exc_type, exc_value, traceback):
self.close()
def __iter__(self) -> Iterator[WebSocketResponse]:
"""
Iterate on incoming messages.
The iterator calls :meth:`recv` and yields messages in an infinite loop.
It exits when the connection is closed normally. It raises a
:exc:`~websockets.exceptions.ConnectionClosedError` exception after a
protocol error or a network failure.
"""
for message in self.ws:
yield WebSocketResponse(**json.loads(message))
def send(self, data: WebSocketRequest):
"""Send data to the websocket."""
self.ws.send(json.dumps(data.model_dump()))
def send_binary(self, data: WebSocketRequest):
"""Send data as bson to the websocket."""
self.ws.send(bson.encode(data.model_dump())) # type: ignore
def recv(self) -> WebSocketResponse:
"""Receive data from the websocket."""
message = self.ws.recv(timeout=60)
return WebSocketResponse(**json.loads(message))
def close(self):
"""Close the websocket."""
self.ws.close()

View File

@ -10,22 +10,13 @@ from ...types import Response
def _get_kwargs(
body: BillingInfo,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/payment".format(client.base_url, ) # noqa: E501
url = "{}/user/payment".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -39,18 +30,17 @@ def _get_kwargs(
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[Customer, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[Customer, Error]]:
if response.status_code == 201:
response_201 = Customer.from_dict(response.json())
response_201 = Customer(**response.json())
return response_201
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -65,21 +55,12 @@ def _build_response(
def sync_detailed(
body: BillingInfo,
*,
client: Client,
) -> Response[Optional[Union[Customer, Error]]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
@ -92,44 +73,27 @@ def sync_detailed(
def sync(
body: BillingInfo,
*,
client: Client,
) -> Optional[Union[Customer, Error]] :
) -> Optional[Union[Customer, Error]]:
"""This includes billing address, phone, and name.
This endpoint requires authentication by any KittyCAD user. It creates the payment information for the authenticated user.""" # noqa: E501
This endpoint requires authentication by any KittyCAD user. It creates the payment information for the authenticated user.
""" # noqa: E501
return sync_detailed(
body=body,
client=client,
).parsed
async def asyncio_detailed(
body: BillingInfo,
*,
client: Client,
) -> Response[Optional[Union[Customer, Error]]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
@ -140,25 +104,17 @@ async def asyncio_detailed(
async def asyncio(
body: BillingInfo,
*,
client: Client,
) -> Optional[Union[Customer, Error]] :
) -> Optional[Union[Customer, Error]]:
"""This includes billing address, phone, and name.
This endpoint requires authentication by any KittyCAD user. It creates the payment information for the authenticated user.""" # noqa: E501
This endpoint requires authentication by any KittyCAD user. It creates the payment information for the authenticated user.
""" # noqa: E501
return (
await asyncio_detailed(
body=body,
client=client,
)
).parsed

View File

@ -9,14 +9,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/payment/intent".format(client.base_url, ) # noqa: E501
url = "{}/user/payment/intent".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -26,22 +24,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[PaymentIntent, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[PaymentIntent, Error]]:
if response.status_code == 201:
response_201 = PaymentIntent.from_dict(response.json())
response_201 = PaymentIntent(**response.json())
return response_201
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -56,13 +54,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[PaymentIntent, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -75,27 +70,21 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[PaymentIntent, Error]] :
) -> Optional[Union[PaymentIntent, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It creates a new payment intent for the authenticated user.""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[PaymentIntent, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -106,16 +95,13 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[PaymentIntent, Error]] :
) -> Optional[Union[PaymentIntent, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It creates a new payment intent for the authenticated user.""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -8,14 +8,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/payment".format(client.base_url, ) # noqa: E501
url = "{}/user/payment".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -25,25 +23,21 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Error] :
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
return None
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
*, response: httpx.Response
) -> Response[Optional[Error]]:
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
return Response(
status_code=response.status_code,
content=response.content,
@ -53,13 +47,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
client=client,
)
@ -72,28 +63,23 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This includes billing address, phone, and name.
This endpoint requires authentication by any KittyCAD user. It deletes the payment information for the authenticated user.""" # noqa: E501
This endpoint requires authentication by any KittyCAD user. It deletes the payment information for the authenticated user.
""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
client=client,
)
@ -104,17 +90,15 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This includes billing address, phone, and name.
This endpoint requires authentication by any KittyCAD user. It deletes the payment information for the authenticated user.""" # noqa: E501
This endpoint requires authentication by any KittyCAD user. It deletes the payment information for the authenticated user.
""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -8,22 +8,14 @@ from ...types import Response
def _get_kwargs(
id: str,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/payment/methods/{id}".format(client.base_url, id=id,) # noqa: E501
url = "{}/user/payment/methods/{id}".format(
client.base_url,
id=id,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -33,25 +25,21 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Error] :
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
return None
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
*, response: httpx.Response
) -> Response[Optional[Error]]:
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
return Response(
status_code=response.status_code,
content=response.content,
@ -61,21 +49,12 @@ def _build_response(
def sync_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
id=id,
client=client,
)
@ -88,43 +67,25 @@ def sync_detailed(
def sync(
id: str,
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This endpoint requires authentication by any KittyCAD user. It deletes the specified payment method for the authenticated user.""" # noqa: E501
return sync_detailed(
id=id,
client=client,
).parsed
async def asyncio_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
id=id,
client=client,
)
@ -135,24 +96,15 @@ async def asyncio_detailed(
async def asyncio(
id: str,
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This endpoint requires authentication by any KittyCAD user. It deletes the specified payment method for the authenticated user.""" # noqa: E501
return (
await asyncio_detailed(
id=id,
client=client,
)
).parsed

View File

@ -9,14 +9,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/payment/balance".format(client.base_url, ) # noqa: E501
url = "{}/user/payment/balance".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -26,22 +24,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[CustomerBalance, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[CustomerBalance, Error]]:
if response.status_code == 200:
response_200 = CustomerBalance.from_dict(response.json())
response_200 = CustomerBalance(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -56,13 +54,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -75,27 +70,21 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[CustomerBalance, Error]] :
) -> Optional[Union[CustomerBalance, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It gets the balance information for the authenticated user.""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -106,16 +95,13 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[CustomerBalance, Error]] :
) -> Optional[Union[CustomerBalance, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It gets the balance information for the authenticated user.""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -9,14 +9,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/payment".format(client.base_url, ) # noqa: E501
url = "{}/user/payment".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -26,22 +24,20 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[Customer, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[Customer, Error]]:
if response.status_code == 200:
response_200 = Customer.from_dict(response.json())
response_200 = Customer(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -56,13 +52,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[Customer, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -75,28 +68,23 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[Customer, Error]] :
) -> Optional[Union[Customer, Error]]:
"""This includes billing address, phone, and name.
This endpoint requires authentication by any KittyCAD user. It gets the payment information for the authenticated user.""" # noqa: E501
This endpoint requires authentication by any KittyCAD user. It gets the payment information for the authenticated user.
""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[Customer, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -107,17 +95,15 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[Customer, Error]] :
) -> Optional[Union[Customer, Error]]:
"""This includes billing address, phone, and name.
This endpoint requires authentication by any KittyCAD user. It gets the payment information for the authenticated user.""" # noqa: E501
This endpoint requires authentication by any KittyCAD user. It gets the payment information for the authenticated user.
""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -9,14 +9,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/payment/invoices".format(client.base_url, ) # noqa: E501
url = "{}/user/payment/invoices".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -26,25 +24,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[List[Invoice], Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[List[Invoice], Error]]:
if response.status_code == 200:
response_200 = [
Invoice.from_dict(item)
for item in response.json()
]
response_200 = [Invoice(**item) for item in response.json()]
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -59,13 +54,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[List[Invoice], Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -78,27 +70,21 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[List[Invoice], Error]] :
) -> Optional[Union[List[Invoice], Error]]:
"""This endpoint requires authentication by any KittyCAD user. It lists invoices for the authenticated user.""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[List[Invoice], Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -109,16 +95,13 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[List[Invoice], Error]] :
) -> Optional[Union[List[Invoice], Error]]:
"""This endpoint requires authentication by any KittyCAD user. It lists invoices for the authenticated user.""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -9,14 +9,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/payment/methods".format(client.base_url, ) # noqa: E501
url = "{}/user/payment/methods".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -26,25 +24,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[List[PaymentMethod], Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[List[PaymentMethod], Error]]:
if response.status_code == 200:
response_200 = [
PaymentMethod.from_dict(item)
for item in response.json()
]
response_200 = [PaymentMethod(**item) for item in response.json()]
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -59,13 +54,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[List[PaymentMethod], Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -78,27 +70,21 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[List[PaymentMethod], Error]] :
) -> Optional[Union[List[PaymentMethod], Error]]:
"""This endpoint requires authentication by any KittyCAD user. It lists payment methods for the authenticated user.""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[List[PaymentMethod], Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -109,16 +95,13 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[List[PaymentMethod], Error]] :
) -> Optional[Union[List[PaymentMethod], Error]]:
"""This endpoint requires authentication by any KittyCAD user. It lists payment methods for the authenticated user.""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -10,22 +10,13 @@ from ...types import Response
def _get_kwargs(
body: BillingInfo,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/payment".format(client.base_url, ) # noqa: E501
url = "{}/user/payment".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -39,18 +30,17 @@ def _get_kwargs(
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[Customer, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[Customer, Error]]:
if response.status_code == 200:
response_200 = Customer.from_dict(response.json())
response_200 = Customer(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -65,21 +55,12 @@ def _build_response(
def sync_detailed(
body: BillingInfo,
*,
client: Client,
) -> Response[Optional[Union[Customer, Error]]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
@ -92,44 +73,27 @@ def sync_detailed(
def sync(
body: BillingInfo,
*,
client: Client,
) -> Optional[Union[Customer, Error]] :
) -> Optional[Union[Customer, Error]]:
"""This includes billing address, phone, and name.
This endpoint requires authentication by any KittyCAD user. It updates the payment information for the authenticated user.""" # noqa: E501
This endpoint requires authentication by any KittyCAD user. It updates the payment information for the authenticated user.
""" # noqa: E501
return sync_detailed(
body=body,
client=client,
).parsed
async def asyncio_detailed(
body: BillingInfo,
*,
client: Client,
) -> Response[Optional[Union[Customer, Error]]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
@ -140,25 +104,17 @@ async def asyncio_detailed(
async def asyncio(
body: BillingInfo,
*,
client: Client,
) -> Optional[Union[Customer, Error]] :
) -> Optional[Union[Customer, Error]]:
"""This includes billing address, phone, and name.
This endpoint requires authentication by any KittyCAD user. It updates the payment information for the authenticated user.""" # noqa: E501
This endpoint requires authentication by any KittyCAD user. It updates the payment information for the authenticated user.
""" # noqa: E501
return (
await asyncio_detailed(
body=body,
client=client,
)
).parsed

View File

@ -8,14 +8,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/payment/tax".format(client.base_url, ) # noqa: E501
url = "{}/user/payment/tax".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -25,25 +23,21 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Error] :
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
return None
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
*, response: httpx.Response
) -> Response[Optional[Error]]:
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
return Response(
status_code=response.status_code,
content=response.content,
@ -53,13 +47,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
client=client,
)
@ -72,27 +63,21 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This endpoint requires authentication by any KittyCAD user. It will return an error if the customer's information is not valid for automatic tax. Otherwise, it will return an empty successful response.""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
client=client,
)
@ -103,16 +88,13 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This endpoint requires authentication by any KittyCAD user. It will return an error if the customer's information is not valid for automatic tax. Otherwise, it will return an empty successful response.""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -10,35 +10,17 @@ from ...types import Response
def _get_kwargs(
input_unit: UnitAngle,
output_unit: UnitAngle,
value: float,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/unit/conversion/angle/{input_unit}/{output_unit}".format(client.base_url, input_unit=input_unit,output_unit=output_unit,) # noqa: E501
url = "{}/unit/conversion/angle/{input_unit}/{output_unit}".format(
client.base_url,
input_unit=input_unit,
output_unit=output_unit,
) # noqa: E501
if value is not None:
if "?" in url:
@ -46,9 +28,6 @@ def _get_kwargs(
else:
url = url + "?value=" + str(value)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -57,22 +36,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[UnitAngleConversion, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[UnitAngleConversion, Error]]:
if response.status_code == 200:
response_200 = UnitAngleConversion.from_dict(response.json())
response_200 = UnitAngleConversion(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -87,37 +66,16 @@ def _build_response(
def sync_detailed(
input_unit: UnitAngle,
output_unit: UnitAngle,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitAngleConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -130,75 +88,33 @@ def sync_detailed(
def sync(
input_unit: UnitAngle,
output_unit: UnitAngle,
value: float,
*,
client: Client,
) -> Optional[Union[UnitAngleConversion, Error]] :
) -> Optional[Union[UnitAngleConversion, Error]]:
"""Convert an angle unit value to another angle unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return sync_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
).parsed
async def asyncio_detailed(
input_unit: UnitAngle,
output_unit: UnitAngle,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitAngleConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -209,40 +125,19 @@ async def asyncio_detailed(
async def asyncio(
input_unit: UnitAngle,
output_unit: UnitAngle,
value: float,
*,
client: Client,
) -> Optional[Union[UnitAngleConversion, Error]] :
) -> Optional[Union[UnitAngleConversion, Error]]:
"""Convert an angle unit value to another angle unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return (
await asyncio_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
).parsed

View File

@ -10,35 +10,17 @@ from ...types import Response
def _get_kwargs(
input_unit: UnitArea,
output_unit: UnitArea,
value: float,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/unit/conversion/area/{input_unit}/{output_unit}".format(client.base_url, input_unit=input_unit,output_unit=output_unit,) # noqa: E501
url = "{}/unit/conversion/area/{input_unit}/{output_unit}".format(
client.base_url,
input_unit=input_unit,
output_unit=output_unit,
) # noqa: E501
if value is not None:
if "?" in url:
@ -46,9 +28,6 @@ def _get_kwargs(
else:
url = url + "?value=" + str(value)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -57,22 +36,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[UnitAreaConversion, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[UnitAreaConversion, Error]]:
if response.status_code == 200:
response_200 = UnitAreaConversion.from_dict(response.json())
response_200 = UnitAreaConversion(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -87,37 +66,16 @@ def _build_response(
def sync_detailed(
input_unit: UnitArea,
output_unit: UnitArea,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitAreaConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -130,75 +88,33 @@ def sync_detailed(
def sync(
input_unit: UnitArea,
output_unit: UnitArea,
value: float,
*,
client: Client,
) -> Optional[Union[UnitAreaConversion, Error]] :
) -> Optional[Union[UnitAreaConversion, Error]]:
"""Convert an area unit value to another area unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return sync_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
).parsed
async def asyncio_detailed(
input_unit: UnitArea,
output_unit: UnitArea,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitAreaConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -209,40 +125,19 @@ async def asyncio_detailed(
async def asyncio(
input_unit: UnitArea,
output_unit: UnitArea,
value: float,
*,
client: Client,
) -> Optional[Union[UnitAreaConversion, Error]] :
) -> Optional[Union[UnitAreaConversion, Error]]:
"""Convert an area unit value to another area unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return (
await asyncio_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
).parsed

View File

@ -10,35 +10,17 @@ from ...types import Response
def _get_kwargs(
input_unit: UnitCurrent,
output_unit: UnitCurrent,
value: float,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/unit/conversion/current/{input_unit}/{output_unit}".format(client.base_url, input_unit=input_unit,output_unit=output_unit,) # noqa: E501
url = "{}/unit/conversion/current/{input_unit}/{output_unit}".format(
client.base_url,
input_unit=input_unit,
output_unit=output_unit,
) # noqa: E501
if value is not None:
if "?" in url:
@ -46,9 +28,6 @@ def _get_kwargs(
else:
url = url + "?value=" + str(value)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -57,22 +36,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[UnitCurrentConversion, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[UnitCurrentConversion, Error]]:
if response.status_code == 200:
response_200 = UnitCurrentConversion.from_dict(response.json())
response_200 = UnitCurrentConversion(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -87,37 +66,16 @@ def _build_response(
def sync_detailed(
input_unit: UnitCurrent,
output_unit: UnitCurrent,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitCurrentConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -130,75 +88,33 @@ def sync_detailed(
def sync(
input_unit: UnitCurrent,
output_unit: UnitCurrent,
value: float,
*,
client: Client,
) -> Optional[Union[UnitCurrentConversion, Error]] :
) -> Optional[Union[UnitCurrentConversion, Error]]:
"""Convert a current unit value to another current unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return sync_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
).parsed
async def asyncio_detailed(
input_unit: UnitCurrent,
output_unit: UnitCurrent,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitCurrentConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -209,40 +125,19 @@ async def asyncio_detailed(
async def asyncio(
input_unit: UnitCurrent,
output_unit: UnitCurrent,
value: float,
*,
client: Client,
) -> Optional[Union[UnitCurrentConversion, Error]] :
) -> Optional[Union[UnitCurrentConversion, Error]]:
"""Convert a current unit value to another current unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return (
await asyncio_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
).parsed

View File

@ -10,35 +10,17 @@ from ...types import Response
def _get_kwargs(
input_unit: UnitEnergy,
output_unit: UnitEnergy,
value: float,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/unit/conversion/energy/{input_unit}/{output_unit}".format(client.base_url, input_unit=input_unit,output_unit=output_unit,) # noqa: E501
url = "{}/unit/conversion/energy/{input_unit}/{output_unit}".format(
client.base_url,
input_unit=input_unit,
output_unit=output_unit,
) # noqa: E501
if value is not None:
if "?" in url:
@ -46,9 +28,6 @@ def _get_kwargs(
else:
url = url + "?value=" + str(value)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -57,22 +36,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[UnitEnergyConversion, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[UnitEnergyConversion, Error]]:
if response.status_code == 200:
response_200 = UnitEnergyConversion.from_dict(response.json())
response_200 = UnitEnergyConversion(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -87,37 +66,16 @@ def _build_response(
def sync_detailed(
input_unit: UnitEnergy,
output_unit: UnitEnergy,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitEnergyConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -130,75 +88,33 @@ def sync_detailed(
def sync(
input_unit: UnitEnergy,
output_unit: UnitEnergy,
value: float,
*,
client: Client,
) -> Optional[Union[UnitEnergyConversion, Error]] :
) -> Optional[Union[UnitEnergyConversion, Error]]:
"""Convert a energy unit value to another energy unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return sync_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
).parsed
async def asyncio_detailed(
input_unit: UnitEnergy,
output_unit: UnitEnergy,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitEnergyConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -209,40 +125,19 @@ async def asyncio_detailed(
async def asyncio(
input_unit: UnitEnergy,
output_unit: UnitEnergy,
value: float,
*,
client: Client,
) -> Optional[Union[UnitEnergyConversion, Error]] :
) -> Optional[Union[UnitEnergyConversion, Error]]:
"""Convert a energy unit value to another energy unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return (
await asyncio_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
).parsed

View File

@ -10,35 +10,17 @@ from ...types import Response
def _get_kwargs(
input_unit: UnitForce,
output_unit: UnitForce,
value: float,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/unit/conversion/force/{input_unit}/{output_unit}".format(client.base_url, input_unit=input_unit,output_unit=output_unit,) # noqa: E501
url = "{}/unit/conversion/force/{input_unit}/{output_unit}".format(
client.base_url,
input_unit=input_unit,
output_unit=output_unit,
) # noqa: E501
if value is not None:
if "?" in url:
@ -46,9 +28,6 @@ def _get_kwargs(
else:
url = url + "?value=" + str(value)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -57,22 +36,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[UnitForceConversion, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[UnitForceConversion, Error]]:
if response.status_code == 200:
response_200 = UnitForceConversion.from_dict(response.json())
response_200 = UnitForceConversion(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -87,37 +66,16 @@ def _build_response(
def sync_detailed(
input_unit: UnitForce,
output_unit: UnitForce,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitForceConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -130,75 +88,33 @@ def sync_detailed(
def sync(
input_unit: UnitForce,
output_unit: UnitForce,
value: float,
*,
client: Client,
) -> Optional[Union[UnitForceConversion, Error]] :
) -> Optional[Union[UnitForceConversion, Error]]:
"""Convert a force unit value to another force unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return sync_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
).parsed
async def asyncio_detailed(
input_unit: UnitForce,
output_unit: UnitForce,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitForceConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -209,40 +125,19 @@ async def asyncio_detailed(
async def asyncio(
input_unit: UnitForce,
output_unit: UnitForce,
value: float,
*,
client: Client,
) -> Optional[Union[UnitForceConversion, Error]] :
) -> Optional[Union[UnitForceConversion, Error]]:
"""Convert a force unit value to another force unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return (
await asyncio_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
).parsed

View File

@ -10,35 +10,17 @@ from ...types import Response
def _get_kwargs(
input_unit: UnitFrequency,
output_unit: UnitFrequency,
value: float,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/unit/conversion/frequency/{input_unit}/{output_unit}".format(client.base_url, input_unit=input_unit,output_unit=output_unit,) # noqa: E501
url = "{}/unit/conversion/frequency/{input_unit}/{output_unit}".format(
client.base_url,
input_unit=input_unit,
output_unit=output_unit,
) # noqa: E501
if value is not None:
if "?" in url:
@ -46,9 +28,6 @@ def _get_kwargs(
else:
url = url + "?value=" + str(value)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -57,22 +36,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[UnitFrequencyConversion, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[UnitFrequencyConversion, Error]]:
if response.status_code == 200:
response_200 = UnitFrequencyConversion.from_dict(response.json())
response_200 = UnitFrequencyConversion(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -87,37 +66,16 @@ def _build_response(
def sync_detailed(
input_unit: UnitFrequency,
output_unit: UnitFrequency,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitFrequencyConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -130,75 +88,33 @@ def sync_detailed(
def sync(
input_unit: UnitFrequency,
output_unit: UnitFrequency,
value: float,
*,
client: Client,
) -> Optional[Union[UnitFrequencyConversion, Error]] :
) -> Optional[Union[UnitFrequencyConversion, Error]]:
"""Convert a frequency unit value to another frequency unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return sync_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
).parsed
async def asyncio_detailed(
input_unit: UnitFrequency,
output_unit: UnitFrequency,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitFrequencyConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -209,40 +125,19 @@ async def asyncio_detailed(
async def asyncio(
input_unit: UnitFrequency,
output_unit: UnitFrequency,
value: float,
*,
client: Client,
) -> Optional[Union[UnitFrequencyConversion, Error]] :
) -> Optional[Union[UnitFrequencyConversion, Error]]:
"""Convert a frequency unit value to another frequency unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return (
await asyncio_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
).parsed

View File

@ -10,35 +10,17 @@ from ...types import Response
def _get_kwargs(
input_unit: UnitLength,
output_unit: UnitLength,
value: float,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/unit/conversion/length/{input_unit}/{output_unit}".format(client.base_url, input_unit=input_unit,output_unit=output_unit,) # noqa: E501
url = "{}/unit/conversion/length/{input_unit}/{output_unit}".format(
client.base_url,
input_unit=input_unit,
output_unit=output_unit,
) # noqa: E501
if value is not None:
if "?" in url:
@ -46,9 +28,6 @@ def _get_kwargs(
else:
url = url + "?value=" + str(value)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -57,22 +36,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[UnitLengthConversion, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[UnitLengthConversion, Error]]:
if response.status_code == 200:
response_200 = UnitLengthConversion.from_dict(response.json())
response_200 = UnitLengthConversion(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -87,37 +66,16 @@ def _build_response(
def sync_detailed(
input_unit: UnitLength,
output_unit: UnitLength,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitLengthConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -130,75 +88,33 @@ def sync_detailed(
def sync(
input_unit: UnitLength,
output_unit: UnitLength,
value: float,
*,
client: Client,
) -> Optional[Union[UnitLengthConversion, Error]] :
) -> Optional[Union[UnitLengthConversion, Error]]:
"""Convert a length unit value to another length unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return sync_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
).parsed
async def asyncio_detailed(
input_unit: UnitLength,
output_unit: UnitLength,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitLengthConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -209,40 +125,19 @@ async def asyncio_detailed(
async def asyncio(
input_unit: UnitLength,
output_unit: UnitLength,
value: float,
*,
client: Client,
) -> Optional[Union[UnitLengthConversion, Error]] :
) -> Optional[Union[UnitLengthConversion, Error]]:
"""Convert a length unit value to another length unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return (
await asyncio_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
).parsed

View File

@ -10,35 +10,17 @@ from ...types import Response
def _get_kwargs(
input_unit: UnitMass,
output_unit: UnitMass,
value: float,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/unit/conversion/mass/{input_unit}/{output_unit}".format(client.base_url, input_unit=input_unit,output_unit=output_unit,) # noqa: E501
url = "{}/unit/conversion/mass/{input_unit}/{output_unit}".format(
client.base_url,
input_unit=input_unit,
output_unit=output_unit,
) # noqa: E501
if value is not None:
if "?" in url:
@ -46,9 +28,6 @@ def _get_kwargs(
else:
url = url + "?value=" + str(value)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -57,22 +36,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[UnitMassConversion, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[UnitMassConversion, Error]]:
if response.status_code == 200:
response_200 = UnitMassConversion.from_dict(response.json())
response_200 = UnitMassConversion(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -87,37 +66,16 @@ def _build_response(
def sync_detailed(
input_unit: UnitMass,
output_unit: UnitMass,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitMassConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -130,75 +88,33 @@ def sync_detailed(
def sync(
input_unit: UnitMass,
output_unit: UnitMass,
value: float,
*,
client: Client,
) -> Optional[Union[UnitMassConversion, Error]] :
) -> Optional[Union[UnitMassConversion, Error]]:
"""Convert a mass unit value to another mass unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return sync_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
).parsed
async def asyncio_detailed(
input_unit: UnitMass,
output_unit: UnitMass,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitMassConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -209,40 +125,19 @@ async def asyncio_detailed(
async def asyncio(
input_unit: UnitMass,
output_unit: UnitMass,
value: float,
*,
client: Client,
) -> Optional[Union[UnitMassConversion, Error]] :
) -> Optional[Union[UnitMassConversion, Error]]:
"""Convert a mass unit value to another mass unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return (
await asyncio_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
).parsed

View File

@ -10,35 +10,17 @@ from ...types import Response
def _get_kwargs(
input_unit: UnitPower,
output_unit: UnitPower,
value: float,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/unit/conversion/power/{input_unit}/{output_unit}".format(client.base_url, input_unit=input_unit,output_unit=output_unit,) # noqa: E501
url = "{}/unit/conversion/power/{input_unit}/{output_unit}".format(
client.base_url,
input_unit=input_unit,
output_unit=output_unit,
) # noqa: E501
if value is not None:
if "?" in url:
@ -46,9 +28,6 @@ def _get_kwargs(
else:
url = url + "?value=" + str(value)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -57,22 +36,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[UnitPowerConversion, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[UnitPowerConversion, Error]]:
if response.status_code == 200:
response_200 = UnitPowerConversion.from_dict(response.json())
response_200 = UnitPowerConversion(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -87,37 +66,16 @@ def _build_response(
def sync_detailed(
input_unit: UnitPower,
output_unit: UnitPower,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitPowerConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -130,75 +88,33 @@ def sync_detailed(
def sync(
input_unit: UnitPower,
output_unit: UnitPower,
value: float,
*,
client: Client,
) -> Optional[Union[UnitPowerConversion, Error]] :
) -> Optional[Union[UnitPowerConversion, Error]]:
"""Convert a power unit value to another power unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return sync_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
).parsed
async def asyncio_detailed(
input_unit: UnitPower,
output_unit: UnitPower,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitPowerConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -209,40 +125,19 @@ async def asyncio_detailed(
async def asyncio(
input_unit: UnitPower,
output_unit: UnitPower,
value: float,
*,
client: Client,
) -> Optional[Union[UnitPowerConversion, Error]] :
) -> Optional[Union[UnitPowerConversion, Error]]:
"""Convert a power unit value to another power unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return (
await asyncio_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
).parsed

View File

@ -10,35 +10,17 @@ from ...types import Response
def _get_kwargs(
input_unit: UnitPressure,
output_unit: UnitPressure,
value: float,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/unit/conversion/pressure/{input_unit}/{output_unit}".format(client.base_url, input_unit=input_unit,output_unit=output_unit,) # noqa: E501
url = "{}/unit/conversion/pressure/{input_unit}/{output_unit}".format(
client.base_url,
input_unit=input_unit,
output_unit=output_unit,
) # noqa: E501
if value is not None:
if "?" in url:
@ -46,9 +28,6 @@ def _get_kwargs(
else:
url = url + "?value=" + str(value)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -57,22 +36,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[UnitPressureConversion, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[UnitPressureConversion, Error]]:
if response.status_code == 200:
response_200 = UnitPressureConversion.from_dict(response.json())
response_200 = UnitPressureConversion(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -87,37 +66,16 @@ def _build_response(
def sync_detailed(
input_unit: UnitPressure,
output_unit: UnitPressure,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitPressureConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -130,75 +88,33 @@ def sync_detailed(
def sync(
input_unit: UnitPressure,
output_unit: UnitPressure,
value: float,
*,
client: Client,
) -> Optional[Union[UnitPressureConversion, Error]] :
) -> Optional[Union[UnitPressureConversion, Error]]:
"""Convert a pressure unit value to another pressure unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return sync_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
).parsed
async def asyncio_detailed(
input_unit: UnitPressure,
output_unit: UnitPressure,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitPressureConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -209,40 +125,19 @@ async def asyncio_detailed(
async def asyncio(
input_unit: UnitPressure,
output_unit: UnitPressure,
value: float,
*,
client: Client,
) -> Optional[Union[UnitPressureConversion, Error]] :
) -> Optional[Union[UnitPressureConversion, Error]]:
"""Convert a pressure unit value to another pressure unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return (
await asyncio_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
).parsed

View File

@ -10,35 +10,17 @@ from ...types import Response
def _get_kwargs(
input_unit: UnitTemperature,
output_unit: UnitTemperature,
value: float,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/unit/conversion/temperature/{input_unit}/{output_unit}".format(client.base_url, input_unit=input_unit,output_unit=output_unit,) # noqa: E501
url = "{}/unit/conversion/temperature/{input_unit}/{output_unit}".format(
client.base_url,
input_unit=input_unit,
output_unit=output_unit,
) # noqa: E501
if value is not None:
if "?" in url:
@ -46,9 +28,6 @@ def _get_kwargs(
else:
url = url + "?value=" + str(value)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -57,22 +36,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[UnitTemperatureConversion, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[UnitTemperatureConversion, Error]]:
if response.status_code == 200:
response_200 = UnitTemperatureConversion.from_dict(response.json())
response_200 = UnitTemperatureConversion(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -87,37 +66,16 @@ def _build_response(
def sync_detailed(
input_unit: UnitTemperature,
output_unit: UnitTemperature,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitTemperatureConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -130,75 +88,33 @@ def sync_detailed(
def sync(
input_unit: UnitTemperature,
output_unit: UnitTemperature,
value: float,
*,
client: Client,
) -> Optional[Union[UnitTemperatureConversion, Error]] :
) -> Optional[Union[UnitTemperatureConversion, Error]]:
"""Convert a temperature unit value to another temperature unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return sync_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
).parsed
async def asyncio_detailed(
input_unit: UnitTemperature,
output_unit: UnitTemperature,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitTemperatureConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -209,40 +125,19 @@ async def asyncio_detailed(
async def asyncio(
input_unit: UnitTemperature,
output_unit: UnitTemperature,
value: float,
*,
client: Client,
) -> Optional[Union[UnitTemperatureConversion, Error]] :
) -> Optional[Union[UnitTemperatureConversion, Error]]:
"""Convert a temperature unit value to another temperature unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return (
await asyncio_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
).parsed

View File

@ -10,35 +10,17 @@ from ...types import Response
def _get_kwargs(
input_unit: UnitTorque,
output_unit: UnitTorque,
value: float,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/unit/conversion/torque/{input_unit}/{output_unit}".format(client.base_url, input_unit=input_unit,output_unit=output_unit,) # noqa: E501
url = "{}/unit/conversion/torque/{input_unit}/{output_unit}".format(
client.base_url,
input_unit=input_unit,
output_unit=output_unit,
) # noqa: E501
if value is not None:
if "?" in url:
@ -46,9 +28,6 @@ def _get_kwargs(
else:
url = url + "?value=" + str(value)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -57,22 +36,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[UnitTorqueConversion, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[UnitTorqueConversion, Error]]:
if response.status_code == 200:
response_200 = UnitTorqueConversion.from_dict(response.json())
response_200 = UnitTorqueConversion(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -87,37 +66,16 @@ def _build_response(
def sync_detailed(
input_unit: UnitTorque,
output_unit: UnitTorque,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitTorqueConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -130,75 +88,33 @@ def sync_detailed(
def sync(
input_unit: UnitTorque,
output_unit: UnitTorque,
value: float,
*,
client: Client,
) -> Optional[Union[UnitTorqueConversion, Error]] :
) -> Optional[Union[UnitTorqueConversion, Error]]:
"""Convert a torque unit value to another torque unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return sync_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
).parsed
async def asyncio_detailed(
input_unit: UnitTorque,
output_unit: UnitTorque,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitTorqueConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -209,40 +125,19 @@ async def asyncio_detailed(
async def asyncio(
input_unit: UnitTorque,
output_unit: UnitTorque,
value: float,
*,
client: Client,
) -> Optional[Union[UnitTorqueConversion, Error]] :
) -> Optional[Union[UnitTorqueConversion, Error]]:
"""Convert a torque unit value to another torque unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return (
await asyncio_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
).parsed

View File

@ -10,35 +10,17 @@ from ...types import Response
def _get_kwargs(
input_unit: UnitVolume,
output_unit: UnitVolume,
value: float,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/unit/conversion/volume/{input_unit}/{output_unit}".format(client.base_url, input_unit=input_unit,output_unit=output_unit,) # noqa: E501
url = "{}/unit/conversion/volume/{input_unit}/{output_unit}".format(
client.base_url,
input_unit=input_unit,
output_unit=output_unit,
) # noqa: E501
if value is not None:
if "?" in url:
@ -46,9 +28,6 @@ def _get_kwargs(
else:
url = url + "?value=" + str(value)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -57,22 +36,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[UnitVolumeConversion, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[UnitVolumeConversion, Error]]:
if response.status_code == 200:
response_200 = UnitVolumeConversion.from_dict(response.json())
response_200 = UnitVolumeConversion(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -87,37 +66,16 @@ def _build_response(
def sync_detailed(
input_unit: UnitVolume,
output_unit: UnitVolume,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitVolumeConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -130,75 +88,33 @@ def sync_detailed(
def sync(
input_unit: UnitVolume,
output_unit: UnitVolume,
value: float,
*,
client: Client,
) -> Optional[Union[UnitVolumeConversion, Error]] :
) -> Optional[Union[UnitVolumeConversion, Error]]:
"""Convert a volume unit value to another volume unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return sync_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
).parsed
async def asyncio_detailed(
input_unit: UnitVolume,
output_unit: UnitVolume,
value: float,
*,
client: Client,
) -> Response[Optional[Union[UnitVolumeConversion, Error]]]:
kwargs = _get_kwargs(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
@ -209,40 +125,19 @@ async def asyncio_detailed(
async def asyncio(
input_unit: UnitVolume,
output_unit: UnitVolume,
value: float,
*,
client: Client,
) -> Optional[Union[UnitVolumeConversion, Error]] :
) -> Optional[Union[UnitVolumeConversion, Error]]:
"""Convert a volume unit value to another volume unit value. This is a nice endpoint to use for helper functions.""" # noqa: E501
return (
await asyncio_detailed(
input_unit=input_unit,
output_unit=output_unit,
value=value,
client=client,
)
).parsed

View File

@ -8,14 +8,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user".format(client.base_url, ) # noqa: E501
url = "{}/user".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -25,25 +23,21 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Error] :
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
return None
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
*, response: httpx.Response
) -> Response[Optional[Error]]:
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
return Response(
status_code=response.status_code,
content=response.content,
@ -53,13 +47,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
client=client,
)
@ -72,28 +63,23 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This endpoint requires authentication by any KittyCAD user. It deletes the authenticated user from KittyCAD's database.
This call will only succeed if all invoices associated with the user have been paid in full and there is no outstanding balance.""" # noqa: E501
This call will only succeed if all invoices associated with the user have been paid in full and there is no outstanding balance.
""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
client=client,
)
@ -104,17 +90,15 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Error] :
) -> Optional[Error]:
"""This endpoint requires authentication by any KittyCAD user. It deletes the authenticated user from KittyCAD's database.
This call will only succeed if all invoices associated with the user have been paid in full and there is no outstanding balance.""" # noqa: E501
This call will only succeed if all invoices associated with the user have been paid in full and there is no outstanding balance.
""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -9,22 +9,14 @@ from ...types import Response
def _get_kwargs(
token: str,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/session/{token}".format(client.base_url, token=token,) # noqa: E501
url = "{}/user/session/{token}".format(
client.base_url,
token=token,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -34,22 +26,20 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[Session, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[Session, Error]]:
if response.status_code == 200:
response_200 = Session.from_dict(response.json())
response_200 = Session(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -64,21 +54,12 @@ def _build_response(
def sync_detailed(
token: str,
*,
client: Client,
) -> Response[Optional[Union[Session, Error]]]:
kwargs = _get_kwargs(
token=token,
client=client,
)
@ -91,43 +72,25 @@ def sync_detailed(
def sync(
token: str,
*,
client: Client,
) -> Optional[Union[Session, Error]] :
) -> Optional[Union[Session, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It returns details of the requested API token for the user.""" # noqa: E501
return sync_detailed(
token=token,
client=client,
).parsed
async def asyncio_detailed(
token: str,
*,
client: Client,
) -> Response[Optional[Union[Session, Error]]]:
kwargs = _get_kwargs(
token=token,
client=client,
)
@ -138,24 +101,15 @@ async def asyncio_detailed(
async def asyncio(
token: str,
*,
client: Client,
) -> Optional[Union[Session, Error]] :
) -> Optional[Union[Session, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It returns details of the requested API token for the user.""" # noqa: E501
return (
await asyncio_detailed(
token=token,
client=client,
)
).parsed

View File

@ -9,22 +9,14 @@ from ...types import Response
def _get_kwargs(
id: str,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/users/{id}".format(client.base_url, id=id,) # noqa: E501
url = "{}/users/{id}".format(
client.base_url,
id=id,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -34,22 +26,20 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[User, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[User, Error]]:
if response.status_code == 200:
response_200 = User.from_dict(response.json())
response_200 = User(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -64,21 +54,12 @@ def _build_response(
def sync_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[User, Error]]]:
kwargs = _get_kwargs(
id=id,
client=client,
)
@ -91,45 +72,27 @@ def sync_detailed(
def sync(
id: str,
*,
client: Client,
) -> Optional[Union[User, Error]] :
) -> Optional[Union[User, Error]]:
"""To get information about yourself, use `/users/me` as the endpoint. By doing so you will get the user information for the authenticated user.
Alternatively, to get information about the authenticated user, use `/user` endpoint.
To get information about any KittyCAD user, you must be a KittyCAD employee.""" # noqa: E501
Alternatively, to get information about the authenticated user, use `/user` endpoint.
To get information about any KittyCAD user, you must be a KittyCAD employee.""" # noqa: E501
return sync_detailed(
id=id,
client=client,
).parsed
async def asyncio_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[User, Error]]]:
kwargs = _get_kwargs(
id=id,
client=client,
)
@ -140,26 +103,17 @@ async def asyncio_detailed(
async def asyncio(
id: str,
*,
client: Client,
) -> Optional[Union[User, Error]] :
) -> Optional[Union[User, Error]]:
"""To get information about yourself, use `/users/me` as the endpoint. By doing so you will get the user information for the authenticated user.
Alternatively, to get information about the authenticated user, use `/user` endpoint.
To get information about any KittyCAD user, you must be a KittyCAD employee.""" # noqa: E501
Alternatively, to get information about the authenticated user, use `/user` endpoint.
To get information about any KittyCAD user, you must be a KittyCAD employee.""" # noqa: E501
return (
await asyncio_detailed(
id=id,
client=client,
)
).parsed

View File

@ -9,22 +9,14 @@ from ...types import Response
def _get_kwargs(
id: str,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/users-extended/{id}".format(client.base_url, id=id,) # noqa: E501
url = "{}/users-extended/{id}".format(
client.base_url,
id=id,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -34,22 +26,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[ExtendedUser, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[ExtendedUser, Error]]:
if response.status_code == 200:
response_200 = ExtendedUser.from_dict(response.json())
response_200 = ExtendedUser(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -64,21 +56,12 @@ def _build_response(
def sync_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[ExtendedUser, Error]]]:
kwargs = _get_kwargs(
id=id,
client=client,
)
@ -91,45 +74,27 @@ def sync_detailed(
def sync(
id: str,
*,
client: Client,
) -> Optional[Union[ExtendedUser, Error]] :
) -> Optional[Union[ExtendedUser, Error]]:
"""To get information about yourself, use `/users-extended/me` as the endpoint. By doing so you will get the user information for the authenticated user.
Alternatively, to get information about the authenticated user, use `/user/extended` endpoint.
To get information about any KittyCAD user, you must be a KittyCAD employee.""" # noqa: E501
Alternatively, to get information about the authenticated user, use `/user/extended` endpoint.
To get information about any KittyCAD user, you must be a KittyCAD employee.""" # noqa: E501
return sync_detailed(
id=id,
client=client,
).parsed
async def asyncio_detailed(
id: str,
*,
client: Client,
) -> Response[Optional[Union[ExtendedUser, Error]]]:
kwargs = _get_kwargs(
id=id,
client=client,
)
@ -140,26 +105,17 @@ async def asyncio_detailed(
async def asyncio(
id: str,
*,
client: Client,
) -> Optional[Union[ExtendedUser, Error]] :
) -> Optional[Union[ExtendedUser, Error]]:
"""To get information about yourself, use `/users-extended/me` as the endpoint. By doing so you will get the user information for the authenticated user.
Alternatively, to get information about the authenticated user, use `/user/extended` endpoint.
To get information about any KittyCAD user, you must be a KittyCAD employee.""" # noqa: E501
Alternatively, to get information about the authenticated user, use `/user/extended` endpoint.
To get information about any KittyCAD user, you must be a KittyCAD employee.""" # noqa: E501
return (
await asyncio_detailed(
id=id,
client=client,
)
).parsed

View File

@ -8,14 +8,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/front-hash".format(client.base_url, ) # noqa: E501
url = "{}/user/front-hash".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -25,22 +23,20 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[str, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[str, Error]]:
if response.status_code == 200:
response_200 = response.text
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -55,13 +51,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[str, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -74,27 +67,21 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[str, Error]] :
) -> Optional[Union[str, Error]]:
"""This info is sent to front when initialing the front chat, it prevents impersonations using js hacks in the browser""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[str, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -105,16 +92,13 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[str, Error]] :
) -> Optional[Union[str, Error]]:
"""This info is sent to front when initialing the front chat, it prevents impersonations using js hacks in the browser""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -9,14 +9,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/onboarding".format(client.base_url, ) # noqa: E501
url = "{}/user/onboarding".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -26,22 +24,20 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[Onboarding, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[Onboarding, Error]]:
if response.status_code == 200:
response_200 = Onboarding.from_dict(response.json())
response_200 = Onboarding(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -56,13 +52,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[Onboarding, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -75,27 +68,21 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[Onboarding, Error]] :
) -> Optional[Union[Onboarding, Error]]:
"""Checks key part of their api usage to determine their onboarding progress""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[Onboarding, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -106,16 +93,13 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[Onboarding, Error]] :
) -> Optional[Union[Onboarding, Error]]:
"""Checks key part of their api usage to determine their onboarding progress""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -9,14 +9,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user".format(client.base_url, ) # noqa: E501
url = "{}/user".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -26,22 +24,20 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[User, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[User, Error]]:
if response.status_code == 200:
response_200 = User.from_dict(response.json())
response_200 = User(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -56,13 +52,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[User, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -75,28 +68,22 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[User, Error]] :
) -> Optional[Union[User, Error]]:
"""Get the user information for the authenticated user.
Alternatively, you can also use the `/users/me` endpoint.""" # noqa: E501
Alternatively, you can also use the `/users/me` endpoint.""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[User, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -107,17 +94,14 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[User, Error]] :
) -> Optional[Union[User, Error]]:
"""Get the user information for the authenticated user.
Alternatively, you can also use the `/users/me` endpoint.""" # noqa: E501
Alternatively, you can also use the `/users/me` endpoint.""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -9,14 +9,12 @@ from ...types import Response
def _get_kwargs(
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/extended".format(client.base_url, ) # noqa: E501
url = "{}/user/extended".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -26,22 +24,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[ExtendedUser, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[ExtendedUser, Error]]:
if response.status_code == 200:
response_200 = ExtendedUser.from_dict(response.json())
response_200 = ExtendedUser(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -56,13 +54,10 @@ def _build_response(
def sync_detailed(
*,
client: Client,
) -> Response[Optional[Union[ExtendedUser, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -75,28 +70,22 @@ def sync_detailed(
def sync(
*,
client: Client,
) -> Optional[Union[ExtendedUser, Error]] :
) -> Optional[Union[ExtendedUser, Error]]:
"""Get the user information for the authenticated user.
Alternatively, you can also use the `/users-extended/me` endpoint.""" # noqa: E501
Alternatively, you can also use the `/users-extended/me` endpoint.""" # noqa: E501
return sync_detailed(
client=client,
).parsed
async def asyncio_detailed(
*,
client: Client,
) -> Response[Optional[Union[ExtendedUser, Error]]]:
kwargs = _get_kwargs(
client=client,
)
@ -107,17 +96,14 @@ async def asyncio_detailed(
async def asyncio(
*,
client: Client,
) -> Optional[Union[ExtendedUser, Error]] :
) -> Optional[Union[ExtendedUser, Error]]:
"""Get the user information for the authenticated user.
Alternatively, you can also use the `/users-extended/me` endpoint.""" # noqa: E501
Alternatively, you can also use the `/users-extended/me` endpoint.""" # noqa: E501
return (
await asyncio_detailed(
client=client,
)
).parsed

View File

@ -10,31 +10,15 @@ from ...types import Response
def _get_kwargs(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Dict[str, Any]:
url = "{}/users".format(client.base_url, ) # noqa: E501
url = "{}/users".format(
client.base_url,
) # noqa: E501
if limit is not None:
if "?" in url:
@ -42,25 +26,18 @@ def _get_kwargs(
else:
url = url + "?limit=" + str(limit)
if page_token is not None:
if "?" in url:
url = url + "&page_token=" + str(page_token)
else:
url = url + "?page_token=" + str(page_token)
if sort_by is not None:
if "?" in url:
url = url + "&sort_by=" + str(sort_by)
else:
url = url + "?sort_by=" + str(sort_by)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -69,22 +46,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[UserResultsPage, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[UserResultsPage, Error]]:
if response.status_code == 200:
response_200 = UserResultsPage.from_dict(response.json())
response_200 = UserResultsPage(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -99,37 +76,16 @@ def _build_response(
def sync_detailed(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[UserResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
@ -142,75 +98,33 @@ def sync_detailed(
def sync(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[UserResultsPage, Error]] :
) -> Optional[Union[UserResultsPage, Error]]:
"""This endpoint required authentication by a KittyCAD employee. The users are returned in order of creation, with the most recently created users first.""" # noqa: E501
return sync_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
).parsed
async def asyncio_detailed(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[UserResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
@ -221,40 +135,19 @@ async def asyncio_detailed(
async def asyncio(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[UserResultsPage, Error]] :
) -> Optional[Union[UserResultsPage, Error]]:
"""This endpoint required authentication by a KittyCAD employee. The users are returned in order of creation, with the most recently created users first.""" # noqa: E501
return (
await asyncio_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
).parsed

View File

@ -10,31 +10,15 @@ from ...types import Response
def _get_kwargs(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Dict[str, Any]:
url = "{}/users-extended".format(client.base_url, ) # noqa: E501
url = "{}/users-extended".format(
client.base_url,
) # noqa: E501
if limit is not None:
if "?" in url:
@ -42,25 +26,18 @@ def _get_kwargs(
else:
url = url + "?limit=" + str(limit)
if page_token is not None:
if "?" in url:
url = url + "&page_token=" + str(page_token)
else:
url = url + "?page_token=" + str(page_token)
if sort_by is not None:
if "?" in url:
url = url + "&sort_by=" + str(sort_by)
else:
url = url + "?sort_by=" + str(sort_by)
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -69,22 +46,22 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[ExtendedUserResultsPage, Error]] :
def _parse_response(
*, response: httpx.Response
) -> Optional[Union[ExtendedUserResultsPage, Error]]:
if response.status_code == 200:
response_200 = ExtendedUserResultsPage.from_dict(response.json())
response_200 = ExtendedUserResultsPage(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -99,37 +76,16 @@ def _build_response(
def sync_detailed(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[ExtendedUserResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
@ -142,75 +98,33 @@ def sync_detailed(
def sync(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[ExtendedUserResultsPage, Error]] :
) -> Optional[Union[ExtendedUserResultsPage, Error]]:
"""This endpoint required authentication by a KittyCAD employee. The users are returned in order of creation, with the most recently created users first.""" # noqa: E501
return sync_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
).parsed
async def asyncio_detailed(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Response[Optional[Union[ExtendedUserResultsPage, Error]]]:
kwargs = _get_kwargs(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
@ -221,40 +135,19 @@ async def asyncio_detailed(
async def asyncio(
sort_by: CreatedAtSortMode,
*,
client: Client,
limit: Optional[int] = None,
page_token: Optional[str] = None,
) -> Optional[Union[ExtendedUserResultsPage, Error]] :
) -> Optional[Union[ExtendedUserResultsPage, Error]]:
"""This endpoint required authentication by a KittyCAD employee. The users are returned in order of creation, with the most recently created users first.""" # noqa: E501
return (
await asyncio_detailed(
limit=limit,
page_token=page_token,
sort_by=sort_by,
client=client,
)
).parsed

View File

@ -10,22 +10,13 @@ from ...types import Response
def _get_kwargs(
body: UpdateUser,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user".format(client.base_url, ) # noqa: E501
url = "{}/user".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
@ -39,18 +30,17 @@ def _get_kwargs(
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[User, Error]] :
def _parse_response(*, response: httpx.Response) -> Optional[Union[User, Error]]:
if response.status_code == 200:
response_200 = User.from_dict(response.json())
response_200 = User(**response.json())
return response_200
if response.status_code == 400:
response_4XX = Error.from_dict(response.json())
response_4XX = Error(**response.json())
return response_4XX
if response.status_code == 500:
response_5XX = Error.from_dict(response.json())
response_5XX = Error(**response.json())
return response_5XX
return Error.from_dict(response.json())
return Error(**response.json())
def _build_response(
@ -65,21 +55,12 @@ def _build_response(
def sync_detailed(
body: UpdateUser,
*,
client: Client,
) -> Response[Optional[Union[User, Error]]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
@ -92,43 +73,25 @@ def sync_detailed(
def sync(
body: UpdateUser,
*,
client: Client,
) -> Optional[Union[User, Error]] :
) -> Optional[Union[User, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It updates information about the authenticated user.""" # noqa: E501
return sync_detailed(
body=body,
client=client,
).parsed
async def asyncio_detailed(
body: UpdateUser,
*,
client: Client,
) -> Response[Optional[Union[User, Error]]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
@ -139,24 +102,15 @@ async def asyncio_detailed(
async def asyncio(
body: UpdateUser,
*,
client: Client,
) -> Optional[Union[User, Error]] :
) -> Optional[Union[User, Error]]:
"""This endpoint requires authentication by any KittyCAD user. It updates information about the authenticated user.""" # noqa: E501
return (
await asyncio_detailed(
body=body,
client=client,
)
).parsed

View File

@ -38,6 +38,10 @@ class Client:
"""Get a new client matching this one with a new timeout (in seconds)"""
return attr.evolve(self, timeout=timeout)
def with_base_url(self, url: str) -> "Client":
"""Get a new client matching this one with a new base url"""
return attr.evolve(self, base_url=url)
@attr.s(auto_attribs=True)
class ClientFromEnv(Client):

View File

@ -1,18 +1,23 @@
import json
import os
from typing import Dict, Optional, Union
import uuid
from typing import Optional, Union
import pytest
from .api.api_tokens import list_api_tokens_for_user
from .api.file import create_file_conversion, create_file_mass, create_file_volume
from .api.meta import ping
from .api.modeling import modeling_commands_ws
from .api.users import get_user_self, list_users_extended
from .client import ClientFromEnv
from .models import (
ApiCallStatus,
ApiTokenResultsPage,
Base64Data,
Axis,
AxisDirectionPair,
CreatedAtSortMode,
Direction,
Error,
ExtendedUserResultsPage,
FileConversion,
@ -20,12 +25,29 @@ from .models import (
FileImportFormat,
FileMass,
FileVolume,
ImageFormat,
ImportFile,
InputFormat,
ModelingCmd,
ModelingCmdId,
Pong,
System,
UnitDensity,
UnitLength,
UnitMass,
UnitVolume,
User,
WebSocketRequest,
WebSocketResponse,
)
from .models.input_format import obj
from .models.modeling_cmd import (
default_camera_focus_on,
import_files,
start_path,
take_snapshot,
)
from .models.web_socket_request import modeling_cmd_req
from .types import Unset
@ -123,10 +145,10 @@ def test_file_convert_stl():
print(f"FileConversion: {fc}")
assert not isinstance(fc.outputs, Unset)
assert fc.outputs is not None
outputs: Dict[str, Base64Data] = fc.outputs
# Make sure the bytes are not empty.
for key, value in outputs.items():
for key, value in fc.outputs.items():
assert len(value.get_decoded()) > 0
@ -162,10 +184,10 @@ async def test_file_convert_stl_async():
print(f"FileConversion: {fc}")
assert not isinstance(fc.outputs, Unset)
assert fc.outputs is not None
outputs: Dict[str, Base64Data] = fc.outputs
# Make sure the bytes are not empty.
for key, value in outputs.items():
for key, value in fc.outputs.items():
assert len(value.get_decoded()) > 0
@ -201,10 +223,10 @@ async def test_file_convert_obj_async():
print(f"FileConversion: {fc}")
assert not isinstance(fc.outputs, Unset)
assert fc.outputs is not None
outputs: Dict[str, Base64Data] = fc.outputs
# Make sure the bytes are not empty.
for key, value in outputs.items():
for key, value in fc.outputs.items():
assert len(value.get_decoded()) > 0
@ -236,7 +258,7 @@ def test_file_mass():
assert fm.id is not None
assert fm.mass is not None
assert fm.to_dict() is not None
assert fm.model_dump_json() is not None
assert fm.status == ApiCallStatus.COMPLETED
@ -267,7 +289,7 @@ def test_file_volume():
assert fv.id is not None
assert fv.volume is not None
assert fv.to_dict() is not None
assert fv.model_dump_json() is not None
assert fv.status == ApiCallStatus.COMPLETED
@ -283,3 +305,187 @@ def test_list_users():
assert isinstance(response, ExtendedUserResultsPage)
print(f"ExtendedUserResultsPage: {response}")
def test_ws_simple():
# Create our client.
client = ClientFromEnv()
# Connect to the websocket.
with modeling_commands_ws.WebSocket(
client=client,
fps=30,
unlocked_framerate=False,
video_res_height=360,
video_res_width=480,
webrtc=False,
) as websocket:
# Send a message.
id = uuid.uuid4()
req = WebSocketRequest(
modeling_cmd_req(cmd=ModelingCmd(start_path()), cmd_id=ModelingCmdId(id))
)
websocket.send(req)
# Get the messages.
while True:
message = websocket.recv()
print(json.dumps(message.model_dump_json()))
break
def test_ws_import():
# Create our client.
client = ClientFromEnv()
# Connect to the websocket.
with modeling_commands_ws.WebSocket(
client=client,
fps=30,
unlocked_framerate=False,
video_res_height=360,
video_res_width=480,
webrtc=False,
) as websocket:
# read the content of the file
dir_path = os.path.dirname(os.path.realpath(__file__))
file_name = "ORIGINALVOXEL-3.obj"
file = open(os.path.join(dir_path, "..", "assets", file_name), "rb")
content = file.read()
file.close()
cmd_id = uuid.uuid4()
ImportFile(data=content, path=file_name)
# form the request
req = WebSocketRequest(
modeling_cmd_req(
cmd=ModelingCmd(
import_files(
files=[ImportFile(data=content, path=file_name)],
format=InputFormat(
obj(
units=UnitLength.M,
coords=System(
forward=AxisDirectionPair(
axis=Axis.Y, direction=Direction.NEGATIVE
),
up=AxisDirectionPair(
axis=Axis.Z, direction=Direction.POSITIVE
),
),
)
),
)
),
cmd_id=ModelingCmdId(cmd_id),
)
)
# Import files request must be sent as binary, because the file contents might be binary.
websocket.send_binary(req)
# Get the success message.
object_id = ""
for message in websocket:
message_dict = message.model_dump()
if message_dict["success"] is not True:
raise Exception(message_dict)
elif message_dict["resp"]["type"] != "modeling":
continue
elif (
message_dict["resp"]["data"]["modeling_response"]["type"]
!= "import_files"
):
# We have a modeling command response.
# Make sure its the import files response.
raise Exception(message_dict)
else:
# Okay we have the import files response.
# Break since now we know it was a success.
object_id = str(
message_dict["resp"]["data"]["modeling_response"]["data"][
"object_id"
]
)
break
# Now we want to focus on the object.
cmd_id = uuid.uuid4()
# form the request
req = WebSocketRequest(
modeling_cmd_req(
cmd=ModelingCmd(default_camera_focus_on(uuid=object_id)),
cmd_id=ModelingCmdId(cmd_id),
)
)
websocket.send(req)
# Get the success message.
for message in websocket:
message_dict = message.model_dump()
if message_dict["success"] is not True:
raise Exception(message_dict)
elif message_dict["resp"]["type"] != "modeling":
continue
elif message_dict["request_id"] == str(cmd_id):
# We got a success response for our cmd.
break
else:
raise Exception(message_dict)
# Now we want to snapshot as a png.
cmd_id = uuid.uuid4()
# form the request
# form the request
req = WebSocketRequest(
modeling_cmd_req(
cmd=ModelingCmd(take_snapshot(format=ImageFormat.PNG)),
cmd_id=ModelingCmdId(cmd_id),
)
)
websocket.send(req)
# Get the success message.
png_contents = b""
for message in websocket:
message_dict = message.model_dump()
if message_dict["success"] is not True:
raise Exception(message_dict)
elif message_dict["resp"]["type"] != "modeling":
continue
elif (
message_dict["resp"]["data"]["modeling_response"]["type"]
!= "take_snapshot"
):
# Make sure its the correct response.
raise Exception(message_dict)
else:
# Okay we have the snapshot response.
# Break since now we know it was a success.
png_contents = message_dict["resp"]["data"]["modeling_response"][
"data"
]["contents"].get_decoded()
break
# Save the contents to a file.
png_path = os.path.join(dir_path, "..", "assets", "snapshot.png")
with open(png_path, "wb") as f:
f.write(png_contents)
# Ensure the file is not empty.
assert len(png_contents) > 0
# Ensure the file exists.
assert os.path.exists(png_path)
def test_serialize_deserialize():
json_str = """{"success":true,"request_id":"16a06065-6ca3-4a96-a042-d0bec6b161a6","resp":{"type":"modeling","data":{"modeling_response":{"type":"import_files","data":{"object_id":"f61ac02e-77bd-468f-858f-fd4141a26acd"}}}}}"""
d = json.loads(json_str)
print(d)
message = WebSocketResponse(**d)
model_dump = message.model_dump()
print(model_dump)
assert model_dump["success"] is True # type: ignore
assert model_dump["request_id"] == "16a06065-6ca3-4a96-a042-d0bec6b161a6" # type: ignore
assert model_dump["resp"]["type"] == "modeling" # type: ignore
assert model_dump["resp"]["data"]["modeling_response"]["type"] == "import_files" # type: ignore
assert model_dump["resp"]["data"]["modeling_response"]["data"]["object_id"] == "f61ac02e-77bd-468f-858f-fd4141a26acd" # type: ignore

View File

@ -5,6 +5,9 @@ import pytest
from kittycad.api.ai import (
create_text_to_cad,
create_text_to_cad_model_feedback,
get_ai_prompt,
get_text_to_cad_model_for_user,
list_ai_prompts,
list_text_to_cad_models_for_user,
)
from kittycad.api.api_calls import (
@ -43,6 +46,7 @@ from kittycad.api.meta import (
get_metadata,
get_openai_schema,
get_schema,
internal_get_api_token_for_discord_user,
ping,
)
from kittycad.api.modeling import modeling_commands_ws
@ -89,6 +93,8 @@ from kittycad.api.users import (
from kittycad.client import ClientFromEnv
from kittycad.models import (
AiPluginManifest,
AiPrompt,
AiPromptResultsPage,
ApiCallQueryGroup,
ApiCallWithPrice,
ApiCallWithPriceResultsPage,
@ -133,6 +139,7 @@ from kittycad.models import (
User,
UserResultsPage,
VerificationToken,
WebSocketRequest,
)
from kittycad.models.ai_feedback import AiFeedback
from kittycad.models.api_call_query_group_by import ApiCallQueryGroupBy
@ -283,6 +290,106 @@ async def test_get_metadata_async():
)
@pytest.mark.skip
def test_list_ai_prompts():
# Create our client.
client = ClientFromEnv()
result: Optional[Union[AiPromptResultsPage, Error]] = list_ai_prompts.sync(
client=client,
sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,
limit=None, # Optional[int]
page_token=None, # Optional[str]
)
if isinstance(result, Error) or result is None:
print(result)
raise Exception("Error in response")
body: AiPromptResultsPage = result
print(body)
# OR if you need more info (e.g. status_code)
response: Response[
Optional[Union[AiPromptResultsPage, Error]]
] = list_ai_prompts.sync_detailed(
client=client,
sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,
limit=None, # Optional[int]
page_token=None, # Optional[str]
)
# OR run async
@pytest.mark.asyncio
@pytest.mark.skip
async def test_list_ai_prompts_async():
# Create our client.
client = ClientFromEnv()
result: Optional[Union[AiPromptResultsPage, Error]] = await list_ai_prompts.asyncio(
client=client,
sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,
limit=None, # Optional[int]
page_token=None, # Optional[str]
)
# OR run async with more info
response: Response[
Optional[Union[AiPromptResultsPage, Error]]
] = await list_ai_prompts.asyncio_detailed(
client=client,
sort_by=CreatedAtSortMode.CREATED_AT_ASCENDING,
limit=None, # Optional[int]
page_token=None, # Optional[str]
)
@pytest.mark.skip
def test_get_ai_prompt():
# Create our client.
client = ClientFromEnv()
result: Optional[Union[AiPrompt, Error]] = get_ai_prompt.sync(
client=client,
id="<uuid>",
)
if isinstance(result, Error) or result is None:
print(result)
raise Exception("Error in response")
body: AiPrompt = result
print(body)
# OR if you need more info (e.g. status_code)
response: Response[Optional[Union[AiPrompt, Error]]] = get_ai_prompt.sync_detailed(
client=client,
id="<uuid>",
)
# OR run async
@pytest.mark.asyncio
@pytest.mark.skip
async def test_get_ai_prompt_async():
# Create our client.
client = ClientFromEnv()
result: Optional[Union[AiPrompt, Error]] = await get_ai_prompt.asyncio(
client=client,
id="<uuid>",
)
# OR run async with more info
response: Response[
Optional[Union[AiPrompt, Error]]
] = await get_ai_prompt.asyncio_detailed(
client=client,
id="<uuid>",
)
@pytest.mark.skip
def test_create_text_to_cad():
# Create our client.
@ -1295,6 +1402,57 @@ async def test_create_file_volume_async():
)
@pytest.mark.skip
def test_internal_get_api_token_for_discord_user():
# Create our client.
client = ClientFromEnv()
result: Optional[
Union[ApiToken, Error]
] = internal_get_api_token_for_discord_user.sync(
client=client,
discord_id="<string>",
)
if isinstance(result, Error) or result is None:
print(result)
raise Exception("Error in response")
body: ApiToken = result
print(body)
# OR if you need more info (e.g. status_code)
response: Response[
Optional[Union[ApiToken, Error]]
] = internal_get_api_token_for_discord_user.sync_detailed(
client=client,
discord_id="<string>",
)
# OR run async
@pytest.mark.asyncio
@pytest.mark.skip
async def test_internal_get_api_token_for_discord_user_async():
# Create our client.
client = ClientFromEnv()
result: Optional[
Union[ApiToken, Error]
] = await internal_get_api_token_for_discord_user.asyncio(
client=client,
discord_id="<string>",
)
# OR run async with more info
response: Response[
Optional[Union[ApiToken, Error]]
] = await internal_get_api_token_for_discord_user.asyncio_detailed(
client=client,
discord_id="<string>",
)
@pytest.mark.skip
def test_logout():
# Create our client.
@ -3325,6 +3483,55 @@ async def test_list_text_to_cad_models_for_user_async():
)
@pytest.mark.skip
def test_get_text_to_cad_model_for_user():
# Create our client.
client = ClientFromEnv()
result: Optional[Union[TextToCad, Error]] = get_text_to_cad_model_for_user.sync(
client=client,
id="<uuid>",
)
if isinstance(result, Error) or result is None:
print(result)
raise Exception("Error in response")
body: TextToCad = result
print(body)
# OR if you need more info (e.g. status_code)
response: Response[
Optional[Union[TextToCad, Error]]
] = get_text_to_cad_model_for_user.sync_detailed(
client=client,
id="<uuid>",
)
# OR run async
@pytest.mark.asyncio
@pytest.mark.skip
async def test_get_text_to_cad_model_for_user_async():
# Create our client.
client = ClientFromEnv()
result: Optional[
Union[TextToCad, Error]
] = await get_text_to_cad_model_for_user.asyncio(
client=client,
id="<uuid>",
)
# OR run async with more info
response: Response[
Optional[Union[TextToCad, Error]]
] = await get_text_to_cad_model_for_user.asyncio_detailed(
client=client,
id="<uuid>",
)
@pytest.mark.skip
def test_create_text_to_cad_model_feedback():
# Create our client.
@ -3647,10 +3854,9 @@ def test_create_executor_term():
client = ClientFromEnv()
# Connect to the websocket.
websocket = create_executor_term.sync(
with create_executor_term.sync(
client=client,
)
) as websocket:
# Send a message.
websocket.send("{}")
@ -3685,26 +3891,28 @@ def test_modeling_commands_ws():
client = ClientFromEnv()
# Connect to the websocket.
websocket = modeling_commands_ws.sync(
with modeling_commands_ws.WebSocket(
client=client,
fps=10,
unlocked_framerate=False,
video_res_height=10,
video_res_width=10,
webrtc=False,
body=sdp_offer(
) as websocket:
# Send a message.
websocket.send(
WebSocketRequest(
sdp_offer(
offer=RtcSessionDescription(
sdp="<string>",
type=RtcSdpType.UNSPECIFIED,
),
),
)
)
)
# Send a message.
websocket.send("{}")
# Get the messages.
for message in websocket:
# Get a message.
message = websocket.recv()
print(message)
@ -3723,12 +3931,6 @@ async def test_modeling_commands_ws_async():
video_res_height=10,
video_res_width=10,
webrtc=False,
body=sdp_offer(
offer=RtcSessionDescription(
sdp="<string>",
type=RtcSdpType.UNSPECIFIED,
),
),
)
# Send a message.

View File

@ -8,6 +8,9 @@ from .ai_plugin_auth import AiPluginAuth
from .ai_plugin_auth_type import AiPluginAuthType
from .ai_plugin_http_auth_type import AiPluginHttpAuthType
from .ai_plugin_manifest import AiPluginManifest
from .ai_prompt import AiPrompt
from .ai_prompt_results_page import AiPromptResultsPage
from .ai_prompt_type import AiPromptType
from .angle import Angle
from .annotation_line_end import AnnotationLineEnd
from .annotation_line_end_options import AnnotationLineEndOptions
@ -31,7 +34,6 @@ from .async_api_call_results_page import AsyncApiCallResultsPage
from .async_api_call_type import AsyncApiCallType
from .axis import Axis
from .axis_direction_pair import AxisDirectionPair
from .base64data import Base64Data
from .billing_info import BillingInfo
from .cache_metadata import CacheMetadata
from .camera_drag_interaction_type import CameraDragInteractionType
@ -120,6 +122,8 @@ from .onboarding import Onboarding
from .output_file import OutputFile
from .output_format import OutputFormat
from .path_command import PathCommand
from .path_component_constraint_bound import PathComponentConstraintBound
from .path_component_constraint_type import PathComponentConstraintType
from .path_get_curve_uuids_for_vertices import PathGetCurveUuidsForVertices
from .path_get_info import PathGetInfo
from .path_get_vertex_uuids import PathGetVertexUuids
@ -142,6 +146,7 @@ from .scene_selection_type import SceneSelectionType
from .scene_tool_type import SceneToolType
from .select_get import SelectGet
from .select_with_point import SelectWithPoint
from .selection import Selection
from .session import Session
from .solid3d_get_all_edge_faces import Solid3dGetAllEdgeFaces
from .solid3d_get_all_opposite_edges import Solid3dGetAllOppositeEdges
@ -187,6 +192,7 @@ from .update_user import UpdateUser
from .user import User
from .user_results_page import UserResultsPage
from .uuid import Uuid
from .uuid_binary import UuidBinary
from .verification_token import VerificationToken
from .volume import Volume
from .web_socket_request import WebSocketRequest

View File

@ -2,11 +2,14 @@ from enum import Enum
class AccountProvider(str, Enum):
""" An account provider. """ # noqa: E501
"""An account provider.""" # noqa: E501
"""# The Discord account provider. """ # noqa: E501
DISCORD = "discord"
"""# The Google account provider. """ # noqa: E501
GOOGLE = 'google'
GOOGLE = "google"
"""# The GitHub account provider. """ # noqa: E501
GITHUB = 'github'
GITHUB = "github"
def __str__(self) -> str:
return str(self.value)

View File

@ -2,11 +2,12 @@ from enum import Enum
class AiFeedback(str, Enum):
""" Human feedback on an AI response. """ # noqa: E501
"""Human feedback on an AI response.""" # noqa: E501
"""# Thumbs up. """ # noqa: E501
THUMBS_UP = 'thumbs_up'
THUMBS_UP = "thumbs_up"
"""# Thumbs down. """ # noqa: E501
THUMBS_DOWN = 'thumbs_down'
THUMBS_DOWN = "thumbs_down"
def __str__(self) -> str:
return str(self.value)

View File

@ -1,75 +1,15 @@
from typing import Any, Dict, List, Type, TypeVar, Union
from typing import Optional
import attr
from pydantic import BaseModel
from ..models.ai_plugin_api_type import AiPluginApiType
from ..types import UNSET, Unset
SB = TypeVar("SB", bound="AiPluginApi")
@attr.s(auto_attribs=True)
class AiPluginApi:
""" AI plugin api information. """ # noqa: E501
is_user_authenticated: Union[Unset, bool] = False
type: Union[Unset, AiPluginApiType] = UNSET
url: Union[Unset, str] = UNSET
additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
def to_dict(self) -> Dict[str, Any]:
is_user_authenticated = self.is_user_authenticated
if not isinstance(self.type, Unset):
type = self.type
url = self.url
field_dict: Dict[str, Any] = {}
field_dict.update(self.additional_properties)
field_dict.update({})
if is_user_authenticated is not UNSET:
field_dict['is_user_authenticated'] = is_user_authenticated
if type is not UNSET:
field_dict['type'] = type
if url is not UNSET:
field_dict['url'] = url
return field_dict
@classmethod
def from_dict(cls: Type[SB], src_dict: Dict[str, Any]) -> SB:
d = src_dict.copy()
is_user_authenticated = d.pop("is_user_authenticated", UNSET)
_type = d.pop("type", UNSET)
type: Union[Unset, AiPluginApiType]
if isinstance(_type, Unset):
type = UNSET
else:
type = _type # type: ignore[arg-type]
url = d.pop("url", UNSET)
ai_plugin_api = cls(
is_user_authenticated= is_user_authenticated,
type= type,
url= url,
)
class AiPluginApi(BaseModel):
"""AI plugin api information."""
ai_plugin_api.additional_properties = d
return ai_plugin_api
is_user_authenticated: Optional[bool] = None
@property
def additional_keys(self) -> List[str]:
return list(self.additional_properties.keys())
type: Optional[AiPluginApiType] = None
def __getitem__(self, key: str) -> Any:
return self.additional_properties[key]
def __setitem__(self, key: str, value: Any) -> None:
self.additional_properties[key] = value
def __delitem__(self, key: str) -> None:
del self.additional_properties[key]
def __contains__(self, key: str) -> bool:
return key in self.additional_properties
url: str

View File

@ -2,9 +2,10 @@ from enum import Enum
class AiPluginApiType(str, Enum):
""" AI plugin api type. """ # noqa: E501
"""AI plugin api type.""" # noqa: E501
"""# An OpenAPI specification. """ # noqa: E501
OPENAPI = 'openapi'
OPENAPI = "openapi"
def __str__(self) -> str:
return str(self.value)

View File

@ -1,75 +1,14 @@
from typing import Any, Dict, List, Type, TypeVar, Union
from typing import Optional
import attr
from pydantic import BaseModel
from ..models.ai_plugin_auth_type import AiPluginAuthType
from ..models.ai_plugin_http_auth_type import AiPluginHttpAuthType
from ..types import UNSET, Unset
NP = TypeVar("NP", bound="AiPluginAuth")
@attr.s(auto_attribs=True)
class AiPluginAuth:
""" AI plugin auth information. """ # noqa: E501
authorization_type: Union[Unset, AiPluginHttpAuthType] = UNSET
type: Union[Unset, AiPluginAuthType] = UNSET
additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
def to_dict(self) -> Dict[str, Any]:
if not isinstance(self.authorization_type, Unset):
authorization_type = self.authorization_type
if not isinstance(self.type, Unset):
type = self.type
field_dict: Dict[str, Any] = {}
field_dict.update(self.additional_properties)
field_dict.update({})
if authorization_type is not UNSET:
field_dict['authorization_type'] = authorization_type
if type is not UNSET:
field_dict['type'] = type
return field_dict
@classmethod
def from_dict(cls: Type[NP], src_dict: Dict[str, Any]) -> NP:
d = src_dict.copy()
_authorization_type = d.pop("authorization_type", UNSET)
authorization_type: Union[Unset, AiPluginHttpAuthType]
if isinstance(_authorization_type, Unset):
authorization_type = UNSET
else:
authorization_type = _authorization_type # type: ignore[arg-type]
_type = d.pop("type", UNSET)
type: Union[Unset, AiPluginAuthType]
if isinstance(_type, Unset):
type = UNSET
else:
type = _type # type: ignore[arg-type]
ai_plugin_auth = cls(
authorization_type= authorization_type,
type= type,
)
class AiPluginAuth(BaseModel):
"""AI plugin auth information."""
ai_plugin_auth.additional_properties = d
return ai_plugin_auth
authorization_type: Optional[AiPluginHttpAuthType] = None
@property
def additional_keys(self) -> List[str]:
return list(self.additional_properties.keys())
def __getitem__(self, key: str) -> Any:
return self.additional_properties[key]
def __setitem__(self, key: str, value: Any) -> None:
self.additional_properties[key] = value
def __delitem__(self, key: str) -> None:
del self.additional_properties[key]
def __contains__(self, key: str) -> bool:
return key in self.additional_properties
type: Optional[AiPluginAuthType] = None

View File

@ -2,15 +2,16 @@ from enum import Enum
class AiPluginAuthType(str, Enum):
""" AI plugin auth type. """ # noqa: E501
"""AI plugin auth type.""" # noqa: E501
"""# None. """ # noqa: E501
NONE = 'none'
NONE = "none"
"""# User http. """ # noqa: E501
USER_HTTP = 'user_http'
USER_HTTP = "user_http"
"""# Service http. """ # noqa: E501
SERVICE_HTTP = 'service_http'
SERVICE_HTTP = "service_http"
"""# OAuth. """ # noqa: E501
OAUTH = 'oauth'
OAUTH = "oauth"
def __str__(self) -> str:
return str(self.value)

View File

@ -2,11 +2,12 @@ from enum import Enum
class AiPluginHttpAuthType(str, Enum):
""" AI plugin http auth type. """ # noqa: E501
"""AI plugin http auth type.""" # noqa: E501
"""# Basic. """ # noqa: E501
BASIC = 'basic'
BASIC = "basic"
"""# Bearer. """ # noqa: E501
BEARER = 'bearer'
BEARER = "bearer"
def __str__(self) -> str:
return str(self.value)

View File

@ -1,133 +1,33 @@
from typing import Any, Dict, List, Type, TypeVar, Union
from typing import Optional
import attr
from pydantic import BaseModel
from ..models.ai_plugin_api import AiPluginApi
from ..models.ai_plugin_auth import AiPluginAuth
from ..types import UNSET, Unset
SA = TypeVar("SA", bound="AiPluginManifest")
@attr.s(auto_attribs=True)
class AiPluginManifest:
""" AI plugin manifest.
This is used for OpenAI's ChatGPT plugins. You can read more about them [here](https://platform.openai.com/docs/plugins/getting-started/plugin-manifest). """ # noqa: E501
api: Union[Unset, AiPluginApi] = UNSET
auth: Union[Unset, AiPluginAuth] = UNSET
contact_email: Union[Unset, str] = UNSET
description_for_human: Union[Unset, str] = UNSET
description_for_model: Union[Unset, str] = UNSET
legal_info_url: Union[Unset, str] = UNSET
logo_url: Union[Unset, str] = UNSET
name_for_human: Union[Unset, str] = UNSET
name_for_model: Union[Unset, str] = UNSET
schema_version: Union[Unset, str] = UNSET
additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
def to_dict(self) -> Dict[str, Any]:
if not isinstance(self.api, Unset):
api = self.api
if not isinstance(self.auth, Unset):
auth = self.auth
contact_email = self.contact_email
description_for_human = self.description_for_human
description_for_model = self.description_for_model
legal_info_url = self.legal_info_url
logo_url = self.logo_url
name_for_human = self.name_for_human
name_for_model = self.name_for_model
schema_version = self.schema_version
field_dict: Dict[str, Any] = {}
field_dict.update(self.additional_properties)
field_dict.update({})
if api is not UNSET:
field_dict['api'] = api
if auth is not UNSET:
field_dict['auth'] = auth
if contact_email is not UNSET:
field_dict['contact_email'] = contact_email
if description_for_human is not UNSET:
field_dict['description_for_human'] = description_for_human
if description_for_model is not UNSET:
field_dict['description_for_model'] = description_for_model
if legal_info_url is not UNSET:
field_dict['legal_info_url'] = legal_info_url
if logo_url is not UNSET:
field_dict['logo_url'] = logo_url
if name_for_human is not UNSET:
field_dict['name_for_human'] = name_for_human
if name_for_model is not UNSET:
field_dict['name_for_model'] = name_for_model
if schema_version is not UNSET:
field_dict['schema_version'] = schema_version
return field_dict
@classmethod
def from_dict(cls: Type[SA], src_dict: Dict[str, Any]) -> SA:
d = src_dict.copy()
_api = d.pop("api", UNSET)
api: Union[Unset, AiPluginApi]
if isinstance(_api, Unset):
api = UNSET
else:
api = _api # type: ignore[arg-type]
_auth = d.pop("auth", UNSET)
auth: Union[Unset, AiPluginAuth]
if isinstance(_auth, Unset):
auth = UNSET
else:
auth = _auth # type: ignore[arg-type]
contact_email = d.pop("contact_email", UNSET)
description_for_human = d.pop("description_for_human", UNSET)
description_for_model = d.pop("description_for_model", UNSET)
legal_info_url = d.pop("legal_info_url", UNSET)
logo_url = d.pop("logo_url", UNSET)
name_for_human = d.pop("name_for_human", UNSET)
name_for_model = d.pop("name_for_model", UNSET)
schema_version = d.pop("schema_version", UNSET)
ai_plugin_manifest = cls(
api= api,
auth= auth,
contact_email= contact_email,
description_for_human= description_for_human,
description_for_model= description_for_model,
legal_info_url= legal_info_url,
logo_url= logo_url,
name_for_human= name_for_human,
name_for_model= name_for_model,
schema_version= schema_version,
)
class AiPluginManifest(BaseModel):
"""AI plugin manifest.
ai_plugin_manifest.additional_properties = d
return ai_plugin_manifest
This is used for OpenAI's ChatGPT plugins. You can read more about them [here](https://platform.openai.com/docs/plugins/getting-started/plugin-manifest).
"""
@property
def additional_keys(self) -> List[str]:
return list(self.additional_properties.keys())
api: AiPluginApi
def __getitem__(self, key: str) -> Any:
return self.additional_properties[key]
auth: AiPluginAuth
def __setitem__(self, key: str, value: Any) -> None:
self.additional_properties[key] = value
contact_email: Optional[str] = None
def __delitem__(self, key: str) -> None:
del self.additional_properties[key]
description_for_human: Optional[str] = None
def __contains__(self, key: str) -> bool:
return key in self.additional_properties
description_for_model: Optional[str] = None
legal_info_url: str
logo_url: str
name_for_human: Optional[str] = None
name_for_model: Optional[str] = None
schema_version: Optional[str] = None

View File

@ -0,0 +1,42 @@
import datetime
from typing import Any, Optional
from pydantic import BaseModel
from ..models.ai_feedback import AiFeedback
from ..models.ai_prompt_type import AiPromptType
from ..models.api_call_status import ApiCallStatus
from ..models.uuid import Uuid
from ..models.uuid_binary import UuidBinary
class AiPrompt(BaseModel):
"""An AI prompt."""
completed_at: Optional[datetime.datetime] = None
created_at: datetime.datetime
error: Optional[str] = None
feedback: Optional[AiFeedback] = None
id: UuidBinary
metadata: Optional[Any] = None
model_version: str
output_file: Optional[str] = None
prompt: str
started_at: Optional[datetime.datetime] = None
status: ApiCallStatus
type: AiPromptType
updated_at: datetime.datetime
user_id: Uuid

View File

@ -0,0 +1,13 @@
from typing import List, Optional
from pydantic import BaseModel
from ..models.ai_prompt import AiPrompt
class AiPromptResultsPage(BaseModel):
"""A single page of results"""
items: List[AiPrompt]
next_page: Optional[str] = None

View File

@ -0,0 +1,11 @@
from enum import Enum
class AiPromptType(str, Enum):
"""A type of AI prompt.""" # noqa: E501
"""# Text to CAD. """ # noqa: E501
TEXT_TO_CAD = "text_to_cad"
def __str__(self) -> str:
return str(self.value)

View File

@ -1,68 +1,12 @@
from typing import Any, Dict, List, Type, TypeVar, Union
import attr
from pydantic import BaseModel
from ..models.unit_angle import UnitAngle
from ..types import UNSET, Unset
GO = TypeVar("GO", bound="Angle")
@attr.s(auto_attribs=True)
class Angle:
""" An angle, with a specific unit. """ # noqa: E501
unit: Union[Unset, UnitAngle] = UNSET
value: Union[Unset, float] = UNSET
additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
def to_dict(self) -> Dict[str, Any]:
if not isinstance(self.unit, Unset):
unit = self.unit
value = self.value
field_dict: Dict[str, Any] = {}
field_dict.update(self.additional_properties)
field_dict.update({})
if unit is not UNSET:
field_dict['unit'] = unit
if value is not UNSET:
field_dict['value'] = value
return field_dict
@classmethod
def from_dict(cls: Type[GO], src_dict: Dict[str, Any]) -> GO:
d = src_dict.copy()
_unit = d.pop("unit", UNSET)
unit: Union[Unset, UnitAngle]
if isinstance(_unit, Unset):
unit = UNSET
else:
unit = _unit # type: ignore[arg-type]
value = d.pop("value", UNSET)
angle = cls(
unit= unit,
value= value,
)
class Angle(BaseModel):
"""An angle, with a specific unit."""
angle.additional_properties = d
return angle
unit: UnitAngle
@property
def additional_keys(self) -> List[str]:
return list(self.additional_properties.keys())
def __getitem__(self, key: str) -> Any:
return self.additional_properties[key]
def __setitem__(self, key: str, value: Any) -> None:
self.additional_properties[key] = value
def __delitem__(self, key: str) -> None:
del self.additional_properties[key]
def __contains__(self, key: str) -> bool:
return key in self.additional_properties
value: float

Some files were not shown because too many files have changed in this diff Show More