Compare commits

..

16 Commits

Author SHA1 Message Date
af55db8f70 bump (#445)
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2025-05-23 10:08:45 -07:00
cf383e2405 Update api spec (#444)
* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-22 12:58:39 -07:00
26cc03ef01 Update api spec (#443)
* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-20 16:17:10 -07:00
d81ecb7615 Update api spec (#442)
* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-19 13:18:51 -07:00
1afdcc70b5 Bump ruff from 0.11.9 to 0.11.10 in the patch group (#440)
Bumps the patch group with 1 update: [ruff](https://github.com/astral-sh/ruff).


Updates `ruff` from 0.11.9 to 0.11.10
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.11.9...0.11.10)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.11.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-19 10:50:31 -04:00
c9ef09320d Bump types-python-dateutil from 2.9.0.20241206 to 2.9.0.20250516 (#441)
Bumps [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader) from 2.9.0.20241206 to 2.9.0.20250516.
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-version: 2.9.0.20250516
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-19 10:50:04 -04:00
243ae12ed3 Update api spec (#439)
* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-15 14:47:53 -07:00
ed50b95b1e Update api spec (#438)
* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-15 09:07:45 -07:00
6b0cc4a2b1 Update api spec (#437)
* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-15 00:25:49 -07:00
9b8fab62c6 Bump ruff from 0.11.8 to 0.11.9 in the patch group (#436)
Bumps the patch group with 1 update: [ruff](https://github.com/astral-sh/ruff).


Updates `ruff` from 0.11.8 to 0.11.9
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.11.8...0.11.9)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.11.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-12 13:15:13 -04:00
24e80f4568 Update api spec (#435)
* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-11 11:51:16 -07:00
1744ab6385 Update api spec (#434)
* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-09 08:31:30 -07:00
06a646e558 Update api spec (#433)
* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-08 12:57:30 -07:00
2fd4d315db Update api spec (#432)
* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-07 15:39:47 -07:00
04efe52feb Bump the patch group with 3 updates (#431)
Bumps the patch group with 3 updates: [pymongo](https://github.com/mongodb/mongo-python-driver), [pydantic](https://github.com/pydantic/pydantic) and [ruff](https://github.com/astral-sh/ruff).


Updates `pymongo` from 4.12.0 to 4.12.1
- [Release notes](https://github.com/mongodb/mongo-python-driver/releases)
- [Changelog](https://github.com/mongodb/mongo-python-driver/blob/master/doc/changelog.rst)
- [Commits](https://github.com/mongodb/mongo-python-driver/compare/4.12.0...4.12.1)

Updates `pydantic` from 2.11.3 to 2.11.4
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.11.3...v2.11.4)

Updates `ruff` from 0.11.7 to 0.11.8
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.11.7...0.11.8)

---
updated-dependencies:
- dependency-name: pymongo
  dependency-version: 4.12.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch
- dependency-name: pydantic
  dependency-version: 2.11.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch
- dependency-name: ruff
  dependency-version: 0.11.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-05 10:23:39 -04:00
0d44cc2c23 Update api spec (#430)
* YOYO NEW API SPEC!

* I have generated the latest API!

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-04 20:54:39 -07:00
61 changed files with 3369 additions and 2327 deletions

File diff suppressed because it is too large Load Diff

View File

@ -78,7 +78,7 @@ def sync(
) -> Optional[Union[ApiToken, Error]]: ) -> 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 Zoo Account via oauth2 for this to work. """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 Zoo Account via oauth2 for this to work.
You must be a Zoo employee to use this endpoint.""" # noqa: E501 You must be a Zoo admin to use this endpoint.""" # noqa: E501
return sync_detailed( return sync_detailed(
discord_id=discord_id, discord_id=discord_id,
@ -109,7 +109,7 @@ async def asyncio(
) -> Optional[Union[ApiToken, Error]]: ) -> 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 Zoo Account via oauth2 for this to work. """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 Zoo Account via oauth2 for this to work.
You must be a Zoo employee to use this endpoint.""" # noqa: E501 You must be a Zoo admin to use this endpoint.""" # noqa: E501
return ( return (
await asyncio_detailed( await asyncio_detailed(

View File

@ -3,12 +3,14 @@ from typing import Any, Dict, Optional, Union
import httpx import httpx
from ...client import Client from ...client import Client
from ...models.code_option import CodeOption
from ...models.error import Error from ...models.error import Error
from ...models.kcl_model import KclModel from ...models.kcl_model import KclModel
from ...types import Response from ...types import Response
def _get_kwargs( def _get_kwargs(
code_option: CodeOption,
*, *,
client: Client, client: Client,
) -> Dict[str, Any]: ) -> Dict[str, Any]:
@ -16,6 +18,12 @@ def _get_kwargs(
client.base_url, client.base_url,
) # noqa: E501 ) # noqa: E501
if code_option is not None:
if "?" in url:
url = url + "&code_option=" + str(code_option)
else:
url = url + "?code_option=" + str(code_option)
headers: Dict[str, Any] = client.get_headers() headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies() cookies: Dict[str, Any] = client.get_cookies()
@ -52,10 +60,12 @@ def _build_response(
def sync_detailed( def sync_detailed(
code_option: CodeOption,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[KclModel, Error]]]: ) -> Response[Optional[Union[KclModel, Error]]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
code_option=code_option,
client=client, client=client,
) )
@ -68,23 +78,29 @@ def sync_detailed(
def sync( def sync(
code_option: CodeOption,
*, *,
client: Client, client: Client,
) -> Optional[Union[KclModel, Error]]: ) -> Optional[Union[KclModel, Error]]:
"""This endpoint is used to convert a proprietary CAD format to KCL. The file passed MUST have feature tree data. """This endpoint is used to convert a proprietary CAD format to KCL. The file passed MUST have feature tree data.
A STEP file does not have feature tree data, so it will not work. A sldprt file does have feature tree data, so it will work.""" # noqa: E501 A STEP file does not have feature tree data, so it will not work. A sldprt file does have feature tree data, so it will work.
Input filepaths will be normalized and re-canonicalized to be under the current working directory -- so returned paths may differ from provided paths, and care must be taken when handling user provided paths.""" # noqa: E501
return sync_detailed( return sync_detailed(
code_option=code_option,
client=client, client=client,
).parsed ).parsed
async def asyncio_detailed( async def asyncio_detailed(
code_option: CodeOption,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[KclModel, Error]]]: ) -> Response[Optional[Union[KclModel, Error]]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
code_option=code_option,
client=client, client=client,
) )
@ -95,15 +111,19 @@ async def asyncio_detailed(
async def asyncio( async def asyncio(
code_option: CodeOption,
*, *,
client: Client, client: Client,
) -> Optional[Union[KclModel, Error]]: ) -> Optional[Union[KclModel, Error]]:
"""This endpoint is used to convert a proprietary CAD format to KCL. The file passed MUST have feature tree data. """This endpoint is used to convert a proprietary CAD format to KCL. The file passed MUST have feature tree data.
A STEP file does not have feature tree data, so it will not work. A sldprt file does have feature tree data, so it will work.""" # noqa: E501 A STEP file does not have feature tree data, so it will not work. A sldprt file does have feature tree data, so it will work.
Input filepaths will be normalized and re-canonicalized to be under the current working directory -- so returned paths may differ from provided paths, and care must be taken when handling user provided paths.""" # noqa: E501
return ( return (
await asyncio_detailed( await asyncio_detailed(
code_option=code_option,
client=client, client=client,
) )
).parsed ).parsed

View File

@ -87,7 +87,9 @@ def sync(
You always get the whole code back, even if you only changed a small part of it. This endpoint will always return all the code back, including files that were not changed. If your original source code imported a stl/gltf/step/etc file, the output will not include that file since the model will never change non-kcl files. The endpoint will only return the kcl files that were changed. You always get the whole code back, even if you only changed a small part of it. This endpoint will always return all the code back, including files that were not changed. If your original source code imported a stl/gltf/step/etc file, the output will not include that file since the model will never change non-kcl files. The endpoint will only return the kcl files that were changed.
This operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint.""" # noqa: E501 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.
Input filepaths will be normalized and re-canonicalized to be under the current working directory -- so returned paths may differ from provided paths, and care must be taken when handling user provided paths.""" # noqa: E501
return sync_detailed( return sync_detailed(
body=body, body=body,
@ -122,7 +124,9 @@ async def asyncio(
You always get the whole code back, even if you only changed a small part of it. This endpoint will always return all the code back, including files that were not changed. If your original source code imported a stl/gltf/step/etc file, the output will not include that file since the model will never change non-kcl files. The endpoint will only return the kcl files that were changed. You always get the whole code back, even if you only changed a small part of it. This endpoint will always return all the code back, including files that were not changed. If your original source code imported a stl/gltf/step/etc file, the output will not include that file since the model will never change non-kcl files. The endpoint will only return the kcl files that were changed.
This operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint.""" # noqa: E501 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.
Input filepaths will be normalized and re-canonicalized to be under the current working directory -- so returned paths may differ from provided paths, and care must be taken when handling user provided paths.""" # noqa: E501
return ( return (
await asyncio_detailed( await asyncio_detailed(

View File

@ -85,7 +85,7 @@ def sync(
*, *,
client: Client, client: Client,
) -> Optional[Union[ZooProductSubscriptions, Error]]: ) -> Optional[Union[ZooProductSubscriptions, Error]]:
"""You must be a Zoo employee to perform this request.""" # noqa: E501 """You must be a Zoo admin to perform this request.""" # noqa: E501
return sync_detailed( return sync_detailed(
id=id, id=id,
@ -118,7 +118,7 @@ async def asyncio(
*, *,
client: Client, client: Client,
) -> Optional[Union[ZooProductSubscriptions, Error]]: ) -> Optional[Union[ZooProductSubscriptions, Error]]:
"""You must be a Zoo employee to perform this request.""" # noqa: E501 """You must be a Zoo admin to perform this request.""" # noqa: E501
return ( return (
await asyncio_detailed( await asyncio_detailed(

View File

@ -10,6 +10,7 @@ from ...types import Response
def _get_kwargs( def _get_kwargs(
include_total_due: bool,
id: Uuid, id: Uuid,
*, *,
client: Client, client: Client,
@ -19,6 +20,12 @@ def _get_kwargs(
id=id, id=id,
) # noqa: E501 ) # noqa: E501
if include_total_due is not None:
if "?" in url:
url = url + "&include_total_due=" + str(include_total_due).lower()
else:
url = url + "?include_total_due=" + str(include_total_due).lower()
headers: Dict[str, Any] = client.get_headers() headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies() cookies: Dict[str, Any] = client.get_cookies()
@ -57,11 +64,13 @@ def _build_response(
def sync_detailed( def sync_detailed(
include_total_due: bool,
id: Uuid, id: Uuid,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]: ) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
include_total_due=include_total_due,
id=id, id=id,
client=client, client=client,
) )
@ -75,6 +84,7 @@ def sync_detailed(
def sync( def sync(
include_total_due: bool,
id: Uuid, id: Uuid,
*, *,
client: Client, client: Client,
@ -82,17 +92,20 @@ def sync(
"""This endpoint requires authentication by a Zoo employee. It gets the balance information for the specified org.""" # noqa: E501 """This endpoint requires authentication by a Zoo employee. It gets the balance information for the specified org.""" # noqa: E501
return sync_detailed( return sync_detailed(
include_total_due=include_total_due,
id=id, id=id,
client=client, client=client,
).parsed ).parsed
async def asyncio_detailed( async def asyncio_detailed(
include_total_due: bool,
id: Uuid, id: Uuid,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]: ) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
include_total_due=include_total_due,
id=id, id=id,
client=client, client=client,
) )
@ -104,6 +117,7 @@ async def asyncio_detailed(
async def asyncio( async def asyncio(
include_total_due: bool,
id: Uuid, id: Uuid,
*, *,
client: Client, client: Client,
@ -112,6 +126,7 @@ async def asyncio(
return ( return (
await asyncio_detailed( await asyncio_detailed(
include_total_due=include_total_due,
id=id, id=id,
client=client, client=client,
) )

View File

@ -11,6 +11,7 @@ from ...types import Response
def _get_kwargs( def _get_kwargs(
id: UserIdentifier, id: UserIdentifier,
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Dict[str, Any]: ) -> Dict[str, Any]:
@ -19,6 +20,12 @@ def _get_kwargs(
id=id, id=id,
) # noqa: E501 ) # noqa: E501
if include_total_due is not None:
if "?" in url:
url = url + "&include_total_due=" + str(include_total_due).lower()
else:
url = url + "?include_total_due=" + str(include_total_due).lower()
headers: Dict[str, Any] = client.get_headers() headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies() cookies: Dict[str, Any] = client.get_cookies()
@ -58,11 +65,13 @@ def _build_response(
def sync_detailed( def sync_detailed(
id: UserIdentifier, id: UserIdentifier,
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]: ) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
id=id, id=id,
include_total_due=include_total_due,
client=client, client=client,
) )
@ -76,6 +85,7 @@ def sync_detailed(
def sync( def sync(
id: UserIdentifier, id: UserIdentifier,
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Optional[Union[CustomerBalance, Error]]: ) -> Optional[Union[CustomerBalance, Error]]:
@ -83,17 +93,20 @@ def sync(
return sync_detailed( return sync_detailed(
id=id, id=id,
include_total_due=include_total_due,
client=client, client=client,
).parsed ).parsed
async def asyncio_detailed( async def asyncio_detailed(
id: UserIdentifier, id: UserIdentifier,
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]: ) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
id=id, id=id,
include_total_due=include_total_due,
client=client, client=client,
) )
@ -105,6 +118,7 @@ async def asyncio_detailed(
async def asyncio( async def asyncio(
id: UserIdentifier, id: UserIdentifier,
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Optional[Union[CustomerBalance, Error]]: ) -> Optional[Union[CustomerBalance, Error]]:
@ -113,6 +127,7 @@ async def asyncio(
return ( return (
await asyncio_detailed( await asyncio_detailed(
id=id, id=id,
include_total_due=include_total_due,
client=client, client=client,
) )
).parsed ).parsed

View File

@ -9,6 +9,7 @@ from ...types import Response
def _get_kwargs( def _get_kwargs(
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Dict[str, Any]: ) -> Dict[str, Any]:
@ -16,6 +17,12 @@ def _get_kwargs(
client.base_url, client.base_url,
) # noqa: E501 ) # noqa: E501
if include_total_due is not None:
if "?" in url:
url = url + "&include_total_due=" + str(include_total_due).lower()
else:
url = url + "?include_total_due=" + str(include_total_due).lower()
headers: Dict[str, Any] = client.get_headers() headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies() cookies: Dict[str, Any] = client.get_cookies()
@ -54,10 +61,12 @@ def _build_response(
def sync_detailed( def sync_detailed(
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]: ) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
include_total_due=include_total_due,
client=client, client=client,
) )
@ -70,21 +79,25 @@ def sync_detailed(
def sync( def sync(
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Optional[Union[CustomerBalance, Error]]: ) -> Optional[Union[CustomerBalance, Error]]:
"""This endpoint requires authentication by an org admin. It gets the balance information for the authenticated user's org.""" # noqa: E501 """This endpoint requires authentication by an org admin. It gets the balance information for the authenticated user's org.""" # noqa: E501
return sync_detailed( return sync_detailed(
include_total_due=include_total_due,
client=client, client=client,
).parsed ).parsed
async def asyncio_detailed( async def asyncio_detailed(
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]: ) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
include_total_due=include_total_due,
client=client, client=client,
) )
@ -95,6 +108,7 @@ async def asyncio_detailed(
async def asyncio( async def asyncio(
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Optional[Union[CustomerBalance, Error]]: ) -> Optional[Union[CustomerBalance, Error]]:
@ -102,6 +116,7 @@ async def asyncio(
return ( return (
await asyncio_detailed( await asyncio_detailed(
include_total_due=include_total_due,
client=client, client=client,
) )
).parsed ).parsed

View File

@ -9,6 +9,7 @@ from ...types import Response
def _get_kwargs( def _get_kwargs(
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Dict[str, Any]: ) -> Dict[str, Any]:
@ -16,6 +17,12 @@ def _get_kwargs(
client.base_url, client.base_url,
) # noqa: E501 ) # noqa: E501
if include_total_due is not None:
if "?" in url:
url = url + "&include_total_due=" + str(include_total_due).lower()
else:
url = url + "?include_total_due=" + str(include_total_due).lower()
headers: Dict[str, Any] = client.get_headers() headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies() cookies: Dict[str, Any] = client.get_cookies()
@ -54,10 +61,12 @@ def _build_response(
def sync_detailed( def sync_detailed(
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]: ) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
include_total_due=include_total_due,
client=client, client=client,
) )
@ -70,21 +79,25 @@ def sync_detailed(
def sync( def sync(
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Optional[Union[CustomerBalance, Error]]: ) -> Optional[Union[CustomerBalance, Error]]:
"""This endpoint requires authentication by any Zoo user. It gets the balance information for the authenticated user.""" # noqa: E501 """This endpoint requires authentication by any Zoo user. It gets the balance information for the authenticated user.""" # noqa: E501
return sync_detailed( return sync_detailed(
include_total_due=include_total_due,
client=client, client=client,
).parsed ).parsed
async def asyncio_detailed( async def asyncio_detailed(
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]: ) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
include_total_due=include_total_due,
client=client, client=client,
) )
@ -95,6 +108,7 @@ async def asyncio_detailed(
async def asyncio( async def asyncio(
include_total_due: bool,
*, *,
client: Client, client: Client,
) -> Optional[Union[CustomerBalance, Error]]: ) -> Optional[Union[CustomerBalance, Error]]:
@ -102,6 +116,7 @@ async def asyncio(
return ( return (
await asyncio_detailed( await asyncio_detailed(
include_total_due=include_total_due,
client=client, client=client,
) )
).parsed ).parsed

View File

@ -12,6 +12,7 @@ from ...types import Response
def _get_kwargs( def _get_kwargs(
id: Uuid, id: Uuid,
include_total_due: bool,
body: UpdatePaymentBalance, body: UpdatePaymentBalance,
*, *,
client: Client, client: Client,
@ -21,6 +22,12 @@ def _get_kwargs(
id=id, id=id,
) # noqa: E501 ) # noqa: E501
if include_total_due is not None:
if "?" in url:
url = url + "&include_total_due=" + str(include_total_due).lower()
else:
url = url + "?include_total_due=" + str(include_total_due).lower()
headers: Dict[str, Any] = client.get_headers() headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies() cookies: Dict[str, Any] = client.get_cookies()
@ -61,12 +68,14 @@ def _build_response(
def sync_detailed( def sync_detailed(
id: Uuid, id: Uuid,
include_total_due: bool,
body: UpdatePaymentBalance, body: UpdatePaymentBalance,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]: ) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
id=id, id=id,
include_total_due=include_total_due,
body=body, body=body,
client=client, client=client,
) )
@ -81,6 +90,7 @@ def sync_detailed(
def sync( def sync(
id: Uuid, id: Uuid,
include_total_due: bool,
body: UpdatePaymentBalance, body: UpdatePaymentBalance,
*, *,
client: Client, client: Client,
@ -89,6 +99,7 @@ def sync(
return sync_detailed( return sync_detailed(
id=id, id=id,
include_total_due=include_total_due,
body=body, body=body,
client=client, client=client,
).parsed ).parsed
@ -96,12 +107,14 @@ def sync(
async def asyncio_detailed( async def asyncio_detailed(
id: Uuid, id: Uuid,
include_total_due: bool,
body: UpdatePaymentBalance, body: UpdatePaymentBalance,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]: ) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
id=id, id=id,
include_total_due=include_total_due,
body=body, body=body,
client=client, client=client,
) )
@ -114,6 +127,7 @@ async def asyncio_detailed(
async def asyncio( async def asyncio(
id: Uuid, id: Uuid,
include_total_due: bool,
body: UpdatePaymentBalance, body: UpdatePaymentBalance,
*, *,
client: Client, client: Client,
@ -123,6 +137,7 @@ async def asyncio(
return ( return (
await asyncio_detailed( await asyncio_detailed(
id=id, id=id,
include_total_due=include_total_due,
body=body, body=body,
client=client, client=client,
) )

View File

@ -12,6 +12,7 @@ from ...types import Response
def _get_kwargs( def _get_kwargs(
id: UserIdentifier, id: UserIdentifier,
include_total_due: bool,
body: UpdatePaymentBalance, body: UpdatePaymentBalance,
*, *,
client: Client, client: Client,
@ -21,6 +22,12 @@ def _get_kwargs(
id=id, id=id,
) # noqa: E501 ) # noqa: E501
if include_total_due is not None:
if "?" in url:
url = url + "&include_total_due=" + str(include_total_due).lower()
else:
url = url + "?include_total_due=" + str(include_total_due).lower()
headers: Dict[str, Any] = client.get_headers() headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies() cookies: Dict[str, Any] = client.get_cookies()
@ -61,12 +68,14 @@ def _build_response(
def sync_detailed( def sync_detailed(
id: UserIdentifier, id: UserIdentifier,
include_total_due: bool,
body: UpdatePaymentBalance, body: UpdatePaymentBalance,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]: ) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
id=id, id=id,
include_total_due=include_total_due,
body=body, body=body,
client=client, client=client,
) )
@ -81,6 +90,7 @@ def sync_detailed(
def sync( def sync(
id: UserIdentifier, id: UserIdentifier,
include_total_due: bool,
body: UpdatePaymentBalance, body: UpdatePaymentBalance,
*, *,
client: Client, client: Client,
@ -89,6 +99,7 @@ def sync(
return sync_detailed( return sync_detailed(
id=id, id=id,
include_total_due=include_total_due,
body=body, body=body,
client=client, client=client,
).parsed ).parsed
@ -96,12 +107,14 @@ def sync(
async def asyncio_detailed( async def asyncio_detailed(
id: UserIdentifier, id: UserIdentifier,
include_total_due: bool,
body: UpdatePaymentBalance, body: UpdatePaymentBalance,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]: ) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
id=id, id=id,
include_total_due=include_total_due,
body=body, body=body,
client=client, client=client,
) )
@ -114,6 +127,7 @@ async def asyncio_detailed(
async def asyncio( async def asyncio(
id: UserIdentifier, id: UserIdentifier,
include_total_due: bool,
body: UpdatePaymentBalance, body: UpdatePaymentBalance,
*, *,
client: Client, client: Client,
@ -123,6 +137,7 @@ async def asyncio(
return ( return (
await asyncio_detailed( await asyncio_detailed(
id=id, id=id,
include_total_due=include_total_due,
body=body, body=body,
client=client, client=client,
) )

View File

@ -79,9 +79,7 @@ def sync(
) -> 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. """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. Alternatively, to get information about the authenticated user, use `/user` endpoint.""" # noqa: E501
To get information about any Zoo user, you must be a Zoo employee.""" # noqa: E501
return sync_detailed( return sync_detailed(
id=id, id=id,
@ -112,9 +110,7 @@ async def asyncio(
) -> 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. """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. Alternatively, to get information about the authenticated user, use `/user` endpoint.""" # noqa: E501
To get information about any Zoo user, you must be a Zoo employee.""" # noqa: E501
return ( return (
await asyncio_detailed( await asyncio_detailed(

View File

@ -81,9 +81,7 @@ def sync(
) -> 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. """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. Alternatively, to get information about the authenticated user, use `/user/extended` endpoint.""" # noqa: E501
To get information about any Zoo user, you must be a Zoo employee.""" # noqa: E501
return sync_detailed( return sync_detailed(
id=id, id=id,
@ -114,9 +112,7 @@ async def asyncio(
) -> 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. """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. Alternatively, to get information about the authenticated user, use `/user/extended` endpoint.""" # noqa: E501
To get information about any Zoo user, you must be a Zoo employee.""" # noqa: E501
return ( return (
await asyncio_detailed( await asyncio_detailed(

View File

@ -0,0 +1,107 @@
from typing import Any, Dict, Optional
import httpx
from ...client import Client
from ...models.crm_data import CrmData
from ...models.error import Error
from ...types import Response
def _get_kwargs(
body: CrmData,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/crm".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
return {
"url": url,
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
"content": body.model_dump_json(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
return None
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[Error]]:
return Response(
status_code=response.status_code,
content=response.content,
headers=response.headers,
parsed=_parse_response(response=response),
)
def sync_detailed(
body: CrmData,
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
response = httpx.patch(
verify=client.verify_ssl,
**kwargs,
)
return _build_response(response=response)
def sync(
body: CrmData,
*,
client: Client,
) -> Optional[Error]:
return sync_detailed(
body=body,
client=client,
).parsed
async def asyncio_detailed(
body: CrmData,
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
response = await _client.patch(**kwargs)
return _build_response(response=response)
async def asyncio(
body: CrmData,
*,
client: Client,
) -> Optional[Error]:
return (
await asyncio_detailed(
body=body,
client=client,
)
).parsed

View File

@ -1,18 +1,19 @@
from typing import Any, Dict, Optional, Union from typing import Any, Dict, Optional
import httpx import httpx
from ...client import Client from ...client import Client
from ...models.error import Error from ...models.error import Error
from ...models.metadata import Metadata from ...models.inquiry_form import InquiryForm
from ...types import Response from ...types import Response
def _get_kwargs( def _get_kwargs(
body: InquiryForm,
*, *,
client: Client, client: Client,
) -> Dict[str, Any]: ) -> Dict[str, Any]:
url = "{}/_meta/info".format( url = "{}/website/form".format(
client.base_url, client.base_url,
) # noqa: E501 ) # noqa: E501
@ -24,13 +25,12 @@ def _get_kwargs(
"headers": headers, "headers": headers,
"cookies": cookies, "cookies": cookies,
"timeout": client.get_timeout(), "timeout": client.get_timeout(),
"content": body.model_dump_json(),
} }
def _parse_response(*, response: httpx.Response) -> Optional[Union[Metadata, Error]]: def _parse_response(*, response: httpx.Response) -> Optional[Error]:
if response.status_code == 200: return None
response_200 = Metadata(**response.json())
return response_200
if response.status_code == 400: if response.status_code == 400:
response_4XX = Error(**response.json()) response_4XX = Error(**response.json())
return response_4XX return response_4XX
@ -40,9 +40,7 @@ def _parse_response(*, response: httpx.Response) -> Optional[Union[Metadata, Err
return Error(**response.json()) return Error(**response.json())
def _build_response( def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
*, response: httpx.Response
) -> Response[Optional[Union[Metadata, Error]]]:
return Response( return Response(
status_code=response.status_code, status_code=response.status_code,
content=response.content, content=response.content,
@ -52,14 +50,16 @@ def _build_response(
def sync_detailed( def sync_detailed(
body: InquiryForm,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[Metadata, Error]]]: ) -> Response[Optional[Error]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
body=body,
client=client, client=client,
) )
response = httpx.get( response = httpx.put(
verify=client.verify_ssl, verify=client.verify_ssl,
**kwargs, **kwargs,
) )
@ -68,42 +68,44 @@ def sync_detailed(
def sync( def sync(
body: InquiryForm,
*, *,
client: Client, client: Client,
) -> Optional[Union[Metadata, Error]]: ) -> Optional[Error]:
"""This includes information on any of our other distributed systems it is connected to. """users and is not authenticated.""" # noqa: E501
You must be a Zoo employee to perform this request.""" # noqa: E501
return sync_detailed( return sync_detailed(
body=body,
client=client, client=client,
).parsed ).parsed
async def asyncio_detailed( async def asyncio_detailed(
body: InquiryForm,
*, *,
client: Client, client: Client,
) -> Response[Optional[Union[Metadata, Error]]]: ) -> Response[Optional[Error]]:
kwargs = _get_kwargs( kwargs = _get_kwargs(
body=body,
client=client, client=client,
) )
async with httpx.AsyncClient(verify=client.verify_ssl) as _client: async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
response = await _client.get(**kwargs) response = await _client.put(**kwargs)
return _build_response(response=response) return _build_response(response=response)
async def asyncio( async def asyncio(
body: InquiryForm,
*, *,
client: Client, client: Client,
) -> Optional[Union[Metadata, Error]]: ) -> Optional[Error]:
"""This includes information on any of our other distributed systems it is connected to. """users and is not authenticated.""" # noqa: E501
You must be a Zoo employee to perform this request.""" # noqa: E501
return ( return (
await asyncio_detailed( await asyncio_detailed(
body=body,
client=client, client=client,
) )
).parsed ).parsed

View File

@ -0,0 +1,107 @@
from typing import Any, Dict, Optional
import httpx
from ...client import Client
from ...models.error import Error
from ...models.subscribe import Subscribe
from ...types import Response
def _get_kwargs(
body: Subscribe,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/website/subscribe".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
return {
"url": url,
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
"content": body.model_dump_json(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
return None
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[Error]]:
return Response(
status_code=response.status_code,
content=response.content,
headers=response.headers,
parsed=_parse_response(response=response),
)
def sync_detailed(
body: Subscribe,
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
response = httpx.put(
verify=client.verify_ssl,
**kwargs,
)
return _build_response(response=response)
def sync(
body: Subscribe,
*,
client: Client,
) -> Optional[Error]:
return sync_detailed(
body=body,
client=client,
).parsed
async def asyncio_detailed(
body: Subscribe,
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
response = await _client.put(**kwargs)
return _build_response(response=response)
async def asyncio(
body: Subscribe,
*,
client: Client,
) -> Optional[Error]:
return (
await asyncio_detailed(
body=body,
client=client,
)
).parsed

View File

@ -0,0 +1,111 @@
from typing import Any, Dict, Optional
import httpx
from ...client import Client
from ...models.error import Error
from ...models.inquiry_form import InquiryForm
from ...types import Response
def _get_kwargs(
body: InquiryForm,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/user/form".format(
client.base_url,
) # noqa: E501
headers: Dict[str, Any] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()
return {
"url": url,
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
"content": body.model_dump_json(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
return None
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[Error]]:
return Response(
status_code=response.status_code,
content=response.content,
headers=response.headers,
parsed=_parse_response(response=response),
)
def sync_detailed(
body: InquiryForm,
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
response = httpx.put(
verify=client.verify_ssl,
**kwargs,
)
return _build_response(response=response)
def sync(
body: InquiryForm,
*,
client: Client,
) -> Optional[Error]:
"""It gets attached to the user's account.""" # noqa: E501
return sync_detailed(
body=body,
client=client,
).parsed
async def asyncio_detailed(
body: InquiryForm,
*,
client: Client,
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
response = await _client.put(**kwargs)
return _build_response(response=response)
async def asyncio(
body: InquiryForm,
*,
client: Client,
) -> Optional[Error]:
"""It gets attached to the user's account.""" # noqa: E501
return (
await asyncio_detailed(
body=body,
client=client,
)
).parsed

View File

@ -48,7 +48,6 @@ from kittycad.api.meta import (
create_debug_uploads, create_debug_uploads,
create_event, create_event,
get_ipinfo, get_ipinfo,
get_metadata,
get_pricing_subscriptions, get_pricing_subscriptions,
get_schema, get_schema,
internal_get_api_token_for_discord_user, internal_get_api_token_for_discord_user,
@ -158,6 +157,10 @@ from kittycad.api.users import (
get_user_shortlinks, get_user_shortlinks,
list_users, list_users,
list_users_extended, list_users_extended,
patch_user_crm,
put_public_form,
put_public_subscribe,
put_user_form_self,
update_user_privacy_settings, update_user_privacy_settings,
update_user_self, update_user_self,
update_user_shortlink, update_user_shortlink,
@ -190,7 +193,6 @@ from kittycad.models import (
IpAddrInfo, IpAddrInfo,
KclCodeCompletionResponse, KclCodeCompletionResponse,
KclModel, KclModel,
Metadata,
MlPrompt, MlPrompt,
MlPromptResultsPage, MlPromptResultsPage,
Onboarding, Onboarding,
@ -237,8 +239,10 @@ from kittycad.models.api_token_uuid import ApiTokenUuid
from kittycad.models.base64data import Base64Data from kittycad.models.base64data import Base64Data
from kittycad.models.billing_info import BillingInfo from kittycad.models.billing_info import BillingInfo
from kittycad.models.code_language import CodeLanguage from kittycad.models.code_language import CodeLanguage
from kittycad.models.code_option import CodeOption
from kittycad.models.create_shortlink_request import CreateShortlinkRequest from kittycad.models.create_shortlink_request import CreateShortlinkRequest
from kittycad.models.created_at_sort_mode import CreatedAtSortMode from kittycad.models.created_at_sort_mode import CreatedAtSortMode
from kittycad.models.crm_data import CrmData
from kittycad.models.email_authentication_form import EmailAuthenticationForm from kittycad.models.email_authentication_form import EmailAuthenticationForm
from kittycad.models.enterprise_subscription_tier_price import ( from kittycad.models.enterprise_subscription_tier_price import (
EnterpriseSubscriptionTierPrice, EnterpriseSubscriptionTierPrice,
@ -251,6 +255,8 @@ from kittycad.models.idp_metadata_source import (
IdpMetadataSource, IdpMetadataSource,
OptionBase64EncodedXml, OptionBase64EncodedXml,
) )
from kittycad.models.inquiry_form import InquiryForm
from kittycad.models.inquiry_type import InquiryType
from kittycad.models.kcl_code_completion_params import KclCodeCompletionParams from kittycad.models.kcl_code_completion_params import KclCodeCompletionParams
from kittycad.models.kcl_code_completion_request import KclCodeCompletionRequest from kittycad.models.kcl_code_completion_request import KclCodeCompletionRequest
from kittycad.models.ml_feedback import MlFeedback from kittycad.models.ml_feedback import MlFeedback
@ -274,6 +280,7 @@ from kittycad.models.source_position import SourcePosition
from kittycad.models.source_range import SourceRange from kittycad.models.source_range import SourceRange
from kittycad.models.source_range_prompt import SourceRangePrompt from kittycad.models.source_range_prompt import SourceRangePrompt
from kittycad.models.store_coupon_params import StoreCouponParams from kittycad.models.store_coupon_params import StoreCouponParams
from kittycad.models.subscribe import Subscribe
from kittycad.models.text_to_cad_create_body import TextToCadCreateBody from kittycad.models.text_to_cad_create_body import TextToCadCreateBody
from kittycad.models.text_to_cad_iteration_body import TextToCadIterationBody from kittycad.models.text_to_cad_iteration_body import TextToCadIterationBody
from kittycad.models.text_to_cad_multi_file_iteration_body import ( from kittycad.models.text_to_cad_multi_file_iteration_body import (
@ -342,47 +349,6 @@ async def test_get_schema_async():
) )
@pytest.mark.skip
def test_get_metadata():
# Create our client.
client = ClientFromEnv()
result: Optional[Union[Metadata, Error]] = get_metadata.sync(
client=client,
)
if isinstance(result, Error) or result is None:
print(result)
raise Exception("Error in response")
body: Metadata = result
print(body)
# OR if you need more info (e.g. status_code)
response: Response[Optional[Union[Metadata, Error]]] = get_metadata.sync_detailed(
client=client,
)
# OR run async
@pytest.mark.asyncio
@pytest.mark.skip
async def test_get_metadata_async():
# Create our client.
client = ClientFromEnv()
result: Optional[Union[Metadata, Error]] = await get_metadata.asyncio(
client=client,
)
# OR run async with more info
response: Response[
Optional[Union[Metadata, Error]]
] = await get_metadata.asyncio_detailed(
client=client,
)
@pytest.mark.skip @pytest.mark.skip
def test_get_ipinfo(): def test_get_ipinfo():
# Create our client. # Create our client.
@ -1908,6 +1874,7 @@ def test_create_proprietary_to_kcl():
result: Optional[Union[KclModel, Error]] = create_proprietary_to_kcl.sync( result: Optional[Union[KclModel, Error]] = create_proprietary_to_kcl.sync(
client=client, client=client,
code_option=CodeOption.PARSE,
) )
if isinstance(result, Error) or result is None: if isinstance(result, Error) or result is None:
@ -1921,6 +1888,7 @@ def test_create_proprietary_to_kcl():
response: Response[Optional[Union[KclModel, Error]]] = ( response: Response[Optional[Union[KclModel, Error]]] = (
create_proprietary_to_kcl.sync_detailed( create_proprietary_to_kcl.sync_detailed(
client=client, client=client,
code_option=CodeOption.PARSE,
) )
) )
@ -1934,6 +1902,7 @@ async def test_create_proprietary_to_kcl_async():
result: Optional[Union[KclModel, Error]] = await create_proprietary_to_kcl.asyncio( result: Optional[Union[KclModel, Error]] = await create_proprietary_to_kcl.asyncio(
client=client, client=client,
code_option=CodeOption.PARSE,
) )
# OR run async with more info # OR run async with more info
@ -1941,6 +1910,7 @@ async def test_create_proprietary_to_kcl_async():
Optional[Union[KclModel, Error]] Optional[Union[KclModel, Error]]
] = await create_proprietary_to_kcl.asyncio_detailed( ] = await create_proprietary_to_kcl.asyncio_detailed(
client=client, client=client,
code_option=CodeOption.PARSE,
) )
@ -3055,6 +3025,7 @@ def test_get_payment_balance_for_org():
result: Optional[Union[CustomerBalance, Error]] = get_payment_balance_for_org.sync( result: Optional[Union[CustomerBalance, Error]] = get_payment_balance_for_org.sync(
client=client, client=client,
include_total_due=False,
) )
if isinstance(result, Error) or result is None: if isinstance(result, Error) or result is None:
@ -3068,6 +3039,7 @@ def test_get_payment_balance_for_org():
response: Response[Optional[Union[CustomerBalance, Error]]] = ( response: Response[Optional[Union[CustomerBalance, Error]]] = (
get_payment_balance_for_org.sync_detailed( get_payment_balance_for_org.sync_detailed(
client=client, client=client,
include_total_due=False,
) )
) )
@ -3083,6 +3055,7 @@ async def test_get_payment_balance_for_org_async():
Union[CustomerBalance, Error] Union[CustomerBalance, Error]
] = await get_payment_balance_for_org.asyncio( ] = await get_payment_balance_for_org.asyncio(
client=client, client=client,
include_total_due=False,
) )
# OR run async with more info # OR run async with more info
@ -3090,6 +3063,7 @@ async def test_get_payment_balance_for_org_async():
Optional[Union[CustomerBalance, Error]] Optional[Union[CustomerBalance, Error]]
] = await get_payment_balance_for_org.asyncio_detailed( ] = await get_payment_balance_for_org.asyncio_detailed(
client=client, client=client,
include_total_due=False,
) )
@ -4271,6 +4245,7 @@ def test_get_payment_balance_for_any_org():
result: Optional[Union[CustomerBalance, Error]] = ( result: Optional[Union[CustomerBalance, Error]] = (
get_payment_balance_for_any_org.sync( get_payment_balance_for_any_org.sync(
client=client, client=client,
include_total_due=False,
id=Uuid("<string>"), id=Uuid("<string>"),
) )
) )
@ -4286,6 +4261,7 @@ def test_get_payment_balance_for_any_org():
response: Response[Optional[Union[CustomerBalance, Error]]] = ( response: Response[Optional[Union[CustomerBalance, Error]]] = (
get_payment_balance_for_any_org.sync_detailed( get_payment_balance_for_any_org.sync_detailed(
client=client, client=client,
include_total_due=False,
id=Uuid("<string>"), id=Uuid("<string>"),
) )
) )
@ -4302,6 +4278,7 @@ async def test_get_payment_balance_for_any_org_async():
Union[CustomerBalance, Error] Union[CustomerBalance, Error]
] = await get_payment_balance_for_any_org.asyncio( ] = await get_payment_balance_for_any_org.asyncio(
client=client, client=client,
include_total_due=False,
id=Uuid("<string>"), id=Uuid("<string>"),
) )
@ -4310,6 +4287,7 @@ async def test_get_payment_balance_for_any_org_async():
Optional[Union[CustomerBalance, Error]] Optional[Union[CustomerBalance, Error]]
] = await get_payment_balance_for_any_org.asyncio_detailed( ] = await get_payment_balance_for_any_org.asyncio_detailed(
client=client, client=client,
include_total_due=False,
id=Uuid("<string>"), id=Uuid("<string>"),
) )
@ -4323,6 +4301,7 @@ def test_update_payment_balance_for_any_org():
update_payment_balance_for_any_org.sync( update_payment_balance_for_any_org.sync(
client=client, client=client,
id=Uuid("<string>"), id=Uuid("<string>"),
include_total_due=False,
body=UpdatePaymentBalance(), body=UpdatePaymentBalance(),
) )
) )
@ -4339,6 +4318,7 @@ def test_update_payment_balance_for_any_org():
update_payment_balance_for_any_org.sync_detailed( update_payment_balance_for_any_org.sync_detailed(
client=client, client=client,
id=Uuid("<string>"), id=Uuid("<string>"),
include_total_due=False,
body=UpdatePaymentBalance(), body=UpdatePaymentBalance(),
) )
) )
@ -4356,6 +4336,7 @@ async def test_update_payment_balance_for_any_org_async():
] = await update_payment_balance_for_any_org.asyncio( ] = await update_payment_balance_for_any_org.asyncio(
client=client, client=client,
id=Uuid("<string>"), id=Uuid("<string>"),
include_total_due=False,
body=UpdatePaymentBalance(), body=UpdatePaymentBalance(),
) )
@ -4365,6 +4346,7 @@ async def test_update_payment_balance_for_any_org_async():
] = await update_payment_balance_for_any_org.asyncio_detailed( ] = await update_payment_balance_for_any_org.asyncio_detailed(
client=client, client=client,
id=Uuid("<string>"), id=Uuid("<string>"),
include_total_due=False,
body=UpdatePaymentBalance(), body=UpdatePaymentBalance(),
) )
@ -5719,6 +5701,49 @@ async def test_delete_api_token_for_user_async():
) )
@pytest.mark.skip
def test_patch_user_crm():
# Create our client.
client = ClientFromEnv()
result: Optional[Error] = patch_user_crm.sync(
client=client,
body=CrmData(),
)
if isinstance(result, Error) or result is None:
print(result)
raise Exception("Error in response")
body: Error = result
print(body)
# OR if you need more info (e.g. status_code)
response: Response[Optional[Error]] = patch_user_crm.sync_detailed(
client=client,
body=CrmData(),
)
# OR run async
@pytest.mark.asyncio
@pytest.mark.skip
async def test_patch_user_crm_async():
# Create our client.
client = ClientFromEnv()
result: Optional[Error] = await patch_user_crm.asyncio(
client=client,
body=CrmData(),
)
# OR run async with more info
response: Response[Optional[Error]] = await patch_user_crm.asyncio_detailed(
client=client,
body=CrmData(),
)
@pytest.mark.skip @pytest.mark.skip
def test_get_user_self_extended(): def test_get_user_self_extended():
# Create our client. # Create our client.
@ -5762,6 +5787,73 @@ async def test_get_user_self_extended_async():
) )
@pytest.mark.skip
def test_put_user_form_self():
# Create our client.
client = ClientFromEnv()
result: Optional[Error] = put_user_form_self.sync(
client=client,
body=InquiryForm(
email="<string>",
first_name="<string>",
inquiry_type=InquiryType.GENERAL_INQUIRY,
last_name="<string>",
message="<string>",
),
)
if isinstance(result, Error) or result is None:
print(result)
raise Exception("Error in response")
body: Error = result
print(body)
# OR if you need more info (e.g. status_code)
response: Response[Optional[Error]] = put_user_form_self.sync_detailed(
client=client,
body=InquiryForm(
email="<string>",
first_name="<string>",
inquiry_type=InquiryType.GENERAL_INQUIRY,
last_name="<string>",
message="<string>",
),
)
# OR run async
@pytest.mark.asyncio
@pytest.mark.skip
async def test_put_user_form_self_async():
# Create our client.
client = ClientFromEnv()
result: Optional[Error] = await put_user_form_self.asyncio(
client=client,
body=InquiryForm(
email="<string>",
first_name="<string>",
inquiry_type=InquiryType.GENERAL_INQUIRY,
last_name="<string>",
message="<string>",
),
)
# OR run async with more info
response: Response[Optional[Error]] = await put_user_form_self.asyncio_detailed(
client=client,
body=InquiryForm(
email="<string>",
first_name="<string>",
inquiry_type=InquiryType.GENERAL_INQUIRY,
last_name="<string>",
message="<string>",
),
)
@pytest.mark.skip @pytest.mark.skip
def test_get_oauth2_providers_for_user(): def test_get_oauth2_providers_for_user():
# Create our client. # Create our client.
@ -6112,6 +6204,7 @@ def test_get_payment_balance_for_user():
result: Optional[Union[CustomerBalance, Error]] = get_payment_balance_for_user.sync( result: Optional[Union[CustomerBalance, Error]] = get_payment_balance_for_user.sync(
client=client, client=client,
include_total_due=False,
) )
if isinstance(result, Error) or result is None: if isinstance(result, Error) or result is None:
@ -6125,6 +6218,7 @@ def test_get_payment_balance_for_user():
response: Response[Optional[Union[CustomerBalance, Error]]] = ( response: Response[Optional[Union[CustomerBalance, Error]]] = (
get_payment_balance_for_user.sync_detailed( get_payment_balance_for_user.sync_detailed(
client=client, client=client,
include_total_due=False,
) )
) )
@ -6140,6 +6234,7 @@ async def test_get_payment_balance_for_user_async():
Union[CustomerBalance, Error] Union[CustomerBalance, Error]
] = await get_payment_balance_for_user.asyncio( ] = await get_payment_balance_for_user.asyncio(
client=client, client=client,
include_total_due=False,
) )
# OR run async with more info # OR run async with more info
@ -6147,6 +6242,7 @@ async def test_get_payment_balance_for_user_async():
Optional[Union[CustomerBalance, Error]] Optional[Union[CustomerBalance, Error]]
] = await get_payment_balance_for_user.asyncio_detailed( ] = await get_payment_balance_for_user.asyncio_detailed(
client=client, client=client,
include_total_due=False,
) )
@ -7389,6 +7485,7 @@ def test_get_payment_balance_for_any_user():
get_payment_balance_for_any_user.sync( get_payment_balance_for_any_user.sync(
client=client, client=client,
id=UserIdentifier("<string>"), id=UserIdentifier("<string>"),
include_total_due=False,
) )
) )
@ -7404,6 +7501,7 @@ def test_get_payment_balance_for_any_user():
get_payment_balance_for_any_user.sync_detailed( get_payment_balance_for_any_user.sync_detailed(
client=client, client=client,
id=UserIdentifier("<string>"), id=UserIdentifier("<string>"),
include_total_due=False,
) )
) )
@ -7420,6 +7518,7 @@ async def test_get_payment_balance_for_any_user_async():
] = await get_payment_balance_for_any_user.asyncio( ] = await get_payment_balance_for_any_user.asyncio(
client=client, client=client,
id=UserIdentifier("<string>"), id=UserIdentifier("<string>"),
include_total_due=False,
) )
# OR run async with more info # OR run async with more info
@ -7428,6 +7527,7 @@ async def test_get_payment_balance_for_any_user_async():
] = await get_payment_balance_for_any_user.asyncio_detailed( ] = await get_payment_balance_for_any_user.asyncio_detailed(
client=client, client=client,
id=UserIdentifier("<string>"), id=UserIdentifier("<string>"),
include_total_due=False,
) )
@ -7440,6 +7540,7 @@ def test_update_payment_balance_for_any_user():
update_payment_balance_for_any_user.sync( update_payment_balance_for_any_user.sync(
client=client, client=client,
id=UserIdentifier("<string>"), id=UserIdentifier("<string>"),
include_total_due=False,
body=UpdatePaymentBalance(), body=UpdatePaymentBalance(),
) )
) )
@ -7456,6 +7557,7 @@ def test_update_payment_balance_for_any_user():
update_payment_balance_for_any_user.sync_detailed( update_payment_balance_for_any_user.sync_detailed(
client=client, client=client,
id=UserIdentifier("<string>"), id=UserIdentifier("<string>"),
include_total_due=False,
body=UpdatePaymentBalance(), body=UpdatePaymentBalance(),
) )
) )
@ -7473,6 +7575,7 @@ async def test_update_payment_balance_for_any_user_async():
] = await update_payment_balance_for_any_user.asyncio( ] = await update_payment_balance_for_any_user.asyncio(
client=client, client=client,
id=UserIdentifier("<string>"), id=UserIdentifier("<string>"),
include_total_due=False,
body=UpdatePaymentBalance(), body=UpdatePaymentBalance(),
) )
@ -7482,10 +7585,129 @@ async def test_update_payment_balance_for_any_user_async():
] = await update_payment_balance_for_any_user.asyncio_detailed( ] = await update_payment_balance_for_any_user.asyncio_detailed(
client=client, client=client,
id=UserIdentifier("<string>"), id=UserIdentifier("<string>"),
include_total_due=False,
body=UpdatePaymentBalance(), body=UpdatePaymentBalance(),
) )
@pytest.mark.skip
def test_put_public_form():
# Create our client.
client = ClientFromEnv()
result: Optional[Error] = put_public_form.sync(
client=client,
body=InquiryForm(
email="<string>",
first_name="<string>",
inquiry_type=InquiryType.GENERAL_INQUIRY,
last_name="<string>",
message="<string>",
),
)
if isinstance(result, Error) or result is None:
print(result)
raise Exception("Error in response")
body: Error = result
print(body)
# OR if you need more info (e.g. status_code)
response: Response[Optional[Error]] = put_public_form.sync_detailed(
client=client,
body=InquiryForm(
email="<string>",
first_name="<string>",
inquiry_type=InquiryType.GENERAL_INQUIRY,
last_name="<string>",
message="<string>",
),
)
# OR run async
@pytest.mark.asyncio
@pytest.mark.skip
async def test_put_public_form_async():
# Create our client.
client = ClientFromEnv()
result: Optional[Error] = await put_public_form.asyncio(
client=client,
body=InquiryForm(
email="<string>",
first_name="<string>",
inquiry_type=InquiryType.GENERAL_INQUIRY,
last_name="<string>",
message="<string>",
),
)
# OR run async with more info
response: Response[Optional[Error]] = await put_public_form.asyncio_detailed(
client=client,
body=InquiryForm(
email="<string>",
first_name="<string>",
inquiry_type=InquiryType.GENERAL_INQUIRY,
last_name="<string>",
message="<string>",
),
)
@pytest.mark.skip
def test_put_public_subscribe():
# Create our client.
client = ClientFromEnv()
result: Optional[Error] = put_public_subscribe.sync(
client=client,
body=Subscribe(
email="<string>",
),
)
if isinstance(result, Error) or result is None:
print(result)
raise Exception("Error in response")
body: Error = result
print(body)
# OR if you need more info (e.g. status_code)
response: Response[Optional[Error]] = put_public_subscribe.sync_detailed(
client=client,
body=Subscribe(
email="<string>",
),
)
# OR run async
@pytest.mark.asyncio
@pytest.mark.skip
async def test_put_public_subscribe_async():
# Create our client.
client = ClientFromEnv()
result: Optional[Error] = await put_public_subscribe.asyncio(
client=client,
body=Subscribe(
email="<string>",
),
)
# OR run async with more info
response: Response[Optional[Error]] = await put_public_subscribe.asyncio_detailed(
client=client,
body=Subscribe(
email="<string>",
),
)
@pytest.mark.skip @pytest.mark.skip
def test_create_executor_term(): def test_create_executor_term():
# Create our client. # Create our client.

View File

@ -4,6 +4,7 @@ from .account_provider import AccountProvider
from .add_hole_from_offset import AddHoleFromOffset from .add_hole_from_offset import AddHoleFromOffset
from .add_org_member import AddOrgMember from .add_org_member import AddOrgMember
from .address_details import AddressDetails from .address_details import AddressDetails
from .adjacency_info import AdjacencyInfo
from .angle import Angle from .angle import Angle
from .annotation_line_end import AnnotationLineEnd from .annotation_line_end import AnnotationLineEnd
from .annotation_line_end_options import AnnotationLineEndOptions from .annotation_line_end_options import AnnotationLineEndOptions
@ -36,7 +37,6 @@ from .block_reason import BlockReason
from .boolean_intersection import BooleanIntersection from .boolean_intersection import BooleanIntersection
from .boolean_subtract import BooleanSubtract from .boolean_subtract import BooleanSubtract
from .boolean_union import BooleanUnion from .boolean_union import BooleanUnion
from .cache_metadata import CacheMetadata
from .camera_drag_end import CameraDragEnd from .camera_drag_end import CameraDragEnd
from .camera_drag_interaction_type import CameraDragInteractionType from .camera_drag_interaction_type import CameraDragInteractionType
from .camera_drag_move import CameraDragMove from .camera_drag_move import CameraDragMove
@ -48,17 +48,18 @@ from .card_details import CardDetails
from .center_of_mass import CenterOfMass from .center_of_mass import CenterOfMass
from .client_metrics import ClientMetrics from .client_metrics import ClientMetrics
from .close_path import ClosePath from .close_path import ClosePath
from .cluster import Cluster
from .code_language import CodeLanguage from .code_language import CodeLanguage
from .code_option import CodeOption
from .code_output import CodeOutput from .code_output import CodeOutput
from .color import Color from .color import Color
from .complementary_edges import ComplementaryEdges
from .component_transform import ComponentTransform from .component_transform import ComponentTransform
from .connection import Connection
from .country_code import CountryCode from .country_code import CountryCode
from .coupon import Coupon from .coupon import Coupon
from .create_shortlink_request import CreateShortlinkRequest from .create_shortlink_request import CreateShortlinkRequest
from .create_shortlink_response import CreateShortlinkResponse from .create_shortlink_response import CreateShortlinkResponse
from .created_at_sort_mode import CreatedAtSortMode from .created_at_sort_mode import CreatedAtSortMode
from .crm_data import CrmData
from .currency import Currency from .currency import Currency
from .curve_get_control_points import CurveGetControlPoints from .curve_get_control_points import CurveGetControlPoints
from .curve_get_end_points import CurveGetEndPoints from .curve_get_end_points import CurveGetEndPoints
@ -67,6 +68,7 @@ from .curve_set_constraint import CurveSetConstraint
from .curve_type import CurveType from .curve_type import CurveType
from .customer import Customer from .customer import Customer
from .customer_balance import CustomerBalance from .customer_balance import CustomerBalance
from .cut_strategy import CutStrategy
from .cut_type import CutType from .cut_type import CutType
from .default_camera_center_to_scene import DefaultCameraCenterToScene from .default_camera_center_to_scene import DefaultCameraCenterToScene
from .default_camera_center_to_selection import DefaultCameraCenterToSelection from .default_camera_center_to_selection import DefaultCameraCenterToSelection
@ -91,6 +93,7 @@ from .discount import Discount
from .discount_code import DiscountCode from .discount_code import DiscountCode
from .distance_type import DistanceType from .distance_type import DistanceType
from .dxf_storage import DxfStorage from .dxf_storage import DxfStorage
from .edge_info import EdgeInfo
from .edge_lines_visible import EdgeLinesVisible from .edge_lines_visible import EdgeLinesVisible
from .email_authentication_form import EmailAuthenticationForm from .email_authentication_form import EmailAuthenticationForm
from .empty import Empty from .empty import Empty
@ -116,7 +119,6 @@ from .entity_mirror import EntityMirror
from .entity_mirror_across_edge import EntityMirrorAcrossEdge from .entity_mirror_across_edge import EntityMirrorAcrossEdge
from .entity_set_opacity import EntitySetOpacity from .entity_set_opacity import EntitySetOpacity
from .entity_type import EntityType from .entity_type import EntityType
from .environment import Environment
from .error import Error from .error import Error
from .error_code import ErrorCode from .error_code import ErrorCode
from .event import Event from .event import Event
@ -131,6 +133,7 @@ from .extrude import Extrude
from .extruded_face_info import ExtrudedFaceInfo from .extruded_face_info import ExtrudedFaceInfo
from .extrusion_face_cap_type import ExtrusionFaceCapType from .extrusion_face_cap_type import ExtrusionFaceCapType
from .extrusion_face_info import ExtrusionFaceInfo from .extrusion_face_info import ExtrusionFaceInfo
from .face_edge_info import FaceEdgeInfo
from .face_get_center import FaceGetCenter from .face_get_center import FaceGetCenter
from .face_get_gradient import FaceGetGradient from .face_get_gradient import FaceGetGradient
from .face_get_position import FaceGetPosition from .face_get_position import FaceGetPosition
@ -144,9 +147,7 @@ from .file_export_format import FileExportFormat
from .file_import_format import FileImportFormat from .file_import_format import FileImportFormat
from .file_mass import FileMass from .file_mass import FileMass
from .file_surface_area import FileSurfaceArea from .file_surface_area import FileSurfaceArea
from .file_system_metadata import FileSystemMetadata
from .file_volume import FileVolume from .file_volume import FileVolume
from .gateway import Gateway
from .get_entity_type import GetEntityType from .get_entity_type import GetEntityType
from .get_num_objects import GetNumObjects from .get_num_objects import GetNumObjects
from .get_sketch_mode_plane import GetSketchModePlane from .get_sketch_mode_plane import GetSketchModePlane
@ -165,27 +166,22 @@ from .import_file import ImportFile
from .import_files import ImportFiles from .import_files import ImportFiles
from .imported_geometry import ImportedGeometry from .imported_geometry import ImportedGeometry
from .input_format3d import InputFormat3d from .input_format3d import InputFormat3d
from .inquiry_form import InquiryForm
from .inquiry_type import InquiryType
from .invoice import Invoice from .invoice import Invoice
from .invoice_line_item import InvoiceLineItem from .invoice_line_item import InvoiceLineItem
from .invoice_status import InvoiceStatus from .invoice_status import InvoiceStatus
from .ip_addr_info import IpAddrInfo from .ip_addr_info import IpAddrInfo
from .jetstream import Jetstream
from .jetstream_api_stats import JetstreamApiStats
from .jetstream_config import JetstreamConfig
from .jetstream_stats import JetstreamStats
from .kcl_code_completion_params import KclCodeCompletionParams from .kcl_code_completion_params import KclCodeCompletionParams
from .kcl_code_completion_request import KclCodeCompletionRequest from .kcl_code_completion_request import KclCodeCompletionRequest
from .kcl_code_completion_response import KclCodeCompletionResponse from .kcl_code_completion_response import KclCodeCompletionResponse
from .kcl_model import KclModel from .kcl_model import KclModel
from .leaf_node import LeafNode
from .length_unit import LengthUnit from .length_unit import LengthUnit
from .loft import Loft from .loft import Loft
from .make_axes_gizmo import MakeAxesGizmo from .make_axes_gizmo import MakeAxesGizmo
from .make_offset_path import MakeOffsetPath from .make_offset_path import MakeOffsetPath
from .make_plane import MakePlane from .make_plane import MakePlane
from .mass import Mass from .mass import Mass
from .meta_cluster_info import MetaClusterInfo
from .metadata import Metadata
from .method import Method from .method import Method
from .ml_feedback import MlFeedback from .ml_feedback import MlFeedback
from .ml_prompt import MlPrompt from .ml_prompt import MlPrompt
@ -260,6 +256,7 @@ from .project_entity_to_plane import ProjectEntityToPlane
from .project_points_to_plane import ProjectPointsToPlane from .project_points_to_plane import ProjectPointsToPlane
from .raw_file import RawFile from .raw_file import RawFile
from .reconfigure_stream import ReconfigureStream from .reconfigure_stream import ReconfigureStream
from .relative_to import RelativeTo
from .remove_scene_objects import RemoveSceneObjects from .remove_scene_objects import RemoveSceneObjects
from .revolve import Revolve from .revolve import Revolve
from .revolve_about_edge import RevolveAboutEdge from .revolve_about_edge import RevolveAboutEdge
@ -300,6 +297,7 @@ from .side_face import SideFace
from .sketch_mode_disable import SketchModeDisable from .sketch_mode_disable import SketchModeDisable
from .solid2d_add_hole import Solid2dAddHole from .solid2d_add_hole import Solid2dAddHole
from .solid3d_fillet_edge import Solid3dFilletEdge from .solid3d_fillet_edge import Solid3dFilletEdge
from .solid3d_get_adjacency_info import Solid3dGetAdjacencyInfo
from .solid3d_get_all_edge_faces import Solid3dGetAllEdgeFaces from .solid3d_get_all_edge_faces import Solid3dGetAllEdgeFaces
from .solid3d_get_all_opposite_edges import Solid3dGetAllOppositeEdges from .solid3d_get_all_opposite_edges import Solid3dGetAllOppositeEdges
from .solid3d_get_common_edge import Solid3dGetCommonEdge from .solid3d_get_common_edge import Solid3dGetCommonEdge
@ -314,6 +312,7 @@ from .source_range_prompt import SourceRangePrompt
from .start_path import StartPath from .start_path import StartPath
from .stl_storage import StlStorage from .stl_storage import StlStorage
from .store_coupon_params import StoreCouponParams from .store_coupon_params import StoreCouponParams
from .subscribe import Subscribe
from .subscription_tier_feature import SubscriptionTierFeature from .subscription_tier_feature import SubscriptionTierFeature
from .subscription_tier_price import SubscriptionTierPrice from .subscription_tier_price import SubscriptionTierPrice
from .subscription_tier_type import SubscriptionTierType from .subscription_tier_type import SubscriptionTierType

View File

@ -0,0 +1,17 @@
from typing import Optional
from pydantic import BaseModel, ConfigDict
from ..models.edge_info import EdgeInfo
class AdjacencyInfo(BaseModel):
"""Edge info struct (useful for maintaining mappings between edges and faces and adjacent/opposite edges)."""
adjacent_info: Optional[EdgeInfo] = None
opposite_info: Optional[EdgeInfo] = None
original_info: Optional[EdgeInfo] = None
model_config = ConfigDict(protected_namespaces=())

View File

@ -1,11 +0,0 @@
from pydantic import BaseModel, ConfigDict
class CacheMetadata(BaseModel):
"""Metadata about our cache.
This is mostly used for internal purposes and debugging."""
ok: bool
model_config = ConfigDict(protected_namespaces=())

View File

@ -1,21 +0,0 @@
from typing import List, Optional
from pydantic import BaseModel, ConfigDict
class Cluster(BaseModel):
"""Cluster information."""
addr: Optional[str] = None
auth_timeout: int = 0
cluster_port: int = 0
name: str = ""
tls_timeout: int = 0
urls: List[str] = []
model_config = ConfigDict(protected_namespaces=())

View File

@ -0,0 +1,17 @@
from enum import Enum
class CodeOption(str, Enum):
"""Code option for running and verifying kcl.
<details><summary>JSON schema</summary>
```json { "title": "CodeOption", "description": "Code option for running and verifying kcl.", "type": "string", "enum": [ "parse", "execute", "cleanup", "mock_execute" ] } ``` </details>""" # noqa: E501
PARSE = "parse"
EXECUTE = "execute"
CLEANUP = "cleanup"
MOCK_EXECUTE = "mock_execute"
def __str__(self) -> str:
return str(self.value)

View File

@ -0,0 +1,13 @@
from typing import List, Optional
from pydantic import BaseModel, ConfigDict
class ComplementaryEdges(BaseModel):
"""Struct to contain the edge information of a wall of an extrude/rotate/loft/sweep."""
adjacent_ids: List[str]
opposite_id: Optional[str] = None
model_config = ConfigDict(protected_namespaces=())

View File

@ -1,134 +0,0 @@
import datetime
from typing import Dict
from pydantic import BaseModel, ConfigDict
from ..models.cluster import Cluster
from ..models.gateway import Gateway
from ..models.jetstream import Jetstream
from ..models.leaf_node import LeafNode
class Connection(BaseModel):
"""Metadata about a pub-sub connection.
This is mostly used for internal purposes and debugging."""
auth_timeout: int = 0
cluster: Cluster = {
"addr": None,
"auth_timeout": 0,
"cluster_port": 0,
"name": "",
"tls_timeout": 0,
"urls": [],
} # type: ignore
config_load_time: datetime.datetime
connections: int = 0
cores: int = 0
cpu: float = 0.0
gateway: Gateway = {
"auth_timeout": 0,
"host": "",
"name": "",
"port": 0,
"tls_timeout": 0,
} # type: ignore
git_commit: str = ""
go: str = ""
gomaxprocs: int = 0
host: str
http_base_path: str = ""
http_host: str = ""
http_port: int = 0
http_req_stats: Dict[str, int]
https_port: int = 0
in_bytes: int = 0
in_msgs: int = 0
jetstream: Jetstream = {
"config": {"domain": "", "max_memory": 0, "max_storage": 0, "store_dir": ""},
"meta": {"cluster_size": 0, "leader": "", "name": ""},
"stats": {
"accounts": 0,
"api": {"errors": 0, "inflight": 0, "total": 0},
"ha_assets": 0,
"memory": 0,
"reserved_memory": 0,
"reserved_store": 0,
"store": 0,
},
} # type: ignore
leaf: LeafNode = {"auth_timeout": 0, "host": "", "port": 0, "tls_timeout": 0} # type: ignore
leafnodes: int = 0
max_connections: int = 0
max_control_line: int = 0
max_payload: int = 0
max_pending: int = 0
mem: int = 0
now: datetime.datetime
out_bytes: int = 0
out_msgs: int = 0
ping_interval: int = 0
ping_max: int = 0
port: int = 0
proto: int = 0
remotes: int = 0
routes: int = 0
server_id: str = ""
server_name: str = ""
slow_consumers: int = 0
start: datetime.datetime
subscriptions: int = 0
system_account: str = ""
tls_timeout: int = 0
total_connections: int = 0
uptime: str = ""
version: str = ""
write_deadline: int = 0
model_config = ConfigDict(protected_namespaces=())

View File

@ -0,0 +1,15 @@
from typing import Optional
from pydantic import BaseModel, ConfigDict
class CrmData(BaseModel):
"""The data for subscribing a user to the newsletter."""
cad_industry: Optional[str] = None
cad_user_type: Optional[str] = None
number_of_cad_users: Optional[str] = None
model_config = ConfigDict(protected_namespaces=())

View File

@ -33,7 +33,7 @@ class CustomerBalance(BaseModel):
subscription_id: Optional[str] = None subscription_id: Optional[str] = None
total_due: float total_due: Optional[float] = None
updated_at: datetime.datetime updated_at: datetime.datetime

View File

@ -0,0 +1,15 @@
from enum import Enum
class CutStrategy(str, Enum):
"""What strategy (algorithm) should be used for cutting? Defaults to Automatic.""" # noqa: E501
"""# Basic fillet cut. This has limitations, like the filletted edges can't touch each other. But it's very fast and simple. """ # noqa: E501
BASIC = "basic"
"""# More complicated fillet cut. It works for more use-cases, like edges that touch each other. But it's slower than the Basic method. """ # noqa: E501
CSG = "csg"
"""# Tries the Basic method, and if that doesn't work, tries the CSG strategy. """ # noqa: E501
AUTOMATIC = "automatic"
def __str__(self) -> str:
return str(self.value)

View File

@ -0,0 +1,13 @@
from typing import List
from pydantic import BaseModel, ConfigDict
class EdgeInfo(BaseModel):
"""A list of faces for a specific edge."""
edge_id: str
faces: List[str]
model_config = ConfigDict(protected_namespaces=())

View File

@ -1,11 +1,15 @@
from typing import List from typing import List, Optional
from pydantic import BaseModel, ConfigDict from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityCircularPattern(BaseModel): class EntityCircularPattern(BaseModel):
"""The response from the `EntityCircularPattern` command.""" """The response from the `EntityCircularPattern` command."""
entity_ids: List[str] entity_face_edge_ids: Optional[List[FaceEdgeInfo]] = None
entity_ids: Optional[List[str]] = None
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())

View File

@ -1,7 +1,15 @@
from typing import List, Optional
from pydantic import BaseModel, ConfigDict from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityClone(BaseModel): class EntityClone(BaseModel):
"""The response from the `EntityClone` command.""" """The response from the `EntityClone` command."""
entity_ids: Optional[List[str]] = None
face_edge_ids: Optional[List[FaceEdgeInfo]] = None
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())

View File

@ -1,11 +1,15 @@
from typing import List from typing import List, Optional
from pydantic import BaseModel, ConfigDict from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityLinearPattern(BaseModel): class EntityLinearPattern(BaseModel):
"""The response from the `EntityLinearPattern` command.""" """The response from the `EntityLinearPattern` command."""
entity_ids: List[str] entity_face_edge_ids: Optional[List[FaceEdgeInfo]] = None
entity_ids: Optional[List[str]] = None
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())

View File

@ -1,11 +1,15 @@
from typing import List from typing import List, Optional
from pydantic import BaseModel, ConfigDict from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityLinearPatternTransform(BaseModel): class EntityLinearPatternTransform(BaseModel):
"""The response from the `EntityLinearPatternTransform` command.""" """The response from the `EntityLinearPatternTransform` command."""
entity_ids: List[str] entity_face_edge_ids: Optional[List[FaceEdgeInfo]] = None
entity_ids: Optional[List[str]] = None
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())

View File

@ -1,11 +1,15 @@
from typing import List from typing import List, Optional
from pydantic import BaseModel, ConfigDict from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityMirror(BaseModel): class EntityMirror(BaseModel):
"""The response from the `EntityMirror` endpoint.""" """The response from the `EntityMirror` endpoint."""
entity_ids: List[str] entity_face_edge_ids: Optional[List[FaceEdgeInfo]] = None
entity_ids: Optional[List[str]] = None
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())

View File

@ -1,11 +1,15 @@
from typing import List from typing import List, Optional
from pydantic import BaseModel, ConfigDict from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityMirrorAcrossEdge(BaseModel): class EntityMirrorAcrossEdge(BaseModel):
"""The response from the `EntityMirrorAcrossEdge` endpoint.""" """The response from the `EntityMirrorAcrossEdge` endpoint."""
entity_ids: List[str] entity_face_edge_ids: Optional[List[FaceEdgeInfo]] = None
entity_ids: Optional[List[str]] = None
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())

View File

@ -1,15 +0,0 @@
from enum import Enum
class Environment(str, Enum):
"""The environment the server is running in.""" # noqa: E501
"""# The development environment. This is for running locally. """ # noqa: E501
DEVELOPMENT = "DEVELOPMENT"
"""# The preview environment. This is when PRs are created and a service is deployed for testing. """ # noqa: E501
PREVIEW = "PREVIEW"
"""# The production environment. """ # noqa: E501
PRODUCTION = "PRODUCTION"
def __str__(self) -> str:
return str(self.value)

View File

@ -38,6 +38,8 @@ class ExtendedUser(BaseModel):
image: str image: str
is_onboarded: bool = False
is_service_account: bool = False is_service_account: bool = False
last_name: Optional[str] = None last_name: Optional[str] = None

View File

@ -0,0 +1,15 @@
from typing import List
from pydantic import BaseModel, ConfigDict
class FaceEdgeInfo(BaseModel):
"""Faces and edges id info (most used in identifying geometry in patterned and mirrored objects)."""
edges: List[str]
faces: List[str]
object_id: str
model_config = ConfigDict(protected_namespaces=())

View File

@ -1,11 +0,0 @@
from pydantic import BaseModel, ConfigDict
class FileSystemMetadata(BaseModel):
"""Metadata about our file system.
This is mostly used for internal purposes and debugging."""
ok: bool
model_config = ConfigDict(protected_namespaces=())

View File

@ -1,17 +0,0 @@
from pydantic import BaseModel, ConfigDict
class Gateway(BaseModel):
"""Gateway information."""
auth_timeout: int = 0
host: str = ""
name: str = ""
port: int = 0
tls_timeout: int = 0
model_config = ConfigDict(protected_namespaces=())

View File

@ -0,0 +1,27 @@
from typing import Optional
from pydantic import BaseModel, ConfigDict
from ..models.inquiry_type import InquiryType
class InquiryForm(BaseModel):
"""The form for a public inquiry submission."""
company: Optional[str] = None
email: str
first_name: str
industry: Optional[str] = None
inquiry_type: InquiryType
last_name: str
message: str
phone: Optional[str] = None
model_config = ConfigDict(protected_namespaces=())

View File

@ -0,0 +1,25 @@
from enum import Enum
class InquiryType(str, Enum):
"""The type of inquiry.""" # noqa: E501
"""# General inquiry about the service or product. """ # noqa: E501
GENERAL_INQUIRY = "general_inquiry"
"""# Questions related to sales or purchasing. """ # noqa: E501
SALES_QUESTION = "sales_question"
"""# Inquiry from a developer, typically technical in nature. """ # noqa: E501
DEVELOPER_INQUIRY = "developer_inquiry"
"""# Opportunity for partnership or collaboration. """ # noqa: E501
PARTNERSHIP_OPPORTUNITY = "partnership_opportunity"
"""# Other inquiries related to sales that do not fit predefined categories. """ # noqa: E501
OTHER_SALES_INQUIRY = "other_sales_inquiry"
"""# Request for technical support or troubleshooting. """ # noqa: E501
TECHNICAL_SUPPORT = "technical_support"
"""# Questions or requests related to account management. """ # noqa: E501
ACCOUNT_MANAGEMENT = "account_management"
"""# Other support-related inquiries that do not fit predefined categories. """ # noqa: E501
OTHER_SUPPORT_INQUIRY = "other_support_inquiry"
def __str__(self) -> str:
return str(self.value)

View File

@ -1,30 +0,0 @@
from pydantic import BaseModel, ConfigDict
from ..models.jetstream_config import JetstreamConfig
from ..models.jetstream_stats import JetstreamStats
from ..models.meta_cluster_info import MetaClusterInfo
class Jetstream(BaseModel):
"""Jetstream information."""
config: JetstreamConfig = {
"domain": "",
"max_memory": 0,
"max_storage": 0,
"store_dir": "",
} # type: ignore
meta: MetaClusterInfo = {"cluster_size": 0, "leader": "", "name": ""} # type: ignore
stats: JetstreamStats = {
"accounts": 0,
"api": {"errors": 0, "inflight": 0, "total": 0},
"ha_assets": 0,
"memory": 0,
"reserved_memory": 0,
"reserved_store": 0,
"store": 0,
} # type: ignore
model_config = ConfigDict(protected_namespaces=())

View File

@ -1,13 +0,0 @@
from pydantic import BaseModel, ConfigDict
class JetstreamApiStats(BaseModel):
"""Jetstream API statistics."""
errors: int = 0
inflight: int = 0
total: int = 0
model_config = ConfigDict(protected_namespaces=())

View File

@ -1,15 +0,0 @@
from pydantic import BaseModel, ConfigDict
class JetstreamConfig(BaseModel):
"""Jetstream configuration."""
domain: str = ""
max_memory: int = 0
max_storage: int = 0
store_dir: str = ""
model_config = ConfigDict(protected_namespaces=())

View File

@ -1,23 +0,0 @@
from pydantic import BaseModel, ConfigDict
from ..models.jetstream_api_stats import JetstreamApiStats
class JetstreamStats(BaseModel):
"""Jetstream statistics."""
accounts: int = 0
api: JetstreamApiStats = {"errors": 0, "inflight": 0, "total": 0} # type: ignore
ha_assets: int = 0
memory: int = 0
reserved_memory: int = 0
reserved_store: int = 0
store: int = 0
model_config = ConfigDict(protected_namespaces=())

View File

@ -1,15 +0,0 @@
from pydantic import BaseModel, ConfigDict
class LeafNode(BaseModel):
"""Leaf node information."""
auth_timeout: int = 0
host: str = ""
port: int = 0
tls_timeout: int = 0
model_config = ConfigDict(protected_namespaces=())

View File

@ -1,13 +0,0 @@
from pydantic import BaseModel, ConfigDict
class MetaClusterInfo(BaseModel):
"""Jetstream statistics."""
cluster_size: int = 0
leader: str = ""
name: str = ""
model_config = ConfigDict(protected_namespaces=())

View File

@ -1,24 +0,0 @@
from pydantic import BaseModel, ConfigDict
from ..models.cache_metadata import CacheMetadata
from ..models.connection import Connection
from ..models.environment import Environment
from ..models.file_system_metadata import FileSystemMetadata
class Metadata(BaseModel):
"""Metadata about our currently running server.
This is mostly used for internal purposes and debugging."""
cache: CacheMetadata
environment: Environment
fs: FileSystemMetadata
git_hash: str
pubsub: Connection
model_config = ConfigDict(protected_namespaces=())

View File

@ -11,6 +11,7 @@ from ..models.camera_movement import CameraMovement
from ..models.camera_view_state import CameraViewState from ..models.camera_view_state import CameraViewState
from ..models.color import Color from ..models.color import Color
from ..models.component_transform import ComponentTransform from ..models.component_transform import ComponentTransform
from ..models.cut_strategy import CutStrategy
from ..models.cut_type import CutType from ..models.cut_type import CutType
from ..models.distance_type import DistanceType from ..models.distance_type import DistanceType
from ..models.entity_type import EntityType from ..models.entity_type import EntityType
@ -30,6 +31,7 @@ from ..models.path_segment import PathSegment
from ..models.perspective_camera_parameters import PerspectiveCameraParameters from ..models.perspective_camera_parameters import PerspectiveCameraParameters
from ..models.point2d import Point2d from ..models.point2d import Point2d
from ..models.point3d import Point3d from ..models.point3d import Point3d
from ..models.relative_to import RelativeTo
from ..models.scene_selection_type import SceneSelectionType from ..models.scene_selection_type import SceneSelectionType
from ..models.scene_tool_type import SceneToolType from ..models.scene_tool_type import SceneToolType
from ..models.transform import Transform from ..models.transform import Transform
@ -103,6 +105,8 @@ class OptionExtrude(BaseModel):
class OptionSweep(BaseModel): class OptionSweep(BaseModel):
"""Extrude the object along a path.""" """Extrude the object along a path."""
relative_to: RelativeTo = "sketch_plane" # type: ignore
sectional: bool sectional: bool
target: ModelingCmdId target: ModelingCmdId
@ -817,12 +821,18 @@ class OptionSolid3DFilletEdge(BaseModel):
cut_type: CutType = "fillet" # type: ignore cut_type: CutType = "fillet" # type: ignore
edge_id: str edge_id: Optional[str] = None
edge_ids: List[str] = []
extra_face_ids: List[str] = []
object_id: str object_id: str
radius: LengthUnit radius: LengthUnit
strategy: CutStrategy = "automatic" # type: ignore
tolerance: LengthUnit tolerance: LengthUnit
type: Literal["solid3d_fillet_edge"] = "solid3d_fillet_edge" type: Literal["solid3d_fillet_edge"] = "solid3d_fillet_edge"
@ -1486,6 +1496,18 @@ class OptionSolid3DGetExtrusionFaceInfo(BaseModel):
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())
class OptionSolid3DGetAdjacencyInfo(BaseModel):
"""Get a concise description of all of solids edges."""
edge_id: str
object_id: str
type: Literal["solid3d_get_adjacency_info"] = "solid3d_get_adjacency_info"
model_config = ConfigDict(protected_namespaces=())
class OptionSelectClear(BaseModel): class OptionSelectClear(BaseModel):
"""Clear the selection""" """Clear the selection"""
@ -1718,6 +1740,7 @@ ModelingCmd = RootModel[
OptionOrientToFace, OptionOrientToFace,
OptionViewIsometric, OptionViewIsometric,
OptionSolid3DGetExtrusionFaceInfo, OptionSolid3DGetExtrusionFaceInfo,
OptionSolid3DGetAdjacencyInfo,
OptionSelectClear, OptionSelectClear,
OptionSelectGet, OptionSelectGet,
OptionGetNumObjects, OptionGetNumObjects,

View File

@ -4,6 +4,7 @@ from pydantic import BaseModel, ConfigDict, Field, RootModel
from typing_extensions import Annotated from typing_extensions import Annotated
from ..models.add_hole_from_offset import AddHoleFromOffset from ..models.add_hole_from_offset import AddHoleFromOffset
from ..models.adjacency_info import AdjacencyInfo
from ..models.boolean_intersection import BooleanIntersection from ..models.boolean_intersection import BooleanIntersection
from ..models.boolean_subtract import BooleanSubtract from ..models.boolean_subtract import BooleanSubtract
from ..models.boolean_union import BooleanUnion from ..models.boolean_union import BooleanUnion
@ -12,6 +13,7 @@ from ..models.camera_drag_move import CameraDragMove
from ..models.camera_drag_start import CameraDragStart from ..models.camera_drag_start import CameraDragStart
from ..models.center_of_mass import CenterOfMass from ..models.center_of_mass import CenterOfMass
from ..models.close_path import ClosePath from ..models.close_path import ClosePath
from ..models.complementary_edges import ComplementaryEdges
from ..models.curve_get_control_points import CurveGetControlPoints from ..models.curve_get_control_points import CurveGetControlPoints
from ..models.curve_get_end_points import CurveGetEndPoints from ..models.curve_get_end_points import CurveGetEndPoints
from ..models.curve_get_type import CurveGetType from ..models.curve_get_type import CurveGetType
@ -31,6 +33,7 @@ from ..models.default_camera_set_view import DefaultCameraSetView
from ..models.default_camera_zoom import DefaultCameraZoom from ..models.default_camera_zoom import DefaultCameraZoom
from ..models.density import Density from ..models.density import Density
from ..models.disable_dry_run import DisableDryRun from ..models.disable_dry_run import DisableDryRun
from ..models.edge_info import EdgeInfo
from ..models.edge_lines_visible import EdgeLinesVisible from ..models.edge_lines_visible import EdgeLinesVisible
from ..models.enable_dry_run import EnableDryRun from ..models.enable_dry_run import EnableDryRun
from ..models.enable_sketch_mode import EnableSketchMode from ..models.enable_sketch_mode import EnableSketchMode
@ -58,6 +61,7 @@ from ..models.export3d import Export3d
from ..models.extend_path import ExtendPath from ..models.extend_path import ExtendPath
from ..models.extrude import Extrude from ..models.extrude import Extrude
from ..models.extrusion_face_info import ExtrusionFaceInfo from ..models.extrusion_face_info import ExtrusionFaceInfo
from ..models.face_edge_info import FaceEdgeInfo
from ..models.face_get_center import FaceGetCenter from ..models.face_get_center import FaceGetCenter
from ..models.face_get_gradient import FaceGetGradient from ..models.face_get_gradient import FaceGetGradient
from ..models.face_get_position import FaceGetPosition from ..models.face_get_position import FaceGetPosition
@ -119,6 +123,7 @@ from ..models.set_tool import SetTool
from ..models.sketch_mode_disable import SketchModeDisable from ..models.sketch_mode_disable import SketchModeDisable
from ..models.solid2d_add_hole import Solid2dAddHole from ..models.solid2d_add_hole import Solid2dAddHole
from ..models.solid3d_fillet_edge import Solid3dFilletEdge from ..models.solid3d_fillet_edge import Solid3dFilletEdge
from ..models.solid3d_get_adjacency_info import Solid3dGetAdjacencyInfo
from ..models.solid3d_get_all_edge_faces import Solid3dGetAllEdgeFaces from ..models.solid3d_get_all_edge_faces import Solid3dGetAllEdgeFaces
from ..models.solid3d_get_all_opposite_edges import Solid3dGetAllOppositeEdges from ..models.solid3d_get_all_opposite_edges import Solid3dGetAllOppositeEdges
from ..models.solid3d_get_common_edge import Solid3dGetCommonEdge from ..models.solid3d_get_common_edge import Solid3dGetCommonEdge
@ -959,6 +964,16 @@ class OptionSelectGet(BaseModel):
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())
class OptionSolid3DGetAdjacencyInfo(BaseModel):
""""""
data: Solid3dGetAdjacencyInfo
type: Literal["solid3d_get_adjacency_info"] = "solid3d_get_adjacency_info"
model_config = ConfigDict(protected_namespaces=())
class OptionSolid3DGetAllEdgeFaces(BaseModel): class OptionSolid3DGetAllEdgeFaces(BaseModel):
"""""" """"""
@ -1301,6 +1316,26 @@ class OptionEntityGetDistance(BaseModel):
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())
class OptionFaceEdgeInfo(BaseModel):
""""""
data: FaceEdgeInfo
type: Literal["face_edge_info"] = "face_edge_info"
model_config = ConfigDict(protected_namespaces=())
class OptionEdgeInfo(BaseModel):
""""""
data: EdgeInfo
type: Literal["edge_info"] = "edge_info"
model_config = ConfigDict(protected_namespaces=())
class OptionEntityClone(BaseModel): class OptionEntityClone(BaseModel):
"""""" """"""
@ -1411,6 +1446,26 @@ class OptionExtrusionFaceInfo(BaseModel):
model_config = ConfigDict(protected_namespaces=()) model_config = ConfigDict(protected_namespaces=())
class OptionComplementaryEdges(BaseModel):
""""""
data: ComplementaryEdges
type: Literal["complementary_edges"] = "complementary_edges"
model_config = ConfigDict(protected_namespaces=())
class OptionAdjacencyInfo(BaseModel):
""""""
data: AdjacencyInfo
type: Literal["adjacency_info"] = "adjacency_info"
model_config = ConfigDict(protected_namespaces=())
class OptionSetGridReferencePlane(BaseModel): class OptionSetGridReferencePlane(BaseModel):
"""""" """"""
@ -1536,6 +1591,7 @@ OkModelingCmdResponse = RootModel[
OptionAddHoleFromOffset, OptionAddHoleFromOffset,
OptionDefaultCameraFocusOn, OptionDefaultCameraFocusOn,
OptionSelectGet, OptionSelectGet,
OptionSolid3DGetAdjacencyInfo,
OptionSolid3DGetAllEdgeFaces, OptionSolid3DGetAllEdgeFaces,
OptionSolid3DGetAllOppositeEdges, OptionSolid3DGetAllOppositeEdges,
OptionSolid3DGetOppositeEdge, OptionSolid3DGetOppositeEdge,
@ -1570,6 +1626,8 @@ OkModelingCmdResponse = RootModel[
OptionCenterOfMass, OptionCenterOfMass,
OptionGetSketchModePlane, OptionGetSketchModePlane,
OptionEntityGetDistance, OptionEntityGetDistance,
OptionFaceEdgeInfo,
OptionEdgeInfo,
OptionEntityClone, OptionEntityClone,
OptionEntityLinearPatternTransform, OptionEntityLinearPatternTransform,
OptionEntityLinearPattern, OptionEntityLinearPattern,
@ -1581,6 +1639,8 @@ OkModelingCmdResponse = RootModel[
OptionEntityMakeHelixFromEdge, OptionEntityMakeHelixFromEdge,
OptionSolid3DGetExtrusionFaceInfo, OptionSolid3DGetExtrusionFaceInfo,
OptionExtrusionFaceInfo, OptionExtrusionFaceInfo,
OptionComplementaryEdges,
OptionAdjacencyInfo,
OptionSetGridReferencePlane, OptionSetGridReferencePlane,
OptionBooleanUnion, OptionBooleanUnion,
OptionBooleanIntersection, OptionBooleanIntersection,

View File

@ -0,0 +1,13 @@
from enum import Enum
class RelativeTo(str, Enum):
"""What is the given geometry relative to?""" # noqa: E501
"""# Local/relative to a position centered within the plane being sketched on """ # noqa: E501
SKETCH_PLANE = "sketch_plane"
"""# Local/relative to the trajectory curve """ # noqa: E501
TRAJECTORY_CURVE = "trajectory_curve"
def __str__(self) -> str:
return str(self.value)

View File

@ -0,0 +1,13 @@
from typing import List
from pydantic import BaseModel, ConfigDict
from ..models.adjacency_info import AdjacencyInfo
class Solid3dGetAdjacencyInfo(BaseModel):
"""Extrusion face info struct (useful for maintaining mappings between source path segment ids and extrusion faces) This includes the opposite and adjacent faces and edges."""
edges: List[AdjacencyInfo]
model_config = ConfigDict(protected_namespaces=())

View File

@ -0,0 +1,9 @@
from pydantic import BaseModel, ConfigDict
class Subscribe(BaseModel):
"""The data for subscribing a user to the newsletter."""
email: str
model_config = ConfigDict(protected_namespaces=())

View File

@ -6,12 +6,12 @@ class SupportTier(str, Enum):
"""# Community support. """ # noqa: E501 """# Community support. """ # noqa: E501
COMMUNITY = "community" COMMUNITY = "community"
"""# Standard support. """ # noqa: E501 """# Standard email support. """ # noqa: E501
STANDARD = "standard" STANDARD_EMAIL = "standard_email"
"""# Priority email support. """ # noqa: E501
PRIORITY_EMAIL = "priority_email"
"""# Premium support. """ # noqa: E501 """# Premium support. """ # noqa: E501
PREMIUM = "premium" PREMIUM = "premium"
"""# Priority support. """ # noqa: E501
PRIORITY = "priority"
def __str__(self) -> str: def __str__(self) -> str:
return str(self.value) return str(self.value)

View File

@ -16,6 +16,8 @@ class UpdateUser(BaseModel):
image: str image: str
is_onboarded: Optional[bool] = None
last_name: Optional[str] = None last_name: Optional[str] = None
phone: str = "" phone: str = ""

View File

@ -34,6 +34,8 @@ class User(BaseModel):
image: str image: str
is_onboarded: bool = False
is_service_account: bool = False is_service_account: bool = False
last_name: Optional[str] = None last_name: Optional[str] = None

View File

@ -6,10 +6,10 @@ class ZooTool(str, Enum):
"""# The modeling app. """ # noqa: E501 """# The modeling app. """ # noqa: E501
MODELING_APP = "modeling_app" MODELING_APP = "modeling_app"
"""# The Text-to-CAD UI. """ # noqa: E501
TEXT_TO_CAD = "text_to_cad"
"""# The Diff Chrome Extension. """ # noqa: E501 """# The Diff Chrome Extension. """ # noqa: E501
DIFF_CHROME_EXTENSION = "diff_chrome_extension" DIFF_CHROME_EXTENSION = "diff_chrome_extension"
"""# The Text-to-CAD UI. """ # noqa: E501
TEXT_TO_CAD = "text_to_cad"
def __str__(self) -> str: def __str__(self) -> str:
return str(self.value) return str(self.value)

372
poetry.lock generated
View File

@ -1423,19 +1423,19 @@ reference = "pypi-public"
[[package]] [[package]]
name = "pydantic" name = "pydantic"
version = "2.11.3" version = "2.11.4"
description = "Data validation using Python type hints" description = "Data validation using Python type hints"
optional = false optional = false
python-versions = ">=3.9" python-versions = ">=3.9"
groups = ["main"] groups = ["main"]
files = [ files = [
{file = "pydantic-2.11.3-py3-none-any.whl", hash = "sha256:a082753436a07f9ba1289c6ffa01cd93db3548776088aa917cc43b63f68fa60f"}, {file = "pydantic-2.11.4-py3-none-any.whl", hash = "sha256:d9615eaa9ac5a063471da949c8fc16376a84afb5024688b3ff885693506764eb"},
{file = "pydantic-2.11.3.tar.gz", hash = "sha256:7471657138c16adad9322fe3070c0116dd6c3ad8d649300e3cbdfe91f4db4ec3"}, {file = "pydantic-2.11.4.tar.gz", hash = "sha256:32738d19d63a226a52eed76645a98ee07c1f410ee41d93b4afbfa85ed8111c2d"},
] ]
[package.dependencies] [package.dependencies]
annotated-types = ">=0.6.0" annotated-types = ">=0.6.0"
pydantic-core = "2.33.1" pydantic-core = "2.33.2"
typing-extensions = ">=4.12.2" typing-extensions = ">=4.12.2"
typing-inspection = ">=0.4.0" typing-inspection = ">=0.4.0"
@ -1450,111 +1450,111 @@ reference = "pypi-public"
[[package]] [[package]]
name = "pydantic-core" name = "pydantic-core"
version = "2.33.1" version = "2.33.2"
description = "Core functionality for Pydantic validation and serialization" description = "Core functionality for Pydantic validation and serialization"
optional = false optional = false
python-versions = ">=3.9" python-versions = ">=3.9"
groups = ["main"] groups = ["main"]
files = [ files = [
{file = "pydantic_core-2.33.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3077cfdb6125cc8dab61b155fdd714663e401f0e6883f9632118ec12cf42df26"}, {file = "pydantic_core-2.33.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2b3d326aaef0c0399d9afffeb6367d5e26ddc24d351dbc9c636840ac355dc5d8"},
{file = "pydantic_core-2.33.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ffab8b2908d152e74862d276cf5017c81a2f3719f14e8e3e8d6b83fda863927"}, {file = "pydantic_core-2.33.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e5b2671f05ba48b94cb90ce55d8bdcaaedb8ba00cc5359f6810fc918713983d"},
{file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5183e4f6a2d468787243ebcd70cf4098c247e60d73fb7d68d5bc1e1beaa0c4db"}, {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0069c9acc3f3981b9ff4cdfaf088e98d83440a4c7ea1bc07460af3d4dc22e72d"},
{file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:398a38d323f37714023be1e0285765f0a27243a8b1506b7b7de87b647b517e48"}, {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d53b22f2032c42eaaf025f7c40c2e3b94568ae077a606f006d206a463bc69572"},
{file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87d3776f0001b43acebfa86f8c64019c043b55cc5a6a2e313d728b5c95b46969"}, {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0405262705a123b7ce9f0b92f123334d67b70fd1f20a9372b907ce1080c7ba02"},
{file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c566dd9c5f63d22226409553531f89de0cac55397f2ab8d97d6f06cfce6d947e"}, {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b25d91e288e2c4e0662b8038a28c6a07eaac3e196cfc4ff69de4ea3db992a1b"},
{file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0d5f3acc81452c56895e90643a625302bd6be351e7010664151cc55b7b97f89"}, {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bdfe4b3789761f3bcb4b1ddf33355a71079858958e3a552f16d5af19768fef2"},
{file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d3a07fadec2a13274a8d861d3d37c61e97a816beae717efccaa4b36dfcaadcde"}, {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:efec8db3266b76ef9607c2c4c419bdb06bf335ae433b80816089ea7585816f6a"},
{file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f99aeda58dce827f76963ee87a0ebe75e648c72ff9ba1174a253f6744f518f65"}, {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:031c57d67ca86902726e0fae2214ce6770bbe2f710dc33063187a68744a5ecac"},
{file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:902dbc832141aa0ec374f4310f1e4e7febeebc3256f00dc359a9ac3f264a45dc"}, {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:f8de619080e944347f5f20de29a975c2d815d9ddd8be9b9b7268e2e3ef68605a"},
{file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fe44d56aa0b00d66640aa84a3cbe80b7a3ccdc6f0b1ca71090696a6d4777c091"}, {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:73662edf539e72a9440129f231ed3757faab89630d291b784ca99237fb94db2b"},
{file = "pydantic_core-2.33.1-cp310-cp310-win32.whl", hash = "sha256:ed3eb16d51257c763539bde21e011092f127a2202692afaeaccb50db55a31383"}, {file = "pydantic_core-2.33.2-cp310-cp310-win32.whl", hash = "sha256:0a39979dcbb70998b0e505fb1556a1d550a0781463ce84ebf915ba293ccb7e22"},
{file = "pydantic_core-2.33.1-cp310-cp310-win_amd64.whl", hash = "sha256:694ad99a7f6718c1a498dc170ca430687a39894a60327f548e02a9c7ee4b6504"}, {file = "pydantic_core-2.33.2-cp310-cp310-win_amd64.whl", hash = "sha256:b0379a2b24882fef529ec3b4987cb5d003b9cda32256024e6fe1586ac45fc640"},
{file = "pydantic_core-2.33.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6e966fc3caaf9f1d96b349b0341c70c8d6573bf1bac7261f7b0ba88f96c56c24"}, {file = "pydantic_core-2.33.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4c5b0a576fb381edd6d27f0a85915c6daf2f8138dc5c267a57c08a62900758c7"},
{file = "pydantic_core-2.33.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bfd0adeee563d59c598ceabddf2c92eec77abcb3f4a391b19aa7366170bd9e30"}, {file = "pydantic_core-2.33.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e799c050df38a639db758c617ec771fd8fb7a5f8eaaa4b27b101f266b216a246"},
{file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91815221101ad3c6b507804178a7bb5cb7b2ead9ecd600041669c8d805ebd595"}, {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc46a01bf8d62f227d5ecee74178ffc448ff4e5197c756331f71efcc66dc980f"},
{file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9fea9c1869bb4742d174a57b4700c6dadea951df8b06de40c2fedb4f02931c2e"}, {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a144d4f717285c6d9234a66778059f33a89096dfb9b39117663fd8413d582dcc"},
{file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d20eb4861329bb2484c021b9d9a977566ab16d84000a57e28061151c62b349a"}, {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cf6373c21bc80b2e0dc88444f41ae60b2f070ed02095754eb5a01df12256de"},
{file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb935c5591573ae3201640579f30128ccc10739b45663f93c06796854405505"}, {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3dc625f4aa79713512d1976fe9f0bc99f706a9dee21dfd1810b4bbbf228d0e8a"},
{file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c964fd24e6166420d18fb53996d8c9fd6eac9bf5ae3ec3d03015be4414ce497f"}, {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b21b5549499972441da4758d662aeea93f1923f953e9cbaff14b8b9565aef"},
{file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:681d65e9011f7392db5aa002b7423cc442d6a673c635668c227c6c8d0e5a4f77"}, {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bdc25f3681f7b78572699569514036afe3c243bc3059d3942624e936ec93450e"},
{file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e100c52f7355a48413e2999bfb4e139d2977a904495441b374f3d4fb4a170961"}, {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fe5b32187cbc0c862ee201ad66c30cf218e5ed468ec8dc1cf49dec66e160cc4d"},
{file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:048831bd363490be79acdd3232f74a0e9951b11b2b4cc058aeb72b22fdc3abe1"}, {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:bc7aee6f634a6f4a95676fcb5d6559a2c2a390330098dba5e5a5f28a2e4ada30"},
{file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bdc84017d28459c00db6f918a7272a5190bec3090058334e43a76afb279eac7c"}, {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:235f45e5dbcccf6bd99f9f472858849f73d11120d76ea8707115415f8e5ebebf"},
{file = "pydantic_core-2.33.1-cp311-cp311-win32.whl", hash = "sha256:32cd11c5914d1179df70406427097c7dcde19fddf1418c787540f4b730289896"}, {file = "pydantic_core-2.33.2-cp311-cp311-win32.whl", hash = "sha256:6368900c2d3ef09b69cb0b913f9f8263b03786e5b2a387706c5afb66800efd51"},
{file = "pydantic_core-2.33.1-cp311-cp311-win_amd64.whl", hash = "sha256:2ea62419ba8c397e7da28a9170a16219d310d2cf4970dbc65c32faf20d828c83"}, {file = "pydantic_core-2.33.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e063337ef9e9820c77acc768546325ebe04ee38b08703244c1309cccc4f1bab"},
{file = "pydantic_core-2.33.1-cp311-cp311-win_arm64.whl", hash = "sha256:fc903512177361e868bc1f5b80ac8c8a6e05fcdd574a5fb5ffeac5a9982b9e89"}, {file = "pydantic_core-2.33.2-cp311-cp311-win_arm64.whl", hash = "sha256:6b99022f1d19bc32a4c2a0d544fc9a76e3be90f0b3f4af413f87d38749300e65"},
{file = "pydantic_core-2.33.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1293d7febb995e9d3ec3ea09caf1a26214eec45b0f29f6074abb004723fc1de8"}, {file = "pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc"},
{file = "pydantic_core-2.33.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:99b56acd433386c8f20be5c4000786d1e7ca0523c8eefc995d14d79c7a081498"}, {file = "pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7"},
{file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35a5ec3fa8c2fe6c53e1b2ccc2454398f95d5393ab398478f53e1afbbeb4d939"}, {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025"},
{file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b172f7b9d2f3abc0efd12e3386f7e48b576ef309544ac3a63e5e9cdd2e24585d"}, {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011"},
{file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9097b9f17f91eea659b9ec58148c0747ec354a42f7389b9d50701610d86f812e"}, {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f"},
{file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cc77ec5b7e2118b152b0d886c7514a4653bcb58c6b1d760134a9fab915f777b3"}, {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88"},
{file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3d15245b08fa4a84cefc6c9222e6f37c98111c8679fbd94aa145f9a0ae23d"}, {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1"},
{file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ef99779001d7ac2e2461d8ab55d3373fe7315caefdbecd8ced75304ae5a6fc6b"}, {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b"},
{file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:fc6bf8869e193855e8d91d91f6bf59699a5cdfaa47a404e278e776dd7f168b39"}, {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1"},
{file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:b1caa0bc2741b043db7823843e1bde8aaa58a55a58fda06083b0569f8b45693a"}, {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6"},
{file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ec259f62538e8bf364903a7d0d0239447059f9434b284f5536e8402b7dd198db"}, {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea"},
{file = "pydantic_core-2.33.1-cp312-cp312-win32.whl", hash = "sha256:e14f369c98a7c15772b9da98987f58e2b509a93235582838bd0d1d8c08b68fda"}, {file = "pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290"},
{file = "pydantic_core-2.33.1-cp312-cp312-win_amd64.whl", hash = "sha256:1c607801d85e2e123357b3893f82c97a42856192997b95b4d8325deb1cd0c5f4"}, {file = "pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2"},
{file = "pydantic_core-2.33.1-cp312-cp312-win_arm64.whl", hash = "sha256:8d13f0276806ee722e70a1c93da19748594f19ac4299c7e41237fc791d1861ea"}, {file = "pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab"},
{file = "pydantic_core-2.33.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:70af6a21237b53d1fe7b9325b20e65cbf2f0a848cf77bed492b029139701e66a"}, {file = "pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f"},
{file = "pydantic_core-2.33.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:282b3fe1bbbe5ae35224a0dbd05aed9ccabccd241e8e6b60370484234b456266"}, {file = "pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6"},
{file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b315e596282bbb5822d0c7ee9d255595bd7506d1cb20c2911a4da0b970187d3"}, {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef"},
{file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1dfae24cf9921875ca0ca6a8ecb4bb2f13c855794ed0d468d6abbec6e6dcd44a"}, {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a"},
{file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6dd8ecfde08d8bfadaea669e83c63939af76f4cf5538a72597016edfa3fad516"}, {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916"},
{file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2f593494876eae852dc98c43c6f260f45abdbfeec9e4324e31a481d948214764"}, {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a"},
{file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:948b73114f47fd7016088e5186d13faf5e1b2fe83f5e320e371f035557fd264d"}, {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d"},
{file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e11f3864eb516af21b01e25fac915a82e9ddad3bb0fb9e95a246067398b435a4"}, {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56"},
{file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:549150be302428b56fdad0c23c2741dcdb5572413776826c965619a25d9c6bde"}, {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5"},
{file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:495bc156026efafd9ef2d82372bd38afce78ddd82bf28ef5276c469e57c0c83e"}, {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e"},
{file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ec79de2a8680b1a67a07490bddf9636d5c2fab609ba8c57597e855fa5fa4dacd"}, {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162"},
{file = "pydantic_core-2.33.1-cp313-cp313-win32.whl", hash = "sha256:ee12a7be1742f81b8a65b36c6921022301d466b82d80315d215c4c691724986f"}, {file = "pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849"},
{file = "pydantic_core-2.33.1-cp313-cp313-win_amd64.whl", hash = "sha256:ede9b407e39949d2afc46385ce6bd6e11588660c26f80576c11c958e6647bc40"}, {file = "pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9"},
{file = "pydantic_core-2.33.1-cp313-cp313-win_arm64.whl", hash = "sha256:aa687a23d4b7871a00e03ca96a09cad0f28f443690d300500603bd0adba4b523"}, {file = "pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9"},
{file = "pydantic_core-2.33.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:401d7b76e1000d0dd5538e6381d28febdcacb097c8d340dde7d7fc6e13e9f95d"}, {file = "pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac"},
{file = "pydantic_core-2.33.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7aeb055a42d734c0255c9e489ac67e75397d59c6fbe60d155851e9782f276a9c"}, {file = "pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5"},
{file = "pydantic_core-2.33.1-cp313-cp313t-win_amd64.whl", hash = "sha256:338ea9b73e6e109f15ab439e62cb3b78aa752c7fd9536794112e14bee02c8d18"}, {file = "pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9"},
{file = "pydantic_core-2.33.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5ab77f45d33d264de66e1884fca158bc920cb5e27fd0764a72f72f5756ae8bdb"}, {file = "pydantic_core-2.33.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a2b911a5b90e0374d03813674bf0a5fbbb7741570dcd4b4e85a2e48d17def29d"},
{file = "pydantic_core-2.33.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e7aaba1b4b03aaea7bb59e1b5856d734be011d3e6d98f5bcaa98cb30f375f2ad"}, {file = "pydantic_core-2.33.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6fa6dfc3e4d1f734a34710f391ae822e0a8eb8559a85c6979e14e65ee6ba2954"},
{file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fb66263e9ba8fea2aa85e1e5578980d127fb37d7f2e292773e7bc3a38fb0c7b"}, {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c54c939ee22dc8e2d545da79fc5381f1c020d6d3141d3bd747eab59164dc89fb"},
{file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f2648b9262607a7fb41d782cc263b48032ff7a03a835581abbf7a3bec62bcf5"}, {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53a57d2ed685940a504248187d5685e49eb5eef0f696853647bf37c418c538f7"},
{file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:723c5630c4259400818b4ad096735a829074601805d07f8cafc366d95786d331"}, {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09fb9dd6571aacd023fe6aaca316bd01cf60ab27240d7eb39ebd66a3a15293b4"},
{file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d100e3ae783d2167782391e0c1c7a20a31f55f8015f3293647544df3f9c67824"}, {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0e6116757f7959a712db11f3e9c0a99ade00a5bbedae83cb801985aa154f071b"},
{file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177d50460bc976a0369920b6c744d927b0ecb8606fb56858ff542560251b19e5"}, {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d55ab81c57b8ff8548c3e4947f119551253f4e3787a7bbc0b6b3ca47498a9d3"},
{file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a3edde68d1a1f9af1273b2fe798997b33f90308fb6d44d8550c89fc6a3647cf6"}, {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c20c462aa4434b33a2661701b861604913f912254e441ab8d78d30485736115a"},
{file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a62c3c3ef6a7e2c45f7853b10b5bc4ddefd6ee3cd31024754a1a5842da7d598d"}, {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:44857c3227d3fb5e753d5fe4a3420d6376fa594b07b621e220cd93703fe21782"},
{file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:c91dbb0ab683fa0cd64a6e81907c8ff41d6497c346890e26b23de7ee55353f96"}, {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:eb9b459ca4df0e5c87deb59d37377461a538852765293f9e6ee834f0435a93b9"},
{file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f466e8bf0a62dc43e068c12166281c2eca72121dd2adc1040f3aa1e21ef8599"}, {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9fcd347d2cc5c23b06de6d3b7b8275be558a0c90549495c699e379a80bf8379e"},
{file = "pydantic_core-2.33.1-cp39-cp39-win32.whl", hash = "sha256:ab0277cedb698749caada82e5d099dc9fed3f906a30d4c382d1a21725777a1e5"}, {file = "pydantic_core-2.33.2-cp39-cp39-win32.whl", hash = "sha256:83aa99b1285bc8f038941ddf598501a86f1536789740991d7d8756e34f1e74d9"},
{file = "pydantic_core-2.33.1-cp39-cp39-win_amd64.whl", hash = "sha256:5773da0ee2d17136b1f1c6fbde543398d452a6ad2a7b54ea1033e2daa739b8d2"}, {file = "pydantic_core-2.33.2-cp39-cp39-win_amd64.whl", hash = "sha256:f481959862f57f29601ccced557cc2e817bce7533ab8e01a797a48b49c9692b3"},
{file = "pydantic_core-2.33.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c834f54f8f4640fd7e4b193f80eb25a0602bba9e19b3cd2fc7ffe8199f5ae02"}, {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c4aa4e82353f65e548c476b37e64189783aa5384903bfea4f41580f255fddfa"},
{file = "pydantic_core-2.33.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:049e0de24cf23766f12cc5cc71d8abc07d4a9deb9061b334b62093dedc7cb068"}, {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d946c8bf0d5c24bf4fe333af284c59a19358aa3ec18cb3dc4370080da1e8ad29"},
{file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a28239037b3d6f16916a4c831a5a0eadf856bdd6d2e92c10a0da3a59eadcf3e"}, {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87b31b6846e361ef83fedb187bb5b4372d0da3f7e28d85415efa92d6125d6e6d"},
{file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d3da303ab5f378a268fa7d45f37d7d85c3ec19769f28d2cc0c61826a8de21fe"}, {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa9d91b338f2df0508606f7009fde642391425189bba6d8c653afd80fd6bb64e"},
{file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:25626fb37b3c543818c14821afe0fd3830bc327a43953bc88db924b68c5723f1"}, {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2058a32994f1fde4ca0480ab9d1e75a0e8c87c22b53a3ae66554f9af78f2fe8c"},
{file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3ab2d36e20fbfcce8f02d73c33a8a7362980cff717926bbae030b93ae46b56c7"}, {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:0e03262ab796d986f978f79c943fc5f620381be7287148b8010b4097f79a39ec"},
{file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:2f9284e11c751b003fd4215ad92d325d92c9cb19ee6729ebd87e3250072cdcde"}, {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1a8695a8d00c73e50bff9dfda4d540b7dee29ff9b8053e38380426a85ef10052"},
{file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:048c01eee07d37cbd066fc512b9d8b5ea88ceeb4e629ab94b3e56965ad655add"}, {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:fa754d1850735a0b0e03bcffd9d4b4343eb417e47196e4485d9cca326073a42c"},
{file = "pydantic_core-2.33.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5ccd429694cf26af7997595d627dd2637e7932214486f55b8a357edaac9dae8c"}, {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a11c8d26a50bfab49002947d3d237abe4d9e4b5bdc8846a63537b6488e197808"},
{file = "pydantic_core-2.33.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3a371dc00282c4b84246509a5ddc808e61b9864aa1eae9ecc92bb1268b82db4a"}, {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:dd14041875d09cc0f9308e37a6f8b65f5585cf2598a53aa0123df8b129d481f8"},
{file = "pydantic_core-2.33.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:f59295ecc75a1788af8ba92f2e8c6eeaa5a94c22fc4d151e8d9638814f85c8fc"}, {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d87c561733f66531dced0da6e864f44ebf89a8fba55f31407b00c2f7f9449593"},
{file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08530b8ac922003033f399128505f513e30ca770527cc8bbacf75a84fcc2c74b"}, {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f82865531efd18d6e07a04a17331af02cb7a651583c418df8266f17a63c6612"},
{file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bae370459da6a5466978c0eacf90690cb57ec9d533f8e63e564ef3822bfa04fe"}, {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bfb5112df54209d820d7bf9317c7a6c9025ea52e49f46b6a2060104bba37de7"},
{file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e3de2777e3b9f4d603112f78006f4ae0acb936e95f06da6cb1a45fbad6bdb4b5"}, {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64632ff9d614e5eecfb495796ad51b0ed98c453e447a76bcbeeb69615079fc7e"},
{file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3a64e81e8cba118e108d7126362ea30e021291b7805d47e4896e52c791be2761"}, {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f889f7a40498cc077332c7ab6b4608d296d852182211787d4f3ee377aaae66e8"},
{file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:52928d8c1b6bda03cc6d811e8923dffc87a2d3c8b3bfd2ce16471c7147a24850"}, {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:de4b83bb311557e439b9e186f733f6c645b9417c84e2eb8203f3f820a4b988bf"},
{file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:1b30d92c9412beb5ac6b10a3eb7ef92ccb14e3f2a8d7732e2d739f58b3aa7544"}, {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:82f68293f055f51b51ea42fafc74b6aad03e70e191799430b90c13d643059ebb"},
{file = "pydantic_core-2.33.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f995719707e0e29f0f41a8aa3bcea6e761a36c9136104d3189eafb83f5cec5e5"}, {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:329467cecfb529c925cf2bbd4d60d2c509bc2fb52a20c1045bf09bb70971a9c1"},
{file = "pydantic_core-2.33.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7edbc454a29fc6aeae1e1eecba4f07b63b8d76e76a748532233c4c167b4cb9ea"}, {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:87acbfcf8e90ca885206e98359d7dca4bcbb35abdc0ff66672a293e1d7a19101"},
{file = "pydantic_core-2.33.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ad05b683963f69a1d5d2c2bdab1274a31221ca737dbbceaa32bcb67359453cdd"}, {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7f92c15cd1e97d4b12acd1cc9004fa092578acfa57b67ad5e43a197175d01a64"},
{file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df6a94bf9452c6da9b5d76ed229a5683d0306ccb91cca8e1eea883189780d568"}, {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3f26877a748dc4251cfcfda9dfb5f13fcb034f5308388066bcfe9031b63ae7d"},
{file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7965c13b3967909a09ecc91f21d09cfc4576bf78140b988904e94f130f188396"}, {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac89aea9af8cd672fa7b510e7b8c33b0bba9a43186680550ccf23020f32d535"},
{file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3f1fdb790440a34f6ecf7679e1863b825cb5ffde858a9197f851168ed08371e5"}, {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:970919794d126ba8645f3837ab6046fb4e72bbc057b3709144066204c19a455d"},
{file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:5277aec8d879f8d05168fdd17ae811dd313b8ff894aeeaf7cd34ad28b4d77e33"}, {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3eb3fe62804e8f859c49ed20a8451342de53ed764150cb14ca71357c765dc2a6"},
{file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8ab581d3530611897d863d1a649fb0644b860286b4718db919bfd51ece41f10b"}, {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:3abcd9392a36025e3bd55f9bd38d908bd17962cc49bc6da8e7e96285336e2bca"},
{file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0483847fa9ad5e3412265c1bd72aad35235512d9ce9d27d81a56d935ef489672"}, {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:3a1c81334778f9e3af2f8aeb7a960736e5cab1dfebfb26aabca09afd2906c039"},
{file = "pydantic_core-2.33.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:de9e06abe3cc5ec6a2d5f75bc99b0bdca4f5c719a5b34026f8c57efbdecd2ee3"}, {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2807668ba86cb38c6817ad9bc66215ab8584d1d304030ce4f0887336f28a5e27"},
{file = "pydantic_core-2.33.1.tar.gz", hash = "sha256:bcc9c6fdb0ced789245b02b7d6603e17d1563064ddcfc36f046b61c0c05dd9df"}, {file = "pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc"},
] ]
[package.dependencies] [package.dependencies]
@ -1635,69 +1635,69 @@ reference = "pypi-public"
[[package]] [[package]]
name = "pymongo" name = "pymongo"
version = "4.12.0" version = "4.12.1"
description = "Python driver for MongoDB <http://www.mongodb.org>" description = "Python driver for MongoDB <http://www.mongodb.org>"
optional = false optional = false
python-versions = ">=3.9" python-versions = ">=3.9"
groups = ["main"] groups = ["main"]
files = [ files = [
{file = "pymongo-4.12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e23d9b5e8d2dfc3ac0540966e93008e471345ec9a2797b77be551e64b70fc8ee"}, {file = "pymongo-4.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1897c64a11e19aae4e85126441f319c3bf3fb7b60d122f51528cab2b95caaad3"},
{file = "pymongo-4.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ecf325f31bf8be70ec5cab50b45a8e09acf3952d693215acac965cecaeb6b58d"}, {file = "pymongo-4.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0ba42b4f2046595f64c492ef73c92ac78c502db59024c9be0113d0a33ed60c15"},
{file = "pymongo-4.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:adf638404fb96ddf0b2ec07df7279ea709d1e05150e527cc98b23fd0db8c3fec"}, {file = "pymongo-4.12.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:777800dc731ea7713635a44dcfb93d88eb2be4b31883feb3238afce5d32ef6d5"},
{file = "pymongo-4.12.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6bee9178d6b358a4cee1a13179779810fec5a5406cf0db41fdf0c065d90029e2"}, {file = "pymongo-4.12.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:670bb6c9163f2623d8e3c42ff029dc89d2e8bf41feeeea4c11a8a21f9a9b0df7"},
{file = "pymongo-4.12.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:77f618a29c02bcf824915144957e257f7d7329e8ffc1b804fd80a4e2e7b3b2c8"}, {file = "pymongo-4.12.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c9d447042433b3574df8d7d1b3bb9b1f1277d019534b29a39fd92670ab72d4e"},
{file = "pymongo-4.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caeff0cd9e78dd6d7ebb961bdbdf68b2ed63432157e7115d669a21fb534f656f"}, {file = "pymongo-4.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0c8dbb6a10753cbbbcb3e8ab723f87cb520de855e667a32dd2889e73323e82f"},
{file = "pymongo-4.12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2fb1f0c08929dc48f147010a679a0ef2b7561fcb616a793fa47ab8b10677334"}, {file = "pymongo-4.12.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0bd0cc14726baa07081abe8ecda309a1049992b84b37d3c50c5fbd7f935b8925"},
{file = "pymongo-4.12.0-cp310-cp310-win32.whl", hash = "sha256:5daad50a6ac1cbfe404dd68e9a39d6bb06c6891cb3fe73a5bdc9de2033278d15"}, {file = "pymongo-4.12.1-cp310-cp310-win32.whl", hash = "sha256:e75c42dedc5f59a985976f8bc2e2f0b90c44ce40fa9a2e99b147ec7e64c735a2"},
{file = "pymongo-4.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:6ebd8096dadd5e6c067ac0afc98079bd58750020cf03fce97c67565352b38bff"}, {file = "pymongo-4.12.1-cp310-cp310-win_amd64.whl", hash = "sha256:13953f8bbdbfee00530ac9f5c09a2474b81cd76648925012b5cfd2727293bd17"},
{file = "pymongo-4.12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8f9fa8dbe724306f7126497aa8adf1975203117143de2caf4edacb18aa83270f"}, {file = "pymongo-4.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:72b45f7e72b2db4cd7abd40c38c57ed4105d7be0d4dce85a6b77a730e8a613f7"},
{file = "pymongo-4.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b751458ccd52fc84970ae8d4d354a781bcaac244ad957c635ff70b067f160d41"}, {file = "pymongo-4.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0f3104bd97642f508f70a83af256b9d88e9a7319e8048c27f1c8ca6572ad7b7f"},
{file = "pymongo-4.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5b5e30587e532906bd6dd1cadab374cfa72c211419e56ebe125ee1fb01bd110"}, {file = "pymongo-4.12.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:730a19d96ef902ee8d8f9e84738142d355096becb677ec82489dc9ad8e54d8e9"},
{file = "pymongo-4.12.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c2d527443011cc1ff92752f0152e683184d30b1b95f758809efefdd6246dd3f"}, {file = "pymongo-4.12.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:40dd2b771387e3ac297399b7b4d9a4bfffbaabba6f17c79996e8462cde3e7c30"},
{file = "pymongo-4.12.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bb76c604e834e2dbb2e3675b298e0ff01e56cd3c36ccc7d01fafbc326be0d48a"}, {file = "pymongo-4.12.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5e5968da22f5534fc678dad58d3e9f7305bf53abc94968c800335b1f511ab8b"},
{file = "pymongo-4.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ee07a2eb48c583354ba13b9c0b9f904f22f0a7ab349e37852da3a85f3f5bf2a"}, {file = "pymongo-4.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc5fad32274a1de9dfe13d06da169cf2a405a98f049595aafda13af02921853e"},
{file = "pymongo-4.12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2af7665a9f566a696902e5d396a4bc0c096cc7a03d661aa67f64943488977ed5"}, {file = "pymongo-4.12.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:808168f5f4398c0057d15f21b1453de323157447915179c7afedf4334d2a1815"},
{file = "pymongo-4.12.0-cp311-cp311-win32.whl", hash = "sha256:2eb9179252fa6a6ad98e912e821e9602e02a54a720eabc482e0394c5efcbbd09"}, {file = "pymongo-4.12.1-cp311-cp311-win32.whl", hash = "sha256:ee69dba3e023e0fa1b547b4f7a41182618f2e612df09ff954bba32de0111a596"},
{file = "pymongo-4.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:8aed3e58a6714aaed324e56723e9f510032ad0f7756430f4484269f4e33e32f5"}, {file = "pymongo-4.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:40e2812e5b546f7ceef4abf82c31d4790d9878f2a0d43a67a2645de3eb06bdca"},
{file = "pymongo-4.12.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7bd4358da17705c37f29594b799c9ca65b4b1eb17cb0c6696c591809cdd973f2"}, {file = "pymongo-4.12.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a7b771aa2f0854ddf7861e8ce2365f29df9159393543d047e43d8475bc4b8813"},
{file = "pymongo-4.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14aade4429997c3060e0df945344fc3bf7fb517253a2445017d9c86b100f4dbc"}, {file = "pymongo-4.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:34fd8681b6fa6e1025dd1000004f6b81cbf1961f145b8c58bd15e3957976068d"},
{file = "pymongo-4.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f8222022357cbba9c024535816200abfd74fb0b7356afc13ce1533515b625af"}, {file = "pymongo-4.12.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981e19b8f1040247dee5f7879e45f640f7e21a4d87eabb19283ce5a2927dd2e7"},
{file = "pymongo-4.12.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77455951881e438b6ffdf449b31c3af4b3ed6c6af208de3b9a719d5d444785b3"}, {file = "pymongo-4.12.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9a487dc1fe92736987a156325d3d9c66cbde6eac658b2875f5f222b6d82edca"},
{file = "pymongo-4.12.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c906365c12375f3b4eb03b8dda71711cfe0670272d98a47c15eb8d311b03351d"}, {file = "pymongo-4.12.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1525051c13984365c4a9b88ee2d63009fae277921bc89a0d323b52c51f91cbac"},
{file = "pymongo-4.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba90eb88e604778b767d82ff5165de4ac5135b93c32a6931c77ee17bba6a8daf"}, {file = "pymongo-4.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ad689e0e4f364809084f9e5888b2dcd6f0431b682a1c68f3fdf241e20e14475"},
{file = "pymongo-4.12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e5cd2c837a2ee21e6f0a2da44eba44be1718b7db0893c0148caa309b0388790"}, {file = "pymongo-4.12.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8f9b18abca210c2917041ab2a380c12f6ddd2810844f1d64afb39caf8a15425e"},
{file = "pymongo-4.12.0-cp312-cp312-win32.whl", hash = "sha256:e1015c5689b3013c69802d80ef661c8c094d83d0342a68d45ced52c53f412f29"}, {file = "pymongo-4.12.1-cp312-cp312-win32.whl", hash = "sha256:d9d90fec041c6d695a639c26ca83577aa74383f5e3744fd7931537b208d5a1b5"},
{file = "pymongo-4.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ab1a1b82b28d9ddeff93351f2e9e803ca78258e447c13c500294780eb2665a03"}, {file = "pymongo-4.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:d004b13e4f03d73a3ad38505ba84b61a2c8ba0a304f02fe1b27bfc986c244192"},
{file = "pymongo-4.12.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5c44f44b48bdf793b30a83232b5abad2cda1d7c7dc3bbe9e4a952a8b3b4faad1"}, {file = "pymongo-4.12.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:90de2b060d69c22658ada162a5380a0f88cb8c0149023241b9e379732bd36152"},
{file = "pymongo-4.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:df72eeef20c9246eeda9adfa90b4a0e3208be5b840850e22da599f95fc8048f6"}, {file = "pymongo-4.12.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:edf4e05331ac875d3b27b4654b74d81e44607af4aa7d6bcd4a31801ca164e6fd"},
{file = "pymongo-4.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e5328254fbe0aacdb9191ee76e5df1fa36778770f1fe8b99d8d9f51ce12a8c7"}, {file = "pymongo-4.12.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa7a817c9afb7b8775d98c469ddb3fe9c17daf53225394c1a74893cf45d3ade9"},
{file = "pymongo-4.12.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc86d4a127a43d27bef9be4f1e501847ecf8e0d530c58c34967dcbf3bf1a9fff"}, {file = "pymongo-4.12.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9d142ca531694e9324b3c9ba86c0e905c5f857599c4018a386c4dc02ca490fa"},
{file = "pymongo-4.12.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32863d54beae2b7d60bd33659c56e6b7a81e7d9082e1cd7cce62e8451a164ab8"}, {file = "pymongo-4.12.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5d4c0461f5cd84d9fe87d5a84b1bc16371c4dd64d56dcfe5e69b15c0545a5ac"},
{file = "pymongo-4.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0be2192be8e6aebe5b0500a6e69d914cecea7567e895edee2d3069c0a2b171b7"}, {file = "pymongo-4.12.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43afd2f39182731ac9fb81bbc9439d539e4bd2eda72cdee829d2fa906a1c4d37"},
{file = "pymongo-4.12.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab5a3c39bb6a84bf38149a4f9db51e55686827236af96cab17c65f8346b3c1e3"}, {file = "pymongo-4.12.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:827ac668c003da7b175b8e5f521850e2c182b4638a3dec96d97f0866d5508a1e"},
{file = "pymongo-4.12.0-cp313-cp313-win32.whl", hash = "sha256:a0bc2a32763b6fb76ce701b270d88a3939994d76e64088822e7dc2a8d6a69926"}, {file = "pymongo-4.12.1-cp313-cp313-win32.whl", hash = "sha256:7c2269b37f034124a245eaeb34ce031cee64610437bd597d4a883304babda3cd"},
{file = "pymongo-4.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:926bc4792396b6c4da40fd7874921564e69b75c2028833318271bed808f4493a"}, {file = "pymongo-4.12.1-cp313-cp313-win_amd64.whl", hash = "sha256:3b28ecd1305b89089be14f137ffbdf98a3b9f5c8dbbb2be4dec084f2813fbd5f"},
{file = "pymongo-4.12.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:992549d1022ea2d8e7f93ece8191ab1f84dfe157dcfa043b259d9743ee3188ad"}, {file = "pymongo-4.12.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f27b22a8215caff68bdf46b5b61ccd843a68334f2aa4658e8d5ecb5d3fbebb3b"},
{file = "pymongo-4.12.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6d6cb42c18ce1eee3577a6604a53d5e4e2e8c24b05e00c0749e5bc9220977431"}, {file = "pymongo-4.12.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5e9d23a3c290cf7409515466a7f11069b70e38ea2b786bbd7437bdc766c9e176"},
{file = "pymongo-4.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ff17fcb5184f9511cf49b8a62f8f038555c3a07406f4944a8afd614a3d23bbfa"}, {file = "pymongo-4.12.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efeb430f7ca8649a6544a50caefead343d1fd096d04b6b6a002c6ce81148a85c"},
{file = "pymongo-4.12.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00c918c5f17360ea02da4ef268f2573967ef453c5ccec0caac2545be95ef478e"}, {file = "pymongo-4.12.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a34e4a08bbcff56fdee86846afbc9ce751de95706ca189463e01bf5de3dd9927"},
{file = "pymongo-4.12.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b65cc36d8ef2dfb567a00a81ad16b7ef1989d3092367aff24fab027be7168cc8"}, {file = "pymongo-4.12.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b063344e0282537f05dbb11147591cbf58fc09211e24fc374749e343f880910a"},
{file = "pymongo-4.12.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:805b18b615ccf23b6fb2ca815f5580085b53acb8700c017bd873e781e90caf89"}, {file = "pymongo-4.12.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3f7941e01b3e5d4bfb3b4711425e809df8c471b92d1da8d6fab92c7e334a4cb"},
{file = "pymongo-4.12.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5f0654f4eab9c72ddb912b0c393dcb6d66936d9e2141f057bb272477bbc8cf8e"}, {file = "pymongo-4.12.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b41235014031739f32be37ff13992f51091dae9a5189d3bcc22a5bf81fd90dae"},
{file = "pymongo-4.12.0-cp313-cp313t-win32.whl", hash = "sha256:2e39fecf539d77a3a4fbd332d5e3f375a1ec9a7b2401d6f27aaf8af5a1fd23e2"}, {file = "pymongo-4.12.1-cp313-cp313t-win32.whl", hash = "sha256:9a1f07fe83a8a34651257179bd38d0f87bd9d90577fcca23364145c5e8ba1bc0"},
{file = "pymongo-4.12.0-cp313-cp313t-win_amd64.whl", hash = "sha256:053e43722c0d76e5798abeb04f3a3ca69f8bdd10c3b56c6705fd72bf815dcbb8"}, {file = "pymongo-4.12.1-cp313-cp313t-win_amd64.whl", hash = "sha256:46d86cf91ee9609d0713242a1d99fa9e9c60b4315e1a067b9a9e769bedae629d"},
{file = "pymongo-4.12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:342dd65e89f6978ac56cb8e1692e72a6de00e6f9f212ff68464e9b54dbc4c431"}, {file = "pymongo-4.12.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0517c363f31f770cfa450df7d52a73340168bde71fac423b2b3eea0336468f3e"},
{file = "pymongo-4.12.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dfd34fe5ce934c359def945a23925f42735e384423db6fd847bc9205661644d4"}, {file = "pymongo-4.12.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:07c6e9ade249fa811fa344467889f61221eb533b8465de7e1c467cca03b38a1e"},
{file = "pymongo-4.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e576d4bf8e27cdcdbe17a2e78a3e96e16ea443c3ac46e722b3a814b0c9ce7ab5"}, {file = "pymongo-4.12.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e95211e335a2a762fd9dfb084579e6ebaec59cd2c6848d7a898af3342ef63f06"},
{file = "pymongo-4.12.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e78419a8f23705a44d01901c14f830c5d38fe2b1d8853bc836b8d04117207a8"}, {file = "pymongo-4.12.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4285d7ffedc7adc0531949e66d5f884801c522e7a30cdfcf80e2727b9dbee8c"},
{file = "pymongo-4.12.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d89af24652dc43c109cb2839ec6ea0e60b9d19301b05d3f8fa1ebdba9e95a1ee"}, {file = "pymongo-4.12.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:71edcd51265e69d73d10f032164983701d3efa768c946a2736ec4d40793bf63e"},
{file = "pymongo-4.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d83fff3c453f55c57f6a9cccabe2578ca97d7a6378006242f56fc7f1c34f1361"}, {file = "pymongo-4.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3e90b2114e876c0a2864f729f32b025114920c6f00898a6d5ef41dba98d8690"},
{file = "pymongo-4.12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:29709285691102a2c678e65c3bcf6fd4c96e21d6753e6ec8f7ebe96e4c27ba98"}, {file = "pymongo-4.12.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5db1a20d0223af2bbbbfd5f8b7f1ff0f08628c245096bad12ddeee86db226925"},
{file = "pymongo-4.12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fb983976e606d970d08af6c74de2e462a0e795e47360df67fe1fd85146a813a2"}, {file = "pymongo-4.12.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:457eed26aa307c8d92edaf9be2ba9551b54af72bc7cd555706644374f155331c"},
{file = "pymongo-4.12.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:9052cf74602b368e8cc042e5bee181ff9179dd473d05319c6bdaf602c76bb173"}, {file = "pymongo-4.12.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:27806c4310203a19af868f4aedd09615ffa613d4e13570954df10193b29f7fd3"},
{file = "pymongo-4.12.0-cp39-cp39-win32.whl", hash = "sha256:11846ba98179cb5bc9325748877501f558db30437cd2db2ba7643d728c16cbfa"}, {file = "pymongo-4.12.1-cp39-cp39-win32.whl", hash = "sha256:3dc3c26f52214119b86decdd8ef4595610cfbff67401f47be14eb433afb1d838"},
{file = "pymongo-4.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:e22d581aed962822dfeee601251101957f53688101af0c0dfc7180f55285c681"}, {file = "pymongo-4.12.1-cp39-cp39-win_amd64.whl", hash = "sha256:7af466b5dc2c6dcdce78677b4d60886c48c70810c3ebe355f210a0f9ededb156"},
{file = "pymongo-4.12.0.tar.gz", hash = "sha256:d9f74a5cf3fccdb72211e33e07a6c05ac09cd0d7c99d21db5c2473fcfdd03152"}, {file = "pymongo-4.12.1.tar.gz", hash = "sha256:8921bac7f98cccb593d76c4d8eaa1447e7d537ba9a2a202973e92372a05bd1eb"},
] ]
[package.dependencies] [package.dependencies]
@ -2213,30 +2213,30 @@ reference = "pypi-public"
[[package]] [[package]]
name = "ruff" name = "ruff"
version = "0.11.7" version = "0.11.10"
description = "An extremely fast Python linter and code formatter, written in Rust." description = "An extremely fast Python linter and code formatter, written in Rust."
optional = false optional = false
python-versions = ">=3.7" python-versions = ">=3.7"
groups = ["dev"] groups = ["dev"]
files = [ files = [
{file = "ruff-0.11.7-py3-none-linux_armv6l.whl", hash = "sha256:d29e909d9a8d02f928d72ab7837b5cbc450a5bdf578ab9ebee3263d0a525091c"}, {file = "ruff-0.11.10-py3-none-linux_armv6l.whl", hash = "sha256:859a7bfa7bc8888abbea31ef8a2b411714e6a80f0d173c2a82f9041ed6b50f58"},
{file = "ruff-0.11.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:dd1fb86b168ae349fb01dd497d83537b2c5541fe0626e70c786427dd8363aaee"}, {file = "ruff-0.11.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:968220a57e09ea5e4fd48ed1c646419961a0570727c7e069842edd018ee8afed"},
{file = "ruff-0.11.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d3d7d2e140a6fbbc09033bce65bd7ea29d6a0adeb90b8430262fbacd58c38ada"}, {file = "ruff-0.11.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:1067245bad978e7aa7b22f67113ecc6eb241dca0d9b696144256c3a879663bca"},
{file = "ruff-0.11.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4809df77de390a1c2077d9b7945d82f44b95d19ceccf0c287c56e4dc9b91ca64"}, {file = "ruff-0.11.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4854fd09c7aed5b1590e996a81aeff0c9ff51378b084eb5a0b9cd9518e6cff2"},
{file = "ruff-0.11.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f3a0c2e169e6b545f8e2dba185eabbd9db4f08880032e75aa0e285a6d3f48201"}, {file = "ruff-0.11.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8b4564e9f99168c0f9195a0fd5fa5928004b33b377137f978055e40008a082c5"},
{file = "ruff-0.11.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49b888200a320dd96a68e86736cf531d6afba03e4f6cf098401406a257fcf3d6"}, {file = "ruff-0.11.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b6a9cc5b62c03cc1fea0044ed8576379dbaf751d5503d718c973d5418483641"},
{file = "ruff-0.11.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:2b19cdb9cf7dae00d5ee2e7c013540cdc3b31c4f281f1dacb5a799d610e90db4"}, {file = "ruff-0.11.10-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:607ecbb6f03e44c9e0a93aedacb17b4eb4f3563d00e8b474298a201622677947"},
{file = "ruff-0.11.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64e0ee994c9e326b43539d133a36a455dbaab477bc84fe7bfbd528abe2f05c1e"}, {file = "ruff-0.11.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7b3a522fa389402cd2137df9ddefe848f727250535c70dafa840badffb56b7a4"},
{file = "ruff-0.11.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bad82052311479a5865f52c76ecee5d468a58ba44fb23ee15079f17dd4c8fd63"}, {file = "ruff-0.11.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2f071b0deed7e9245d5820dac235cbdd4ef99d7b12ff04c330a241ad3534319f"},
{file = "ruff-0.11.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7940665e74e7b65d427b82bffc1e46710ec7f30d58b4b2d5016e3f0321436502"}, {file = "ruff-0.11.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a60e3a0a617eafba1f2e4186d827759d65348fa53708ca547e384db28406a0b"},
{file = "ruff-0.11.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:169027e31c52c0e36c44ae9a9c7db35e505fee0b39f8d9fca7274a6305295a92"}, {file = "ruff-0.11.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:da8ec977eaa4b7bf75470fb575bea2cb41a0e07c7ea9d5a0a97d13dbca697bf2"},
{file = "ruff-0.11.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:305b93f9798aee582e91e34437810439acb28b5fc1fee6b8205c78c806845a94"}, {file = "ruff-0.11.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:ddf8967e08227d1bd95cc0851ef80d2ad9c7c0c5aab1eba31db49cf0a7b99523"},
{file = "ruff-0.11.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a681db041ef55550c371f9cd52a3cf17a0da4c75d6bd691092dfc38170ebc4b6"}, {file = "ruff-0.11.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5a94acf798a82db188f6f36575d80609072b032105d114b0f98661e1679c9125"},
{file = "ruff-0.11.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:07f1496ad00a4a139f4de220b0c97da6d4c85e0e4aa9b2624167b7d4d44fd6b6"}, {file = "ruff-0.11.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3afead355f1d16d95630df28d4ba17fb2cb9c8dfac8d21ced14984121f639bad"},
{file = "ruff-0.11.7-py3-none-win32.whl", hash = "sha256:f25dfb853ad217e6e5f1924ae8a5b3f6709051a13e9dad18690de6c8ff299e26"}, {file = "ruff-0.11.10-py3-none-win32.whl", hash = "sha256:dc061a98d32a97211af7e7f3fa1d4ca2fcf919fb96c28f39551f35fc55bdbc19"},
{file = "ruff-0.11.7-py3-none-win_amd64.whl", hash = "sha256:0a931d85959ceb77e92aea4bbedfded0a31534ce191252721128f77e5ae1f98a"}, {file = "ruff-0.11.10-py3-none-win_amd64.whl", hash = "sha256:5cc725fbb4d25b0f185cb42df07ab6b76c4489b4bfb740a175f3a59c70e8a224"},
{file = "ruff-0.11.7-py3-none-win_arm64.whl", hash = "sha256:778c1e5d6f9e91034142dfd06110534ca13220bfaad5c3735f6cb844654f6177"}, {file = "ruff-0.11.10-py3-none-win_arm64.whl", hash = "sha256:ef69637b35fb8b210743926778d0e45e1bffa850a7c61e428c6b971549b5f5d1"},
{file = "ruff-0.11.7.tar.gz", hash = "sha256:655089ad3224070736dc32844fde783454f8558e71f501cb207485fe4eee23d4"}, {file = "ruff-0.11.10.tar.gz", hash = "sha256:d522fb204b4959909ecac47da02830daec102eeb100fb50ea9554818d47a5fa6"},
] ]
[package.source] [package.source]
@ -2770,14 +2770,14 @@ reference = "pypi-public"
[[package]] [[package]]
name = "types-python-dateutil" name = "types-python-dateutil"
version = "2.9.0.20241206" version = "2.9.0.20250516"
description = "Typing stubs for python-dateutil" description = "Typing stubs for python-dateutil"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.9"
groups = ["dev"] groups = ["dev"]
files = [ files = [
{file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, {file = "types_python_dateutil-2.9.0.20250516-py3-none-any.whl", hash = "sha256:2b2b3f57f9c6a61fba26a9c0ffb9ea5681c9b83e69cd897c6b5f668d9c0cab93"},
{file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, {file = "types_python_dateutil-2.9.0.20250516.tar.gz", hash = "sha256:13e80d6c9c47df23ad773d54b2826bd52dbbb41be87c3f339381c1700ad21ee5"},
] ]
[package.source] [package.source]
@ -2996,4 +2996,4 @@ reference = "pypi-public"
[metadata] [metadata]
lock-version = "2.1" lock-version = "2.1"
python-versions = ">=3.9,<4.0" python-versions = ">=3.9,<4.0"
content-hash = "fc864319d88bb0b0c4f879e656cd483a8cacd1495dbe93d8f1604926241e7da5" content-hash = "679e9384e1bf5fd33be0513fc15546c27a1e43510bef22bc3d0c9535e73635f1"

View File

@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "kittycad" name = "kittycad"
version = "0.7.7" version = "0.7.8"
description = "A client library for accessing KittyCAD" description = "A client library for accessing KittyCAD"
authors = [] authors = []
@ -37,7 +37,7 @@ pyenchant = "^3.2.2"
pytest = "^8.3.5" pytest = "^8.3.5"
pytest-asyncio = "^0.26.0" pytest-asyncio = "^0.26.0"
pytest-cov = "^6.1.1" pytest-cov = "^6.1.1"
ruff = "^0.11.7" ruff = "^0.11.10"
Sphinx = "^7.1.2" Sphinx = "^7.1.2"
sphinx-autoapi = "^3.6.0" sphinx-autoapi = "^3.6.0"
sphinx-autodoc-typehints = "^2.3.0" sphinx-autodoc-typehints = "^2.3.0"

2109
spec.json

File diff suppressed because it is too large Load Diff