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]]:
"""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(
discord_id=discord_id,
@ -109,7 +109,7 @@ async def asyncio(
) -> 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.
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 (
await asyncio_detailed(

View File

@ -3,12 +3,14 @@ from typing import Any, Dict, Optional, Union
import httpx
from ...client import Client
from ...models.code_option import CodeOption
from ...models.error import Error
from ...models.kcl_model import KclModel
from ...types import Response
def _get_kwargs(
code_option: CodeOption,
*,
client: Client,
) -> Dict[str, Any]:
@ -16,6 +18,12 @@ def _get_kwargs(
client.base_url,
) # 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()
cookies: Dict[str, Any] = client.get_cookies()
@ -52,10 +60,12 @@ def _build_response(
def sync_detailed(
code_option: CodeOption,
*,
client: Client,
) -> Response[Optional[Union[KclModel, Error]]]:
kwargs = _get_kwargs(
code_option=code_option,
client=client,
)
@ -68,23 +78,29 @@ def sync_detailed(
def sync(
code_option: CodeOption,
*,
client: Client,
) -> Optional[Union[KclModel, Error]]:
"""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(
code_option=code_option,
client=client,
).parsed
async def asyncio_detailed(
code_option: CodeOption,
*,
client: Client,
) -> Response[Optional[Union[KclModel, Error]]]:
kwargs = _get_kwargs(
code_option=code_option,
client=client,
)
@ -95,15 +111,19 @@ async def asyncio_detailed(
async def asyncio(
code_option: CodeOption,
*,
client: Client,
) -> Optional[Union[KclModel, Error]]:
"""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 (
await asyncio_detailed(
code_option=code_option,
client=client,
)
).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.
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(
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.
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 (
await asyncio_detailed(

View File

@ -85,7 +85,7 @@ def sync(
*,
client: Client,
) -> 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(
id=id,
@ -118,7 +118,7 @@ async def asyncio(
*,
client: Client,
) -> 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 (
await asyncio_detailed(

View File

@ -10,6 +10,7 @@ from ...types import Response
def _get_kwargs(
include_total_due: bool,
id: Uuid,
*,
client: Client,
@ -19,6 +20,12 @@ def _get_kwargs(
id=id,
) # 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()
cookies: Dict[str, Any] = client.get_cookies()
@ -57,11 +64,13 @@ def _build_response(
def sync_detailed(
include_total_due: bool,
id: Uuid,
*,
client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs(
include_total_due=include_total_due,
id=id,
client=client,
)
@ -75,6 +84,7 @@ def sync_detailed(
def sync(
include_total_due: bool,
id: Uuid,
*,
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
return sync_detailed(
include_total_due=include_total_due,
id=id,
client=client,
).parsed
async def asyncio_detailed(
include_total_due: bool,
id: Uuid,
*,
client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs(
include_total_due=include_total_due,
id=id,
client=client,
)
@ -104,6 +117,7 @@ async def asyncio_detailed(
async def asyncio(
include_total_due: bool,
id: Uuid,
*,
client: Client,
@ -112,6 +126,7 @@ async def asyncio(
return (
await asyncio_detailed(
include_total_due=include_total_due,
id=id,
client=client,
)

View File

@ -11,6 +11,7 @@ from ...types import Response
def _get_kwargs(
id: UserIdentifier,
include_total_due: bool,
*,
client: Client,
) -> Dict[str, Any]:
@ -19,6 +20,12 @@ def _get_kwargs(
id=id,
) # 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()
cookies: Dict[str, Any] = client.get_cookies()
@ -58,11 +65,13 @@ def _build_response(
def sync_detailed(
id: UserIdentifier,
include_total_due: bool,
*,
client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs(
id=id,
include_total_due=include_total_due,
client=client,
)
@ -76,6 +85,7 @@ def sync_detailed(
def sync(
id: UserIdentifier,
include_total_due: bool,
*,
client: Client,
) -> Optional[Union[CustomerBalance, Error]]:
@ -83,17 +93,20 @@ def sync(
return sync_detailed(
id=id,
include_total_due=include_total_due,
client=client,
).parsed
async def asyncio_detailed(
id: UserIdentifier,
include_total_due: bool,
*,
client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs(
id=id,
include_total_due=include_total_due,
client=client,
)
@ -105,6 +118,7 @@ async def asyncio_detailed(
async def asyncio(
id: UserIdentifier,
include_total_due: bool,
*,
client: Client,
) -> Optional[Union[CustomerBalance, Error]]:
@ -113,6 +127,7 @@ async def asyncio(
return (
await asyncio_detailed(
id=id,
include_total_due=include_total_due,
client=client,
)
).parsed

View File

@ -9,6 +9,7 @@ from ...types import Response
def _get_kwargs(
include_total_due: bool,
*,
client: Client,
) -> Dict[str, Any]:
@ -16,6 +17,12 @@ def _get_kwargs(
client.base_url,
) # 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()
cookies: Dict[str, Any] = client.get_cookies()
@ -54,10 +61,12 @@ def _build_response(
def sync_detailed(
include_total_due: bool,
*,
client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs(
include_total_due=include_total_due,
client=client,
)
@ -70,21 +79,25 @@ def sync_detailed(
def sync(
include_total_due: bool,
*,
client: Client,
) -> 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
return sync_detailed(
include_total_due=include_total_due,
client=client,
).parsed
async def asyncio_detailed(
include_total_due: bool,
*,
client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs(
include_total_due=include_total_due,
client=client,
)
@ -95,6 +108,7 @@ async def asyncio_detailed(
async def asyncio(
include_total_due: bool,
*,
client: Client,
) -> Optional[Union[CustomerBalance, Error]]:
@ -102,6 +116,7 @@ async def asyncio(
return (
await asyncio_detailed(
include_total_due=include_total_due,
client=client,
)
).parsed

View File

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

View File

@ -12,6 +12,7 @@ from ...types import Response
def _get_kwargs(
id: Uuid,
include_total_due: bool,
body: UpdatePaymentBalance,
*,
client: Client,
@ -21,6 +22,12 @@ def _get_kwargs(
id=id,
) # 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()
cookies: Dict[str, Any] = client.get_cookies()
@ -61,12 +68,14 @@ def _build_response(
def sync_detailed(
id: Uuid,
include_total_due: bool,
body: UpdatePaymentBalance,
*,
client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs(
id=id,
include_total_due=include_total_due,
body=body,
client=client,
)
@ -81,6 +90,7 @@ def sync_detailed(
def sync(
id: Uuid,
include_total_due: bool,
body: UpdatePaymentBalance,
*,
client: Client,
@ -89,6 +99,7 @@ def sync(
return sync_detailed(
id=id,
include_total_due=include_total_due,
body=body,
client=client,
).parsed
@ -96,12 +107,14 @@ def sync(
async def asyncio_detailed(
id: Uuid,
include_total_due: bool,
body: UpdatePaymentBalance,
*,
client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs(
id=id,
include_total_due=include_total_due,
body=body,
client=client,
)
@ -114,6 +127,7 @@ async def asyncio_detailed(
async def asyncio(
id: Uuid,
include_total_due: bool,
body: UpdatePaymentBalance,
*,
client: Client,
@ -123,6 +137,7 @@ async def asyncio(
return (
await asyncio_detailed(
id=id,
include_total_due=include_total_due,
body=body,
client=client,
)

View File

@ -12,6 +12,7 @@ from ...types import Response
def _get_kwargs(
id: UserIdentifier,
include_total_due: bool,
body: UpdatePaymentBalance,
*,
client: Client,
@ -21,6 +22,12 @@ def _get_kwargs(
id=id,
) # 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()
cookies: Dict[str, Any] = client.get_cookies()
@ -61,12 +68,14 @@ def _build_response(
def sync_detailed(
id: UserIdentifier,
include_total_due: bool,
body: UpdatePaymentBalance,
*,
client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs(
id=id,
include_total_due=include_total_due,
body=body,
client=client,
)
@ -81,6 +90,7 @@ def sync_detailed(
def sync(
id: UserIdentifier,
include_total_due: bool,
body: UpdatePaymentBalance,
*,
client: Client,
@ -89,6 +99,7 @@ def sync(
return sync_detailed(
id=id,
include_total_due=include_total_due,
body=body,
client=client,
).parsed
@ -96,12 +107,14 @@ def sync(
async def asyncio_detailed(
id: UserIdentifier,
include_total_due: bool,
body: UpdatePaymentBalance,
*,
client: Client,
) -> Response[Optional[Union[CustomerBalance, Error]]]:
kwargs = _get_kwargs(
id=id,
include_total_due=include_total_due,
body=body,
client=client,
)
@ -114,6 +127,7 @@ async def asyncio_detailed(
async def asyncio(
id: UserIdentifier,
include_total_due: bool,
body: UpdatePaymentBalance,
*,
client: Client,
@ -123,6 +137,7 @@ async def asyncio(
return (
await asyncio_detailed(
id=id,
include_total_due=include_total_due,
body=body,
client=client,
)

View File

@ -79,9 +79,7 @@ def sync(
) -> Optional[Union[User, Error]]:
"""To get information about yourself, use `/users/me` as the endpoint. By doing so you will get the user information for the authenticated user.
Alternatively, to get information about the authenticated user, use `/user` endpoint.
To get information about any Zoo user, you must be a Zoo employee.""" # noqa: E501
Alternatively, to get information about the authenticated user, use `/user` endpoint.""" # noqa: E501
return sync_detailed(
id=id,
@ -112,9 +110,7 @@ async def asyncio(
) -> Optional[Union[User, Error]]:
"""To get information about yourself, use `/users/me` as the endpoint. By doing so you will get the user information for the authenticated user.
Alternatively, to get information about the authenticated user, use `/user` endpoint.
To get information about any Zoo user, you must be a Zoo employee.""" # noqa: E501
Alternatively, to get information about the authenticated user, use `/user` endpoint.""" # noqa: E501
return (
await asyncio_detailed(

View File

@ -81,9 +81,7 @@ def sync(
) -> Optional[Union[ExtendedUser, Error]]:
"""To get information about yourself, use `/users-extended/me` as the endpoint. By doing so you will get the user information for the authenticated user.
Alternatively, to get information about the authenticated user, use `/user/extended` endpoint.
To get information about any Zoo user, you must be a Zoo employee.""" # noqa: E501
Alternatively, to get information about the authenticated user, use `/user/extended` endpoint.""" # noqa: E501
return sync_detailed(
id=id,
@ -114,9 +112,7 @@ async def asyncio(
) -> Optional[Union[ExtendedUser, Error]]:
"""To get information about yourself, use `/users-extended/me` as the endpoint. By doing so you will get the user information for the authenticated user.
Alternatively, to get information about the authenticated user, use `/user/extended` endpoint.
To get information about any Zoo user, you must be a Zoo employee.""" # noqa: E501
Alternatively, to get information about the authenticated user, use `/user/extended` endpoint.""" # noqa: E501
return (
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
from ...client import Client
from ...models.error import Error
from ...models.metadata import Metadata
from ...models.inquiry_form import InquiryForm
from ...types import Response
def _get_kwargs(
body: InquiryForm,
*,
client: Client,
) -> Dict[str, Any]:
url = "{}/_meta/info".format(
url = "{}/website/form".format(
client.base_url,
) # noqa: E501
@ -24,13 +25,12 @@ def _get_kwargs(
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
"content": body.model_dump_json(),
}
def _parse_response(*, response: httpx.Response) -> Optional[Union[Metadata, Error]]:
if response.status_code == 200:
response_200 = Metadata(**response.json())
return response_200
def _parse_response(*, response: httpx.Response) -> Optional[Error]:
return None
if response.status_code == 400:
response_4XX = Error(**response.json())
return response_4XX
@ -40,9 +40,7 @@ def _parse_response(*, response: httpx.Response) -> Optional[Union[Metadata, Err
return Error(**response.json())
def _build_response(
*, response: httpx.Response
) -> Response[Optional[Union[Metadata, Error]]]:
def _build_response(*, response: httpx.Response) -> Response[Optional[Error]]:
return Response(
status_code=response.status_code,
content=response.content,
@ -52,14 +50,16 @@ def _build_response(
def sync_detailed(
body: InquiryForm,
*,
client: Client,
) -> Response[Optional[Union[Metadata, Error]]]:
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
body=body,
client=client,
)
response = httpx.get(
response = httpx.put(
verify=client.verify_ssl,
**kwargs,
)
@ -68,42 +68,44 @@ def sync_detailed(
def sync(
body: InquiryForm,
*,
client: Client,
) -> Optional[Union[Metadata, Error]]:
"""This includes information on any of our other distributed systems it is connected to.
You must be a Zoo employee to perform this request.""" # noqa: E501
) -> Optional[Error]:
"""users and is not authenticated.""" # noqa: E501
return sync_detailed(
body=body,
client=client,
).parsed
async def asyncio_detailed(
body: InquiryForm,
*,
client: Client,
) -> Response[Optional[Union[Metadata, Error]]]:
) -> Response[Optional[Error]]:
kwargs = _get_kwargs(
body=body,
client=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)
async def asyncio(
body: InquiryForm,
*,
client: Client,
) -> Optional[Union[Metadata, Error]]:
"""This includes information on any of our other distributed systems it is connected to.
You must be a Zoo employee to perform this request.""" # noqa: E501
) -> Optional[Error]:
"""users and is not authenticated.""" # noqa: E501
return (
await asyncio_detailed(
body=body,
client=client,
)
).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_event,
get_ipinfo,
get_metadata,
get_pricing_subscriptions,
get_schema,
internal_get_api_token_for_discord_user,
@ -158,6 +157,10 @@ from kittycad.api.users import (
get_user_shortlinks,
list_users,
list_users_extended,
patch_user_crm,
put_public_form,
put_public_subscribe,
put_user_form_self,
update_user_privacy_settings,
update_user_self,
update_user_shortlink,
@ -190,7 +193,6 @@ from kittycad.models import (
IpAddrInfo,
KclCodeCompletionResponse,
KclModel,
Metadata,
MlPrompt,
MlPromptResultsPage,
Onboarding,
@ -237,8 +239,10 @@ from kittycad.models.api_token_uuid import ApiTokenUuid
from kittycad.models.base64data import Base64Data
from kittycad.models.billing_info import BillingInfo
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.created_at_sort_mode import CreatedAtSortMode
from kittycad.models.crm_data import CrmData
from kittycad.models.email_authentication_form import EmailAuthenticationForm
from kittycad.models.enterprise_subscription_tier_price import (
EnterpriseSubscriptionTierPrice,
@ -251,6 +255,8 @@ from kittycad.models.idp_metadata_source import (
IdpMetadataSource,
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_request import KclCodeCompletionRequest
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_prompt import SourceRangePrompt
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_iteration_body import TextToCadIterationBody
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
def test_get_ipinfo():
# Create our client.
@ -1908,6 +1874,7 @@ def test_create_proprietary_to_kcl():
result: Optional[Union[KclModel, Error]] = create_proprietary_to_kcl.sync(
client=client,
code_option=CodeOption.PARSE,
)
if isinstance(result, Error) or result is None:
@ -1921,6 +1888,7 @@ def test_create_proprietary_to_kcl():
response: Response[Optional[Union[KclModel, Error]]] = (
create_proprietary_to_kcl.sync_detailed(
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(
client=client,
code_option=CodeOption.PARSE,
)
# OR run async with more info
@ -1941,6 +1910,7 @@ async def test_create_proprietary_to_kcl_async():
Optional[Union[KclModel, Error]]
] = await create_proprietary_to_kcl.asyncio_detailed(
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(
client=client,
include_total_due=False,
)
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]]] = (
get_payment_balance_for_org.sync_detailed(
client=client,
include_total_due=False,
)
)
@ -3083,6 +3055,7 @@ async def test_get_payment_balance_for_org_async():
Union[CustomerBalance, Error]
] = await get_payment_balance_for_org.asyncio(
client=client,
include_total_due=False,
)
# OR run async with more info
@ -3090,6 +3063,7 @@ async def test_get_payment_balance_for_org_async():
Optional[Union[CustomerBalance, Error]]
] = await get_payment_balance_for_org.asyncio_detailed(
client=client,
include_total_due=False,
)
@ -4271,6 +4245,7 @@ def test_get_payment_balance_for_any_org():
result: Optional[Union[CustomerBalance, Error]] = (
get_payment_balance_for_any_org.sync(
client=client,
include_total_due=False,
id=Uuid("<string>"),
)
)
@ -4286,6 +4261,7 @@ def test_get_payment_balance_for_any_org():
response: Response[Optional[Union[CustomerBalance, Error]]] = (
get_payment_balance_for_any_org.sync_detailed(
client=client,
include_total_due=False,
id=Uuid("<string>"),
)
)
@ -4302,6 +4278,7 @@ async def test_get_payment_balance_for_any_org_async():
Union[CustomerBalance, Error]
] = await get_payment_balance_for_any_org.asyncio(
client=client,
include_total_due=False,
id=Uuid("<string>"),
)
@ -4310,6 +4287,7 @@ async def test_get_payment_balance_for_any_org_async():
Optional[Union[CustomerBalance, Error]]
] = await get_payment_balance_for_any_org.asyncio_detailed(
client=client,
include_total_due=False,
id=Uuid("<string>"),
)
@ -4323,6 +4301,7 @@ def test_update_payment_balance_for_any_org():
update_payment_balance_for_any_org.sync(
client=client,
id=Uuid("<string>"),
include_total_due=False,
body=UpdatePaymentBalance(),
)
)
@ -4339,6 +4318,7 @@ def test_update_payment_balance_for_any_org():
update_payment_balance_for_any_org.sync_detailed(
client=client,
id=Uuid("<string>"),
include_total_due=False,
body=UpdatePaymentBalance(),
)
)
@ -4356,6 +4336,7 @@ async def test_update_payment_balance_for_any_org_async():
] = await update_payment_balance_for_any_org.asyncio(
client=client,
id=Uuid("<string>"),
include_total_due=False,
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(
client=client,
id=Uuid("<string>"),
include_total_due=False,
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
def test_get_user_self_extended():
# 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
def test_get_oauth2_providers_for_user():
# 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(
client=client,
include_total_due=False,
)
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]]] = (
get_payment_balance_for_user.sync_detailed(
client=client,
include_total_due=False,
)
)
@ -6140,6 +6234,7 @@ async def test_get_payment_balance_for_user_async():
Union[CustomerBalance, Error]
] = await get_payment_balance_for_user.asyncio(
client=client,
include_total_due=False,
)
# OR run async with more info
@ -6147,6 +6242,7 @@ async def test_get_payment_balance_for_user_async():
Optional[Union[CustomerBalance, Error]]
] = await get_payment_balance_for_user.asyncio_detailed(
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(
client=client,
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(
client=client,
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(
client=client,
id=UserIdentifier("<string>"),
include_total_due=False,
)
# 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(
client=client,
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(
client=client,
id=UserIdentifier("<string>"),
include_total_due=False,
body=UpdatePaymentBalance(),
)
)
@ -7456,6 +7557,7 @@ def test_update_payment_balance_for_any_user():
update_payment_balance_for_any_user.sync_detailed(
client=client,
id=UserIdentifier("<string>"),
include_total_due=False,
body=UpdatePaymentBalance(),
)
)
@ -7473,6 +7575,7 @@ async def test_update_payment_balance_for_any_user_async():
] = await update_payment_balance_for_any_user.asyncio(
client=client,
id=UserIdentifier("<string>"),
include_total_due=False,
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(
client=client,
id=UserIdentifier("<string>"),
include_total_due=False,
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
def test_create_executor_term():
# Create our client.

View File

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

View File

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

View File

@ -1,11 +1,15 @@
from typing import List
from typing import List, Optional
from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityLinearPatternTransform(BaseModel):
"""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=())

View File

@ -1,11 +1,15 @@
from typing import List
from typing import List, Optional
from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityMirror(BaseModel):
"""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=())

View File

@ -1,11 +1,15 @@
from typing import List
from typing import List, Optional
from pydantic import BaseModel, ConfigDict
from ..models.face_edge_info import FaceEdgeInfo
class EntityMirrorAcrossEdge(BaseModel):
"""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=())

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
is_onboarded: bool = False
is_service_account: bool = False
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.color import Color
from ..models.component_transform import ComponentTransform
from ..models.cut_strategy import CutStrategy
from ..models.cut_type import CutType
from ..models.distance_type import DistanceType
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.point2d import Point2d
from ..models.point3d import Point3d
from ..models.relative_to import RelativeTo
from ..models.scene_selection_type import SceneSelectionType
from ..models.scene_tool_type import SceneToolType
from ..models.transform import Transform
@ -103,6 +105,8 @@ class OptionExtrude(BaseModel):
class OptionSweep(BaseModel):
"""Extrude the object along a path."""
relative_to: RelativeTo = "sketch_plane" # type: ignore
sectional: bool
target: ModelingCmdId
@ -817,12 +821,18 @@ class OptionSolid3DFilletEdge(BaseModel):
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
radius: LengthUnit
strategy: CutStrategy = "automatic" # type: ignore
tolerance: LengthUnit
type: Literal["solid3d_fillet_edge"] = "solid3d_fillet_edge"
@ -1486,6 +1496,18 @@ class OptionSolid3DGetExtrusionFaceInfo(BaseModel):
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):
"""Clear the selection"""
@ -1718,6 +1740,7 @@ ModelingCmd = RootModel[
OptionOrientToFace,
OptionViewIsometric,
OptionSolid3DGetExtrusionFaceInfo,
OptionSolid3DGetAdjacencyInfo,
OptionSelectClear,
OptionSelectGet,
OptionGetNumObjects,

View File

@ -4,6 +4,7 @@ from pydantic import BaseModel, ConfigDict, Field, RootModel
from typing_extensions import Annotated
from ..models.add_hole_from_offset import AddHoleFromOffset
from ..models.adjacency_info import AdjacencyInfo
from ..models.boolean_intersection import BooleanIntersection
from ..models.boolean_subtract import BooleanSubtract
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.center_of_mass import CenterOfMass
from ..models.close_path import ClosePath
from ..models.complementary_edges import ComplementaryEdges
from ..models.curve_get_control_points import CurveGetControlPoints
from ..models.curve_get_end_points import CurveGetEndPoints
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.density import Density
from ..models.disable_dry_run import DisableDryRun
from ..models.edge_info import EdgeInfo
from ..models.edge_lines_visible import EdgeLinesVisible
from ..models.enable_dry_run import EnableDryRun
from ..models.enable_sketch_mode import EnableSketchMode
@ -58,6 +61,7 @@ from ..models.export3d import Export3d
from ..models.extend_path import ExtendPath
from ..models.extrude import Extrude
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_gradient import FaceGetGradient
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.solid2d_add_hole import Solid2dAddHole
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_opposite_edges import Solid3dGetAllOppositeEdges
from ..models.solid3d_get_common_edge import Solid3dGetCommonEdge
@ -959,6 +964,16 @@ class OptionSelectGet(BaseModel):
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):
""""""
@ -1301,6 +1316,26 @@ class OptionEntityGetDistance(BaseModel):
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):
""""""
@ -1411,6 +1446,26 @@ class OptionExtrusionFaceInfo(BaseModel):
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):
""""""
@ -1536,6 +1591,7 @@ OkModelingCmdResponse = RootModel[
OptionAddHoleFromOffset,
OptionDefaultCameraFocusOn,
OptionSelectGet,
OptionSolid3DGetAdjacencyInfo,
OptionSolid3DGetAllEdgeFaces,
OptionSolid3DGetAllOppositeEdges,
OptionSolid3DGetOppositeEdge,
@ -1570,6 +1626,8 @@ OkModelingCmdResponse = RootModel[
OptionCenterOfMass,
OptionGetSketchModePlane,
OptionEntityGetDistance,
OptionFaceEdgeInfo,
OptionEdgeInfo,
OptionEntityClone,
OptionEntityLinearPatternTransform,
OptionEntityLinearPattern,
@ -1581,6 +1639,8 @@ OkModelingCmdResponse = RootModel[
OptionEntityMakeHelixFromEdge,
OptionSolid3DGetExtrusionFaceInfo,
OptionExtrusionFaceInfo,
OptionComplementaryEdges,
OptionAdjacencyInfo,
OptionSetGridReferencePlane,
OptionBooleanUnion,
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 = "community"
"""# Standard support. """ # noqa: E501
STANDARD = "standard"
"""# Standard email support. """ # noqa: E501
STANDARD_EMAIL = "standard_email"
"""# Priority email support. """ # noqa: E501
PRIORITY_EMAIL = "priority_email"
"""# Premium support. """ # noqa: E501
PREMIUM = "premium"
"""# Priority support. """ # noqa: E501
PRIORITY = "priority"
def __str__(self) -> str:
return str(self.value)

View File

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

View File

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

View File

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

372
poetry.lock generated
View File

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

View File

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

2109
spec.json

File diff suppressed because it is too large Load Diff