diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index b881eff7..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "python.analysis.autoImportCompletions": true -} \ No newline at end of file diff --git a/.windsurfrules b/.windsurfrules deleted file mode 100644 index daa59036..00000000 --- a/.windsurfrules +++ /dev/null @@ -1 +0,0 @@ -1. This workspace uses poetry \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 21f9641e..60cc642f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ # PyPI project is nsa-pythonik (where 1.x lives; trusted publisher is bound to # it) — the import package stays `pythonik`. name = "nsa-pythonik" -version = "2.1.0" +version = "2.2.0" description = "Complete generated Python SDK for the iconik media management API (15 services)" readme = "README.md" requires-python = ">=3.10" diff --git a/pythonik/__init__.py b/pythonik/__init__.py index b0c80270..871a4f99 100644 --- a/pythonik/__init__.py +++ b/pythonik/__init__.py @@ -3,4 +3,4 @@ One subpackage per iconik service; see the package README for usage. """ -__version__ = "2.1.0" +__version__ = "2.2.0" diff --git a/pythonik/assets/api/portfolios/delete_portfolios_by_portfolio_id.py b/pythonik/assets/api/portfolios/delete_portfolios_by_portfolio_id.py deleted file mode 100644 index 19084f4c..00000000 --- a/pythonik/assets/api/portfolios/delete_portfolios_by_portfolio_id.py +++ /dev/null @@ -1,184 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...models.delete_portfolios_by_portfolio_id_response_default import ( - DeletePortfoliosByPortfolioIdResponseDefault, -) -from ...types import Response - - -def _get_kwargs( - portfolio_id: str, -) -> dict[str, Any]: - - _kwargs: dict[str, Any] = { - "method": "delete", - "url": "/v1/portfolios/{portfolio_id}/".format( - portfolio_id=quote(str(portfolio_id), safe=""), - ), - } - - return _kwargs - - -def _parse_response( - *, client: AuthenticatedClient | Client, response: httpx.Response -) -> Any | DeletePortfoliosByPortfolioIdResponseDefault: - if response.status_code == 204: - response_204 = cast(Any, None) - return response_204 - - if response.status_code == 400: - response_400 = cast(Any, None) - return response_400 - - if response.status_code == 401: - response_401 = cast(Any, None) - return response_401 - - if response.status_code == 404: - response_404 = cast(Any, None) - return response_404 - - response_default = DeletePortfoliosByPortfolioIdResponseDefault.from_dict( - response.json() - ) - - return response_default - - -def _build_response( - *, client: AuthenticatedClient | Client, response: httpx.Response -) -> Response[Any | DeletePortfoliosByPortfolioIdResponseDefault]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, -) -> Response[Any | DeletePortfoliosByPortfolioIdResponseDefault]: - """Delete a particular portfolio by id - - - Required roles: - - can_delete_portfolios - - Args: - portfolio_id (str): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any | DeletePortfoliosByPortfolioIdResponseDefault] - """ - - kwargs = _get_kwargs( - portfolio_id=portfolio_id, - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - - -def sync( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, -) -> Any | DeletePortfoliosByPortfolioIdResponseDefault | None: - """Delete a particular portfolio by id - - - Required roles: - - can_delete_portfolios - - Args: - portfolio_id (str): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Any | DeletePortfoliosByPortfolioIdResponseDefault - """ - - return sync_detailed( - portfolio_id=portfolio_id, - client=client, - ).parsed - - -async def asyncio_detailed( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, -) -> Response[Any | DeletePortfoliosByPortfolioIdResponseDefault]: - """Delete a particular portfolio by id - - - Required roles: - - can_delete_portfolios - - Args: - portfolio_id (str): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any | DeletePortfoliosByPortfolioIdResponseDefault] - """ - - kwargs = _get_kwargs( - portfolio_id=portfolio_id, - ) - - response = await client.get_async_httpx_client().request(**kwargs) - - return _build_response(client=client, response=response) - - -async def asyncio( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, -) -> Any | DeletePortfoliosByPortfolioIdResponseDefault | None: - """Delete a particular portfolio by id - - - Required roles: - - can_delete_portfolios - - Args: - portfolio_id (str): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Any | DeletePortfoliosByPortfolioIdResponseDefault - """ - - return ( - await asyncio_detailed( - portfolio_id=portfolio_id, - client=client, - ) - ).parsed diff --git a/pythonik/assets/api/portfolios/get_portfolios.py b/pythonik/assets/api/portfolios/get_portfolios.py deleted file mode 100644 index 113ecf3f..00000000 --- a/pythonik/assets/api/portfolios/get_portfolios.py +++ /dev/null @@ -1,277 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast - -import httpx - -from ...client import AuthenticatedClient, Client -from ...models.get_portfolios_response_default import GetPortfoliosResponseDefault -from ...models.portfolios_schema import PortfoliosSchema -from ...types import UNSET, Response, Unset - - -def _get_kwargs( - *, - per_page: int | Unset = UNSET, - page: int | Unset = UNSET, - scroll: bool | Unset = UNSET, - scroll_id: str | Unset = UNSET, - sort: str | Unset = UNSET, - status: str | Unset = UNSET, - ids: str | Unset = UNSET, -) -> dict[str, Any]: - - params: dict[str, Any] = {} - - params["per_page"] = per_page - - params["page"] = page - - params["scroll"] = scroll - - params["scroll_id"] = scroll_id - - params["sort"] = sort - - params["status"] = status - - params["ids"] = ids - - params = {k: v for k, v in params.items() if v is not UNSET and v is not None} - - _kwargs: dict[str, Any] = { - "method": "get", - "url": "/v1/portfolios/", - "params": params, - } - - return _kwargs - - -def _parse_response( - *, client: AuthenticatedClient | Client, response: httpx.Response -) -> Any | GetPortfoliosResponseDefault | PortfoliosSchema: - if response.status_code == 200: - response_200 = PortfoliosSchema.from_dict(response.json()) - - return response_200 - - if response.status_code == 400: - response_400 = cast(Any, None) - return response_400 - - if response.status_code == 401: - response_401 = cast(Any, None) - return response_401 - - if response.status_code == 404: - response_404 = cast(Any, None) - return response_404 - - response_default = GetPortfoliosResponseDefault.from_dict(response.json()) - - return response_default - - -def _build_response( - *, client: AuthenticatedClient | Client, response: httpx.Response -) -> Response[Any | GetPortfoliosResponseDefault | PortfoliosSchema]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - *, - client: AuthenticatedClient | Client, - per_page: int | Unset = UNSET, - page: int | Unset = UNSET, - scroll: bool | Unset = UNSET, - scroll_id: str | Unset = UNSET, - sort: str | Unset = UNSET, - status: str | Unset = UNSET, - ids: str | Unset = UNSET, -) -> Response[Any | GetPortfoliosResponseDefault | PortfoliosSchema]: - """Get list of portfolios - - - Required roles: - - can_read_portfolios - - Args: - per_page (int | Unset): - page (int | Unset): - scroll (bool | Unset): - scroll_id (str | Unset): - sort (str | Unset): - status (str | Unset): - ids (str | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any | GetPortfoliosResponseDefault | PortfoliosSchema] - """ - - kwargs = _get_kwargs( - per_page=per_page, - page=page, - scroll=scroll, - scroll_id=scroll_id, - sort=sort, - status=status, - ids=ids, - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - - -def sync( - *, - client: AuthenticatedClient | Client, - per_page: int | Unset = UNSET, - page: int | Unset = UNSET, - scroll: bool | Unset = UNSET, - scroll_id: str | Unset = UNSET, - sort: str | Unset = UNSET, - status: str | Unset = UNSET, - ids: str | Unset = UNSET, -) -> Any | GetPortfoliosResponseDefault | PortfoliosSchema | None: - """Get list of portfolios - - - Required roles: - - can_read_portfolios - - Args: - per_page (int | Unset): - page (int | Unset): - scroll (bool | Unset): - scroll_id (str | Unset): - sort (str | Unset): - status (str | Unset): - ids (str | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Any | GetPortfoliosResponseDefault | PortfoliosSchema - """ - - return sync_detailed( - client=client, - per_page=per_page, - page=page, - scroll=scroll, - scroll_id=scroll_id, - sort=sort, - status=status, - ids=ids, - ).parsed - - -async def asyncio_detailed( - *, - client: AuthenticatedClient | Client, - per_page: int | Unset = UNSET, - page: int | Unset = UNSET, - scroll: bool | Unset = UNSET, - scroll_id: str | Unset = UNSET, - sort: str | Unset = UNSET, - status: str | Unset = UNSET, - ids: str | Unset = UNSET, -) -> Response[Any | GetPortfoliosResponseDefault | PortfoliosSchema]: - """Get list of portfolios - - - Required roles: - - can_read_portfolios - - Args: - per_page (int | Unset): - page (int | Unset): - scroll (bool | Unset): - scroll_id (str | Unset): - sort (str | Unset): - status (str | Unset): - ids (str | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any | GetPortfoliosResponseDefault | PortfoliosSchema] - """ - - kwargs = _get_kwargs( - per_page=per_page, - page=page, - scroll=scroll, - scroll_id=scroll_id, - sort=sort, - status=status, - ids=ids, - ) - - response = await client.get_async_httpx_client().request(**kwargs) - - return _build_response(client=client, response=response) - - -async def asyncio( - *, - client: AuthenticatedClient | Client, - per_page: int | Unset = UNSET, - page: int | Unset = UNSET, - scroll: bool | Unset = UNSET, - scroll_id: str | Unset = UNSET, - sort: str | Unset = UNSET, - status: str | Unset = UNSET, - ids: str | Unset = UNSET, -) -> Any | GetPortfoliosResponseDefault | PortfoliosSchema | None: - """Get list of portfolios - - - Required roles: - - can_read_portfolios - - Args: - per_page (int | Unset): - page (int | Unset): - scroll (bool | Unset): - scroll_id (str | Unset): - sort (str | Unset): - status (str | Unset): - ids (str | Unset): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Any | GetPortfoliosResponseDefault | PortfoliosSchema - """ - - return ( - await asyncio_detailed( - client=client, - per_page=per_page, - page=page, - scroll=scroll, - scroll_id=scroll_id, - sort=sort, - status=status, - ids=ids, - ) - ).parsed diff --git a/pythonik/assets/api/portfolios/patch_portfolios_by_portfolio_id.py b/pythonik/assets/api/portfolios/patch_portfolios_by_portfolio_id.py deleted file mode 100644 index 2f4e4547..00000000 --- a/pythonik/assets/api/portfolios/patch_portfolios_by_portfolio_id.py +++ /dev/null @@ -1,206 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...models.patch_portfolios_by_portfolio_id_response_default import ( - PatchPortfoliosByPortfolioIdResponseDefault, -) -from ...models.portfolio_schema import PortfolioSchema -from ...types import Response - - -def _get_kwargs( - portfolio_id: str, - *, - body: PortfolioSchema, -) -> dict[str, Any]: - headers: dict[str, Any] = {} - - _kwargs: dict[str, Any] = { - "method": "patch", - "url": "/v1/portfolios/{portfolio_id}/".format( - portfolio_id=quote(str(portfolio_id), safe=""), - ), - } - - _kwargs["json"] = body.to_dict() - - headers["Content-Type"] = "application/json" - - _kwargs["headers"] = headers - return _kwargs - - -def _parse_response( - *, client: AuthenticatedClient | Client, response: httpx.Response -) -> Any | PatchPortfoliosByPortfolioIdResponseDefault | PortfolioSchema: - if response.status_code == 200: - response_200 = PortfolioSchema.from_dict(response.json()) - - return response_200 - - if response.status_code == 400: - response_400 = cast(Any, None) - return response_400 - - if response.status_code == 401: - response_401 = cast(Any, None) - return response_401 - - if response.status_code == 404: - response_404 = cast(Any, None) - return response_404 - - response_default = PatchPortfoliosByPortfolioIdResponseDefault.from_dict( - response.json() - ) - - return response_default - - -def _build_response( - *, client: AuthenticatedClient | Client, response: httpx.Response -) -> Response[Any | PatchPortfoliosByPortfolioIdResponseDefault | PortfolioSchema]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, - body: PortfolioSchema, -) -> Response[Any | PatchPortfoliosByPortfolioIdResponseDefault | PortfolioSchema]: - """Update a portfolio - - - Required roles: - - can_write_portfolios - - Args: - portfolio_id (str): - body (PortfolioSchema): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any | PatchPortfoliosByPortfolioIdResponseDefault | PortfolioSchema] - """ - - kwargs = _get_kwargs( - portfolio_id=portfolio_id, - body=body, - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - - -def sync( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, - body: PortfolioSchema, -) -> Any | PatchPortfoliosByPortfolioIdResponseDefault | PortfolioSchema | None: - """Update a portfolio - - - Required roles: - - can_write_portfolios - - Args: - portfolio_id (str): - body (PortfolioSchema): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Any | PatchPortfoliosByPortfolioIdResponseDefault | PortfolioSchema - """ - - return sync_detailed( - portfolio_id=portfolio_id, - client=client, - body=body, - ).parsed - - -async def asyncio_detailed( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, - body: PortfolioSchema, -) -> Response[Any | PatchPortfoliosByPortfolioIdResponseDefault | PortfolioSchema]: - """Update a portfolio - - - Required roles: - - can_write_portfolios - - Args: - portfolio_id (str): - body (PortfolioSchema): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any | PatchPortfoliosByPortfolioIdResponseDefault | PortfolioSchema] - """ - - kwargs = _get_kwargs( - portfolio_id=portfolio_id, - body=body, - ) - - response = await client.get_async_httpx_client().request(**kwargs) - - return _build_response(client=client, response=response) - - -async def asyncio( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, - body: PortfolioSchema, -) -> Any | PatchPortfoliosByPortfolioIdResponseDefault | PortfolioSchema | None: - """Update a portfolio - - - Required roles: - - can_write_portfolios - - Args: - portfolio_id (str): - body (PortfolioSchema): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Any | PatchPortfoliosByPortfolioIdResponseDefault | PortfolioSchema - """ - - return ( - await asyncio_detailed( - portfolio_id=portfolio_id, - client=client, - body=body, - ) - ).parsed diff --git a/pythonik/assets/api/portfolios/post_portfolios_by_portfolio_id_reindex.py b/pythonik/assets/api/portfolios/post_portfolios_by_portfolio_id_reindex.py deleted file mode 100644 index b8ee4c1f..00000000 --- a/pythonik/assets/api/portfolios/post_portfolios_by_portfolio_id_reindex.py +++ /dev/null @@ -1,205 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...models.post_portfolios_by_portfolio_id_reindex_response_default import ( - PostPortfoliosByPortfolioIdReindexResponseDefault, -) -from ...models.reindex_portfolio_schema import ReindexPortfolioSchema -from ...types import Response - - -def _get_kwargs( - portfolio_id: str, - *, - body: ReindexPortfolioSchema, -) -> dict[str, Any]: - headers: dict[str, Any] = {} - - _kwargs: dict[str, Any] = { - "method": "post", - "url": "/v1/portfolios/{portfolio_id}/reindex/".format( - portfolio_id=quote(str(portfolio_id), safe=""), - ), - } - - _kwargs["json"] = body.to_dict() - - headers["Content-Type"] = "application/json" - - _kwargs["headers"] = headers - return _kwargs - - -def _parse_response( - *, client: AuthenticatedClient | Client, response: httpx.Response -) -> Any | PostPortfoliosByPortfolioIdReindexResponseDefault: - if response.status_code == 201: - response_201 = cast(Any, None) - return response_201 - - if response.status_code == 400: - response_400 = cast(Any, None) - return response_400 - - if response.status_code == 401: - response_401 = cast(Any, None) - return response_401 - - if response.status_code == 404: - response_404 = cast(Any, None) - return response_404 - - response_default = PostPortfoliosByPortfolioIdReindexResponseDefault.from_dict( - response.json() - ) - - return response_default - - -def _build_response( - *, client: AuthenticatedClient | Client, response: httpx.Response -) -> Response[Any | PostPortfoliosByPortfolioIdReindexResponseDefault]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, - body: ReindexPortfolioSchema, -) -> Response[Any | PostPortfoliosByPortfolioIdReindexResponseDefault]: - """Reindex the portfolio - - - Required roles: - - can_reindex_portfolios - - Args: - portfolio_id (str): - body (ReindexPortfolioSchema): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any | PostPortfoliosByPortfolioIdReindexResponseDefault] - """ - - kwargs = _get_kwargs( - portfolio_id=portfolio_id, - body=body, - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - - -def sync( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, - body: ReindexPortfolioSchema, -) -> Any | PostPortfoliosByPortfolioIdReindexResponseDefault | None: - """Reindex the portfolio - - - Required roles: - - can_reindex_portfolios - - Args: - portfolio_id (str): - body (ReindexPortfolioSchema): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Any | PostPortfoliosByPortfolioIdReindexResponseDefault - """ - - return sync_detailed( - portfolio_id=portfolio_id, - client=client, - body=body, - ).parsed - - -async def asyncio_detailed( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, - body: ReindexPortfolioSchema, -) -> Response[Any | PostPortfoliosByPortfolioIdReindexResponseDefault]: - """Reindex the portfolio - - - Required roles: - - can_reindex_portfolios - - Args: - portfolio_id (str): - body (ReindexPortfolioSchema): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any | PostPortfoliosByPortfolioIdReindexResponseDefault] - """ - - kwargs = _get_kwargs( - portfolio_id=portfolio_id, - body=body, - ) - - response = await client.get_async_httpx_client().request(**kwargs) - - return _build_response(client=client, response=response) - - -async def asyncio( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, - body: ReindexPortfolioSchema, -) -> Any | PostPortfoliosByPortfolioIdReindexResponseDefault | None: - """Reindex the portfolio - - - Required roles: - - can_reindex_portfolios - - Args: - portfolio_id (str): - body (ReindexPortfolioSchema): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Any | PostPortfoliosByPortfolioIdReindexResponseDefault - """ - - return ( - await asyncio_detailed( - portfolio_id=portfolio_id, - client=client, - body=body, - ) - ).parsed diff --git a/pythonik/assets/api/portfolios/put_portfolios_by_portfolio_id.py b/pythonik/assets/api/portfolios/put_portfolios_by_portfolio_id.py deleted file mode 100644 index ccd43fa3..00000000 --- a/pythonik/assets/api/portfolios/put_portfolios_by_portfolio_id.py +++ /dev/null @@ -1,206 +0,0 @@ -from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote - -import httpx - -from ...client import AuthenticatedClient, Client -from ...models.portfolio_schema import PortfolioSchema -from ...models.put_portfolios_by_portfolio_id_response_default import ( - PutPortfoliosByPortfolioIdResponseDefault, -) -from ...types import Response - - -def _get_kwargs( - portfolio_id: str, - *, - body: PortfolioSchema, -) -> dict[str, Any]: - headers: dict[str, Any] = {} - - _kwargs: dict[str, Any] = { - "method": "put", - "url": "/v1/portfolios/{portfolio_id}/".format( - portfolio_id=quote(str(portfolio_id), safe=""), - ), - } - - _kwargs["json"] = body.to_dict() - - headers["Content-Type"] = "application/json" - - _kwargs["headers"] = headers - return _kwargs - - -def _parse_response( - *, client: AuthenticatedClient | Client, response: httpx.Response -) -> Any | PortfolioSchema | PutPortfoliosByPortfolioIdResponseDefault: - if response.status_code == 200: - response_200 = PortfolioSchema.from_dict(response.json()) - - return response_200 - - if response.status_code == 400: - response_400 = cast(Any, None) - return response_400 - - if response.status_code == 401: - response_401 = cast(Any, None) - return response_401 - - if response.status_code == 404: - response_404 = cast(Any, None) - return response_404 - - response_default = PutPortfoliosByPortfolioIdResponseDefault.from_dict( - response.json() - ) - - return response_default - - -def _build_response( - *, client: AuthenticatedClient | Client, response: httpx.Response -) -> Response[Any | PortfolioSchema | PutPortfoliosByPortfolioIdResponseDefault]: - return Response( - status_code=HTTPStatus(response.status_code), - content=response.content, - headers=response.headers, - parsed=_parse_response(client=client, response=response), - ) - - -def sync_detailed( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, - body: PortfolioSchema, -) -> Response[Any | PortfolioSchema | PutPortfoliosByPortfolioIdResponseDefault]: - """Update a portfolio - - - Required roles: - - can_write_portfolios - - Args: - portfolio_id (str): - body (PortfolioSchema): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any | PortfolioSchema | PutPortfoliosByPortfolioIdResponseDefault] - """ - - kwargs = _get_kwargs( - portfolio_id=portfolio_id, - body=body, - ) - - response = client.get_httpx_client().request( - **kwargs, - ) - - return _build_response(client=client, response=response) - - -def sync( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, - body: PortfolioSchema, -) -> Any | PortfolioSchema | PutPortfoliosByPortfolioIdResponseDefault | None: - """Update a portfolio - - - Required roles: - - can_write_portfolios - - Args: - portfolio_id (str): - body (PortfolioSchema): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Any | PortfolioSchema | PutPortfoliosByPortfolioIdResponseDefault - """ - - return sync_detailed( - portfolio_id=portfolio_id, - client=client, - body=body, - ).parsed - - -async def asyncio_detailed( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, - body: PortfolioSchema, -) -> Response[Any | PortfolioSchema | PutPortfoliosByPortfolioIdResponseDefault]: - """Update a portfolio - - - Required roles: - - can_write_portfolios - - Args: - portfolio_id (str): - body (PortfolioSchema): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Response[Any | PortfolioSchema | PutPortfoliosByPortfolioIdResponseDefault] - """ - - kwargs = _get_kwargs( - portfolio_id=portfolio_id, - body=body, - ) - - response = await client.get_async_httpx_client().request(**kwargs) - - return _build_response(client=client, response=response) - - -async def asyncio( - portfolio_id: str, - *, - client: AuthenticatedClient | Client, - body: PortfolioSchema, -) -> Any | PortfolioSchema | PutPortfoliosByPortfolioIdResponseDefault | None: - """Update a portfolio - - - Required roles: - - can_write_portfolios - - Args: - portfolio_id (str): - body (PortfolioSchema): - - Raises: - errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. - httpx.TimeoutException: If the request takes longer than Client.timeout. - - Returns: - Any | PortfolioSchema | PutPortfoliosByPortfolioIdResponseDefault - """ - - return ( - await asyncio_detailed( - portfolio_id=portfolio_id, - client=client, - body=body, - ) - ).parsed diff --git a/pythonik/assets/models/__init__.py b/pythonik/assets/models/__init__.py index 20514175..427d5881 100644 --- a/pythonik/assets/models/__init__.py +++ b/pythonik/assets/models/__init__.py @@ -481,9 +481,6 @@ from .delete_playlists_by_playlist_id_response_default import ( DeletePlaylistsByPlaylistIdResponseDefault, ) -from .delete_portfolios_by_portfolio_id_response_default import ( - DeletePortfoliosByPortfolioIdResponseDefault, -) from .delete_projects_by_project_id_members_by_member_id_response_default import ( DeleteProjectsByProjectIdMembersByMemberIdResponseDefault, ) @@ -698,10 +695,6 @@ GetPlaylistsByPlaylistIdResponseDefault, ) from .get_playlists_response_default import GetPlaylistsResponseDefault -from .get_portfolios_by_portfolio_id_response_default import ( - GetPortfoliosByPortfolioIdResponseDefault, -) -from .get_portfolios_response_default import GetPortfoliosResponseDefault from .get_projects_by_project_id_members_by_member_id_response_default import ( GetProjectsByProjectIdMembersByMemberIdResponseDefault, ) @@ -794,9 +787,6 @@ from .patch_playlists_by_playlist_id_response_default import ( PatchPlaylistsByPlaylistIdResponseDefault, ) -from .patch_portfolios_by_portfolio_id_response_default import ( - PatchPortfoliosByPortfolioIdResponseDefault, -) from .patch_projects_by_project_id_response_default import ( PatchProjectsByProjectIdResponseDefault, ) @@ -858,16 +848,6 @@ from .playlist_status import PlaylistStatus from .playlists_query_params_schema import PlaylistsQueryParamsSchema from .playlists_schema import PlaylistsSchema -from .portfolio_base_schema import PortfolioBaseSchema -from .portfolio_base_schema_status import PortfolioBaseSchemaStatus -from .portfolio_config import PortfolioConfig -from .portfolio_config_schema import PortfolioConfigSchema -from .portfolio_create_schema import PortfolioCreateSchema -from .portfolio_create_schema_status import PortfolioCreateSchemaStatus -from .portfolio_schema import PortfolioSchema -from .portfolio_schema_status import PortfolioSchemaStatus -from .portfolios_query_params_schema import PortfoliosQueryParamsSchema -from .portfolios_schema import PortfoliosSchema from .post_approvals_bulk_remove_response_default import ( PostApprovalsBulkRemoveResponseDefault, ) @@ -1025,10 +1005,6 @@ PostPlaylistsByPlaylistIdReindexResponseDefault, ) from .post_playlists_response_default import PostPlaylistsResponseDefault -from .post_portfolios_by_portfolio_id_reindex_response_default import ( - PostPortfoliosByPortfolioIdReindexResponseDefault, -) -from .post_portfolios_response_default import PostPortfoliosResponseDefault from .post_projects_by_project_id_members_response_default import ( PostProjectsByProjectIdMembersResponseDefault, ) @@ -1152,9 +1128,6 @@ from .put_playlists_by_playlist_id_response_default import ( PutPlaylistsByPlaylistIdResponseDefault, ) -from .put_portfolios_by_portfolio_id_response_default import ( - PutPortfoliosByPortfolioIdResponseDefault, -) from .put_projects_by_project_id_response_default import ( PutProjectsByProjectIdResponseDefault, ) @@ -1190,7 +1163,6 @@ ReindexInheritedCollectionsACLSchema, ) from .reindex_playlist_schema import ReindexPlaylistSchema -from .reindex_portfolio_schema import ReindexPortfolioSchema from .reindex_project_schema import ReindexProjectSchema from .reindex_segment_schema import ReindexSegmentSchema from .reindex_segments_schema import ReindexSegmentsSchema @@ -1281,14 +1253,6 @@ from .synchronize_collection_keyframes_schema import ( SynchronizeCollectionKeyframesSchema, ) -from .theme import Theme -from .theme_base import ThemeBase -from .theme_colors import ThemeColors -from .theme_colors_schema import ThemeColorsSchema -from .theme_schema import ThemeSchema -from .theme_schema_base import ThemeSchemaBase -from .theme_typography import ThemeTypography -from .theme_typography_schema import ThemeTypographySchema from .transcription_element_type import TranscriptionElementType from .transcription_element_type_schema import TranscriptionElementTypeSchema from .transcription_type import TranscriptionType @@ -1584,7 +1548,6 @@ "DeleteFavouritesAllResponseDefault", "DeletePlaylistsByPlaylistIdItemsByItemIdResponseDefault", "DeletePlaylistsByPlaylistIdResponseDefault", - "DeletePortfoliosByPortfolioIdResponseDefault", "DeleteProjectsByProjectIdMembersByMemberIdResponseDefault", "DeleteProjectsByProjectIdResponseDefault", "DeleteQueueAssetsQueryParamsSchema", @@ -1693,8 +1656,6 @@ "GetPlaylistsByPlaylistIdItemsResponseDefault", "GetPlaylistsByPlaylistIdResponseDefault", "GetPlaylistsResponseDefault", - "GetPortfoliosByPortfolioIdResponseDefault", - "GetPortfoliosResponseDefault", "GetProjectsByProjectIdMembersByMemberIdResponseDefault", "GetProjectsByProjectIdMembersResponseDefault", "GetProjectsByProjectIdResponseDefault", @@ -1739,7 +1700,6 @@ "PatchCustomActionsByContextByActionIdResponseDefault", "PatchPlaylistsByPlaylistIdItemsByItemIdResponseDefault", "PatchPlaylistsByPlaylistIdResponseDefault", - "PatchPortfoliosByPortfolioIdResponseDefault", "PatchProjectsByProjectIdResponseDefault", "PatchSequencesBySequenceIdResponseDefault", "PatchSyncSessionsBySyncSessionIdResponseDefault", @@ -1775,16 +1735,6 @@ "PlaylistsQueryParamsSchema", "PlaylistsSchema", "PlaylistStatus", - "PortfolioBaseSchema", - "PortfolioBaseSchemaStatus", - "PortfolioConfig", - "PortfolioConfigSchema", - "PortfolioCreateSchema", - "PortfolioCreateSchemaStatus", - "PortfolioSchema", - "PortfolioSchemaStatus", - "PortfoliosQueryParamsSchema", - "PortfoliosSchema", "PostApprovalsBulkRemoveResponseDefault", "PostApprovalsBulkResponseDefault", "PostAssetsByAssetIdHistoryByHistoryEntityIdReindexBody", @@ -1842,8 +1792,6 @@ "PostPlaylistsByPlaylistIdKeyframesResponseDefault", "PostPlaylistsByPlaylistIdReindexResponseDefault", "PostPlaylistsResponseDefault", - "PostPortfoliosByPortfolioIdReindexResponseDefault", - "PostPortfoliosResponseDefault", "PostProjectsByProjectIdMembersResponseDefault", "PostProjectsByProjectIdReindexResponseDefault", "PostProjectsResponseDefault", @@ -1903,7 +1851,6 @@ "PutPlaylistsByPlaylistIdItemsByItemIdPositionResponseDefault", "PutPlaylistsByPlaylistIdItemsByItemIdResponseDefault", "PutPlaylistsByPlaylistIdResponseDefault", - "PutPortfoliosByPortfolioIdResponseDefault", "PutProjectsByProjectIdResponseDefault", "PutSequencesBySequenceIdItemsByItemIdPositionResponseDefault", "PutSequencesBySequenceIdResponseDefault", @@ -1927,7 +1874,6 @@ "ReindexCollectionSchema", "ReindexInheritedCollectionsACLSchema", "ReindexPlaylistSchema", - "ReindexPortfolioSchema", "ReindexProjectSchema", "ReindexSegmentSchema", "ReindexSegmentsSchema", @@ -2016,14 +1962,6 @@ "SynchronizeCollectionKeyframesSchema", "SyncSessionCreateSchema", "SyncSessionSchema", - "Theme", - "ThemeBase", - "ThemeColors", - "ThemeColorsSchema", - "ThemeSchema", - "ThemeSchemaBase", - "ThemeTypography", - "ThemeTypographySchema", "TranscriptionElementType", "TranscriptionElementTypeSchema", "TranscriptionType", diff --git a/pythonik/assets/models/delete_portfolios_by_portfolio_id_response_default.py b/pythonik/assets/models/delete_portfolios_by_portfolio_id_response_default.py deleted file mode 100644 index 9187ae8e..00000000 --- a/pythonik/assets/models/delete_portfolios_by_portfolio_id_response_default.py +++ /dev/null @@ -1,47 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -T = TypeVar("T", bound="DeletePortfoliosByPortfolioIdResponseDefault") - - -@_attrs_define -class DeletePortfoliosByPortfolioIdResponseDefault: - """ """ - - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - delete_portfolios_by_portfolio_id_response_default = cls() - - delete_portfolios_by_portfolio_id_response_default.additional_properties = d - return delete_portfolios_by_portfolio_id_response_default - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/patch_portfolios_by_portfolio_id_response_default.py b/pythonik/assets/models/patch_portfolios_by_portfolio_id_response_default.py deleted file mode 100644 index 3e45405c..00000000 --- a/pythonik/assets/models/patch_portfolios_by_portfolio_id_response_default.py +++ /dev/null @@ -1,47 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -T = TypeVar("T", bound="PatchPortfoliosByPortfolioIdResponseDefault") - - -@_attrs_define -class PatchPortfoliosByPortfolioIdResponseDefault: - """ """ - - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - patch_portfolios_by_portfolio_id_response_default = cls() - - patch_portfolios_by_portfolio_id_response_default.additional_properties = d - return patch_portfolios_by_portfolio_id_response_default - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/portfolio_base_schema.py b/pythonik/assets/models/portfolio_base_schema.py deleted file mode 100644 index c814a606..00000000 --- a/pythonik/assets/models/portfolio_base_schema.py +++ /dev/null @@ -1,314 +0,0 @@ -from __future__ import annotations - -import datetime -from collections.abc import Mapping -from typing import TYPE_CHECKING, Any, TypeVar, cast -from uuid import UUID - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..models.portfolio_base_schema_status import PortfolioBaseSchemaStatus -from ..types import UNSET, Unset - -if TYPE_CHECKING: - from ..models.portfolio_config import PortfolioConfig - - -T = TypeVar("T", bound="PortfolioBaseSchema") - - -@_attrs_define -class PortfolioBaseSchema: - """ - Attributes: - name (str): - config (None | PortfolioConfig | Unset): - created_by_user (None | Unset | UUID): - date_created (datetime.datetime | None | Unset): - date_modified (datetime.datetime | None | Unset): - id (None | Unset | UUID): - playlist_id (None | Unset | UUID): - status (None | PortfolioBaseSchemaStatus | Unset): - system_domain_id (None | Unset | UUID): - """ - - name: str - config: None | PortfolioConfig | Unset = UNSET - created_by_user: None | Unset | UUID = UNSET - date_created: datetime.datetime | None | Unset = UNSET - date_modified: datetime.datetime | None | Unset = UNSET - id: None | Unset | UUID = UNSET - playlist_id: None | Unset | UUID = UNSET - status: None | PortfolioBaseSchemaStatus | Unset = UNSET - system_domain_id: None | Unset | UUID = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - from ..models.portfolio_config import PortfolioConfig - - name = self.name - - config: dict[str, Any] | None | Unset - if isinstance(self.config, Unset): - config = UNSET - elif isinstance(self.config, PortfolioConfig): - config = self.config.to_dict() - else: - config = self.config - - created_by_user: None | str | Unset - if isinstance(self.created_by_user, Unset): - created_by_user = UNSET - elif isinstance(self.created_by_user, UUID): - created_by_user = str(self.created_by_user) - else: - created_by_user = self.created_by_user - - date_created: None | str | Unset - if isinstance(self.date_created, Unset): - date_created = UNSET - elif isinstance(self.date_created, datetime.datetime): - date_created = self.date_created.isoformat() - else: - date_created = self.date_created - - date_modified: None | str | Unset - if isinstance(self.date_modified, Unset): - date_modified = UNSET - elif isinstance(self.date_modified, datetime.datetime): - date_modified = self.date_modified.isoformat() - else: - date_modified = self.date_modified - - id: None | str | Unset - if isinstance(self.id, Unset): - id = UNSET - elif isinstance(self.id, UUID): - id = str(self.id) - else: - id = self.id - - playlist_id: None | str | Unset - if isinstance(self.playlist_id, Unset): - playlist_id = UNSET - elif isinstance(self.playlist_id, UUID): - playlist_id = str(self.playlist_id) - else: - playlist_id = self.playlist_id - - status: None | str | Unset - if isinstance(self.status, Unset): - status = UNSET - elif isinstance(self.status, PortfolioBaseSchemaStatus): - status = self.status.value - else: - status = self.status - - system_domain_id: None | str | Unset - if isinstance(self.system_domain_id, Unset): - system_domain_id = UNSET - elif isinstance(self.system_domain_id, UUID): - system_domain_id = str(self.system_domain_id) - else: - system_domain_id = self.system_domain_id - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update( - { - "name": name, - } - ) - if config is not UNSET: - field_dict["config"] = config - if created_by_user is not UNSET: - field_dict["created_by_user"] = created_by_user - if date_created is not UNSET: - field_dict["date_created"] = date_created - if date_modified is not UNSET: - field_dict["date_modified"] = date_modified - if id is not UNSET: - field_dict["id"] = id - if playlist_id is not UNSET: - field_dict["playlist_id"] = playlist_id - if status is not UNSET: - field_dict["status"] = status - if system_domain_id is not UNSET: - field_dict["system_domain_id"] = system_domain_id - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - from ..models.portfolio_config import PortfolioConfig - - d = dict(src_dict) - name = d.pop("name") - - def _parse_config(data: object) -> None | PortfolioConfig | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, dict): - raise TypeError() - config_type_1 = PortfolioConfig.from_dict(data) - - return config_type_1 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | PortfolioConfig | Unset, data) - - config = _parse_config(d.pop("config", UNSET)) - - def _parse_created_by_user(data: object) -> None | Unset | UUID: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - created_by_user_type_0 = UUID(data) - - return created_by_user_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | Unset | UUID, data) - - created_by_user = _parse_created_by_user(d.pop("created_by_user", UNSET)) - - def _parse_date_created(data: object) -> datetime.datetime | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - date_created_type_0 = datetime.datetime.fromisoformat(data) - - return date_created_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(datetime.datetime | None | Unset, data) - - date_created = _parse_date_created(d.pop("date_created", UNSET)) - - def _parse_date_modified(data: object) -> datetime.datetime | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - date_modified_type_0 = datetime.datetime.fromisoformat(data) - - return date_modified_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(datetime.datetime | None | Unset, data) - - date_modified = _parse_date_modified(d.pop("date_modified", UNSET)) - - def _parse_id(data: object) -> None | Unset | UUID: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - id_type_0 = UUID(data) - - return id_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | Unset | UUID, data) - - id = _parse_id(d.pop("id", UNSET)) - - def _parse_playlist_id(data: object) -> None | Unset | UUID: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - playlist_id_type_0 = UUID(data) - - return playlist_id_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | Unset | UUID, data) - - playlist_id = _parse_playlist_id(d.pop("playlist_id", UNSET)) - - def _parse_status(data: object) -> None | PortfolioBaseSchemaStatus | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - status_type_1 = PortfolioBaseSchemaStatus(data) - - return status_type_1 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | PortfolioBaseSchemaStatus | Unset, data) - - status = _parse_status(d.pop("status", UNSET)) - - def _parse_system_domain_id(data: object) -> None | Unset | UUID: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - system_domain_id_type_0 = UUID(data) - - return system_domain_id_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | Unset | UUID, data) - - system_domain_id = _parse_system_domain_id(d.pop("system_domain_id", UNSET)) - - portfolio_base_schema = cls( - name=name, - config=config, - created_by_user=created_by_user, - date_created=date_created, - date_modified=date_modified, - id=id, - playlist_id=playlist_id, - status=status, - system_domain_id=system_domain_id, - ) - - portfolio_base_schema.additional_properties = d - return portfolio_base_schema - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/portfolio_base_schema_status.py b/pythonik/assets/models/portfolio_base_schema_status.py deleted file mode 100644 index a58a9995..00000000 --- a/pythonik/assets/models/portfolio_base_schema_status.py +++ /dev/null @@ -1,8 +0,0 @@ -from enum import Enum - - -class PortfolioBaseSchemaStatus(str, Enum): - ACTIVE = "ACTIVE" - - def __str__(self) -> str: - return str(self.value) diff --git a/pythonik/assets/models/portfolio_config_schema.py b/pythonik/assets/models/portfolio_config_schema.py deleted file mode 100644 index c0305812..00000000 --- a/pythonik/assets/models/portfolio_config_schema.py +++ /dev/null @@ -1,67 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import TYPE_CHECKING, Any, TypeVar - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -if TYPE_CHECKING: - from ..models.theme import Theme - - -T = TypeVar("T", bound="PortfolioConfigSchema") - - -@_attrs_define -class PortfolioConfigSchema: - """ - Attributes: - theme (Theme): - """ - - theme: Theme - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - theme = self.theme.to_dict() - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update( - { - "theme": theme, - } - ) - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - from ..models.theme import Theme - - d = dict(src_dict) - theme = Theme.from_dict(d.pop("theme")) - - portfolio_config_schema = cls( - theme=theme, - ) - - portfolio_config_schema.additional_properties = d - return portfolio_config_schema - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/portfolio_create_schema.py b/pythonik/assets/models/portfolio_create_schema.py deleted file mode 100644 index 758ab591..00000000 --- a/pythonik/assets/models/portfolio_create_schema.py +++ /dev/null @@ -1,292 +0,0 @@ -from __future__ import annotations - -import datetime -from collections.abc import Mapping -from typing import TYPE_CHECKING, Any, TypeVar, cast -from uuid import UUID - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..models.portfolio_create_schema_status import PortfolioCreateSchemaStatus -from ..types import UNSET, Unset - -if TYPE_CHECKING: - from ..models.portfolio_config_schema import PortfolioConfigSchema - - -T = TypeVar("T", bound="PortfolioCreateSchema") - - -@_attrs_define -class PortfolioCreateSchema: - """ - Attributes: - name (str): - playlist_id (UUID): - config (None | PortfolioConfigSchema | Unset): - created_by_user (None | Unset | UUID): - date_created (datetime.datetime | None | Unset): - date_modified (datetime.datetime | None | Unset): - id (None | Unset | UUID): - status (None | PortfolioCreateSchemaStatus | Unset): - system_domain_id (None | Unset | UUID): - """ - - name: str - playlist_id: UUID - config: None | PortfolioConfigSchema | Unset = UNSET - created_by_user: None | Unset | UUID = UNSET - date_created: datetime.datetime | None | Unset = UNSET - date_modified: datetime.datetime | None | Unset = UNSET - id: None | Unset | UUID = UNSET - status: None | PortfolioCreateSchemaStatus | Unset = UNSET - system_domain_id: None | Unset | UUID = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - from ..models.portfolio_config_schema import PortfolioConfigSchema - - name = self.name - - playlist_id = str(self.playlist_id) - - config: dict[str, Any] | None | Unset - if isinstance(self.config, Unset): - config = UNSET - elif isinstance(self.config, PortfolioConfigSchema): - config = self.config.to_dict() - else: - config = self.config - - created_by_user: None | str | Unset - if isinstance(self.created_by_user, Unset): - created_by_user = UNSET - elif isinstance(self.created_by_user, UUID): - created_by_user = str(self.created_by_user) - else: - created_by_user = self.created_by_user - - date_created: None | str | Unset - if isinstance(self.date_created, Unset): - date_created = UNSET - elif isinstance(self.date_created, datetime.datetime): - date_created = self.date_created.isoformat() - else: - date_created = self.date_created - - date_modified: None | str | Unset - if isinstance(self.date_modified, Unset): - date_modified = UNSET - elif isinstance(self.date_modified, datetime.datetime): - date_modified = self.date_modified.isoformat() - else: - date_modified = self.date_modified - - id: None | str | Unset - if isinstance(self.id, Unset): - id = UNSET - elif isinstance(self.id, UUID): - id = str(self.id) - else: - id = self.id - - status: None | str | Unset - if isinstance(self.status, Unset): - status = UNSET - elif isinstance(self.status, PortfolioCreateSchemaStatus): - status = self.status.value - else: - status = self.status - - system_domain_id: None | str | Unset - if isinstance(self.system_domain_id, Unset): - system_domain_id = UNSET - elif isinstance(self.system_domain_id, UUID): - system_domain_id = str(self.system_domain_id) - else: - system_domain_id = self.system_domain_id - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update( - { - "name": name, - "playlist_id": playlist_id, - } - ) - if config is not UNSET: - field_dict["config"] = config - if created_by_user is not UNSET: - field_dict["created_by_user"] = created_by_user - if date_created is not UNSET: - field_dict["date_created"] = date_created - if date_modified is not UNSET: - field_dict["date_modified"] = date_modified - if id is not UNSET: - field_dict["id"] = id - if status is not UNSET: - field_dict["status"] = status - if system_domain_id is not UNSET: - field_dict["system_domain_id"] = system_domain_id - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - from ..models.portfolio_config_schema import PortfolioConfigSchema - - d = dict(src_dict) - name = d.pop("name") - - playlist_id = UUID(d.pop("playlist_id")) - - def _parse_config(data: object) -> None | PortfolioConfigSchema | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, dict): - raise TypeError() - config_type_1 = PortfolioConfigSchema.from_dict(data) - - return config_type_1 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | PortfolioConfigSchema | Unset, data) - - config = _parse_config(d.pop("config", UNSET)) - - def _parse_created_by_user(data: object) -> None | Unset | UUID: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - created_by_user_type_0 = UUID(data) - - return created_by_user_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | Unset | UUID, data) - - created_by_user = _parse_created_by_user(d.pop("created_by_user", UNSET)) - - def _parse_date_created(data: object) -> datetime.datetime | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - date_created_type_0 = datetime.datetime.fromisoformat(data) - - return date_created_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(datetime.datetime | None | Unset, data) - - date_created = _parse_date_created(d.pop("date_created", UNSET)) - - def _parse_date_modified(data: object) -> datetime.datetime | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - date_modified_type_0 = datetime.datetime.fromisoformat(data) - - return date_modified_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(datetime.datetime | None | Unset, data) - - date_modified = _parse_date_modified(d.pop("date_modified", UNSET)) - - def _parse_id(data: object) -> None | Unset | UUID: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - id_type_0 = UUID(data) - - return id_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | Unset | UUID, data) - - id = _parse_id(d.pop("id", UNSET)) - - def _parse_status(data: object) -> None | PortfolioCreateSchemaStatus | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - status_type_1 = PortfolioCreateSchemaStatus(data) - - return status_type_1 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | PortfolioCreateSchemaStatus | Unset, data) - - status = _parse_status(d.pop("status", UNSET)) - - def _parse_system_domain_id(data: object) -> None | Unset | UUID: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - system_domain_id_type_0 = UUID(data) - - return system_domain_id_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | Unset | UUID, data) - - system_domain_id = _parse_system_domain_id(d.pop("system_domain_id", UNSET)) - - portfolio_create_schema = cls( - name=name, - playlist_id=playlist_id, - config=config, - created_by_user=created_by_user, - date_created=date_created, - date_modified=date_modified, - id=id, - status=status, - system_domain_id=system_domain_id, - ) - - portfolio_create_schema.additional_properties = d - return portfolio_create_schema - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/portfolio_create_schema_status.py b/pythonik/assets/models/portfolio_create_schema_status.py deleted file mode 100644 index be816820..00000000 --- a/pythonik/assets/models/portfolio_create_schema_status.py +++ /dev/null @@ -1,8 +0,0 @@ -from enum import Enum - - -class PortfolioCreateSchemaStatus(str, Enum): - ACTIVE = "ACTIVE" - - def __str__(self) -> str: - return str(self.value) diff --git a/pythonik/assets/models/portfolio_schema.py b/pythonik/assets/models/portfolio_schema.py deleted file mode 100644 index 1a9a6c13..00000000 --- a/pythonik/assets/models/portfolio_schema.py +++ /dev/null @@ -1,314 +0,0 @@ -from __future__ import annotations - -import datetime -from collections.abc import Mapping -from typing import TYPE_CHECKING, Any, TypeVar, cast -from uuid import UUID - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..models.portfolio_schema_status import PortfolioSchemaStatus -from ..types import UNSET, Unset - -if TYPE_CHECKING: - from ..models.portfolio_config_schema import PortfolioConfigSchema - - -T = TypeVar("T", bound="PortfolioSchema") - - -@_attrs_define -class PortfolioSchema: - """ - Attributes: - name (str): - config (None | PortfolioConfigSchema | Unset): - created_by_user (None | Unset | UUID): - date_created (datetime.datetime | None | Unset): - date_modified (datetime.datetime | None | Unset): - id (None | Unset | UUID): - playlist_id (None | Unset | UUID): - status (None | PortfolioSchemaStatus | Unset): - system_domain_id (None | Unset | UUID): - """ - - name: str - config: None | PortfolioConfigSchema | Unset = UNSET - created_by_user: None | Unset | UUID = UNSET - date_created: datetime.datetime | None | Unset = UNSET - date_modified: datetime.datetime | None | Unset = UNSET - id: None | Unset | UUID = UNSET - playlist_id: None | Unset | UUID = UNSET - status: None | PortfolioSchemaStatus | Unset = UNSET - system_domain_id: None | Unset | UUID = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - from ..models.portfolio_config_schema import PortfolioConfigSchema - - name = self.name - - config: dict[str, Any] | None | Unset - if isinstance(self.config, Unset): - config = UNSET - elif isinstance(self.config, PortfolioConfigSchema): - config = self.config.to_dict() - else: - config = self.config - - created_by_user: None | str | Unset - if isinstance(self.created_by_user, Unset): - created_by_user = UNSET - elif isinstance(self.created_by_user, UUID): - created_by_user = str(self.created_by_user) - else: - created_by_user = self.created_by_user - - date_created: None | str | Unset - if isinstance(self.date_created, Unset): - date_created = UNSET - elif isinstance(self.date_created, datetime.datetime): - date_created = self.date_created.isoformat() - else: - date_created = self.date_created - - date_modified: None | str | Unset - if isinstance(self.date_modified, Unset): - date_modified = UNSET - elif isinstance(self.date_modified, datetime.datetime): - date_modified = self.date_modified.isoformat() - else: - date_modified = self.date_modified - - id: None | str | Unset - if isinstance(self.id, Unset): - id = UNSET - elif isinstance(self.id, UUID): - id = str(self.id) - else: - id = self.id - - playlist_id: None | str | Unset - if isinstance(self.playlist_id, Unset): - playlist_id = UNSET - elif isinstance(self.playlist_id, UUID): - playlist_id = str(self.playlist_id) - else: - playlist_id = self.playlist_id - - status: None | str | Unset - if isinstance(self.status, Unset): - status = UNSET - elif isinstance(self.status, PortfolioSchemaStatus): - status = self.status.value - else: - status = self.status - - system_domain_id: None | str | Unset - if isinstance(self.system_domain_id, Unset): - system_domain_id = UNSET - elif isinstance(self.system_domain_id, UUID): - system_domain_id = str(self.system_domain_id) - else: - system_domain_id = self.system_domain_id - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update( - { - "name": name, - } - ) - if config is not UNSET: - field_dict["config"] = config - if created_by_user is not UNSET: - field_dict["created_by_user"] = created_by_user - if date_created is not UNSET: - field_dict["date_created"] = date_created - if date_modified is not UNSET: - field_dict["date_modified"] = date_modified - if id is not UNSET: - field_dict["id"] = id - if playlist_id is not UNSET: - field_dict["playlist_id"] = playlist_id - if status is not UNSET: - field_dict["status"] = status - if system_domain_id is not UNSET: - field_dict["system_domain_id"] = system_domain_id - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - from ..models.portfolio_config_schema import PortfolioConfigSchema - - d = dict(src_dict) - name = d.pop("name") - - def _parse_config(data: object) -> None | PortfolioConfigSchema | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, dict): - raise TypeError() - config_type_1 = PortfolioConfigSchema.from_dict(data) - - return config_type_1 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | PortfolioConfigSchema | Unset, data) - - config = _parse_config(d.pop("config", UNSET)) - - def _parse_created_by_user(data: object) -> None | Unset | UUID: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - created_by_user_type_0 = UUID(data) - - return created_by_user_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | Unset | UUID, data) - - created_by_user = _parse_created_by_user(d.pop("created_by_user", UNSET)) - - def _parse_date_created(data: object) -> datetime.datetime | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - date_created_type_0 = datetime.datetime.fromisoformat(data) - - return date_created_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(datetime.datetime | None | Unset, data) - - date_created = _parse_date_created(d.pop("date_created", UNSET)) - - def _parse_date_modified(data: object) -> datetime.datetime | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - date_modified_type_0 = datetime.datetime.fromisoformat(data) - - return date_modified_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(datetime.datetime | None | Unset, data) - - date_modified = _parse_date_modified(d.pop("date_modified", UNSET)) - - def _parse_id(data: object) -> None | Unset | UUID: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - id_type_0 = UUID(data) - - return id_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | Unset | UUID, data) - - id = _parse_id(d.pop("id", UNSET)) - - def _parse_playlist_id(data: object) -> None | Unset | UUID: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - playlist_id_type_0 = UUID(data) - - return playlist_id_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | Unset | UUID, data) - - playlist_id = _parse_playlist_id(d.pop("playlist_id", UNSET)) - - def _parse_status(data: object) -> None | PortfolioSchemaStatus | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - status_type_1 = PortfolioSchemaStatus(data) - - return status_type_1 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | PortfolioSchemaStatus | Unset, data) - - status = _parse_status(d.pop("status", UNSET)) - - def _parse_system_domain_id(data: object) -> None | Unset | UUID: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - system_domain_id_type_0 = UUID(data) - - return system_domain_id_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | Unset | UUID, data) - - system_domain_id = _parse_system_domain_id(d.pop("system_domain_id", UNSET)) - - portfolio_schema = cls( - name=name, - config=config, - created_by_user=created_by_user, - date_created=date_created, - date_modified=date_modified, - id=id, - playlist_id=playlist_id, - status=status, - system_domain_id=system_domain_id, - ) - - portfolio_schema.additional_properties = d - return portfolio_schema - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/portfolio_schema_status.py b/pythonik/assets/models/portfolio_schema_status.py deleted file mode 100644 index eb3487c3..00000000 --- a/pythonik/assets/models/portfolio_schema_status.py +++ /dev/null @@ -1,8 +0,0 @@ -from enum import Enum - - -class PortfolioSchemaStatus(str, Enum): - ACTIVE = "ACTIVE" - - def __str__(self) -> str: - return str(self.value) diff --git a/pythonik/assets/models/portfolios_query_params_schema.py b/pythonik/assets/models/portfolios_query_params_schema.py deleted file mode 100644 index ca5065ef..00000000 --- a/pythonik/assets/models/portfolios_query_params_schema.py +++ /dev/null @@ -1,133 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, cast - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -T = TypeVar("T", bound="PortfoliosQueryParamsSchema") - - -@_attrs_define -class PortfoliosQueryParamsSchema: - """ - Attributes: - ids (None | str | Unset): A comma separated list of portfolio IDs to filter by - page (int | None | Unset): Which page number to fetch Default: 1. - per_page (int | None | Unset): The number of items for each page Default: 10. - sort (None | str | Unset): A comma separated list of fieldnames with order (asc/desc) - """ - - ids: None | str | Unset = UNSET - page: int | None | Unset = 1 - per_page: int | None | Unset = 10 - sort: None | str | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - ids: None | str | Unset - if isinstance(self.ids, Unset): - ids = UNSET - else: - ids = self.ids - - page: int | None | Unset - if isinstance(self.page, Unset): - page = UNSET - else: - page = self.page - - per_page: int | None | Unset - if isinstance(self.per_page, Unset): - per_page = UNSET - else: - per_page = self.per_page - - sort: None | str | Unset - if isinstance(self.sort, Unset): - sort = UNSET - else: - sort = self.sort - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({}) - if ids is not UNSET: - field_dict["ids"] = ids - if page is not UNSET: - field_dict["page"] = page - if per_page is not UNSET: - field_dict["per_page"] = per_page - if sort is not UNSET: - field_dict["sort"] = sort - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - - def _parse_ids(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - ids = _parse_ids(d.pop("ids", UNSET)) - - def _parse_page(data: object) -> int | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(int | None | Unset, data) - - page = _parse_page(d.pop("page", UNSET)) - - def _parse_per_page(data: object) -> int | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(int | None | Unset, data) - - per_page = _parse_per_page(d.pop("per_page", UNSET)) - - def _parse_sort(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - sort = _parse_sort(d.pop("sort", UNSET)) - - portfolios_query_params_schema = cls( - ids=ids, - page=page, - per_page=per_page, - sort=sort, - ) - - portfolios_query_params_schema.additional_properties = d - return portfolios_query_params_schema - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/portfolios_schema.py b/pythonik/assets/models/portfolios_schema.py deleted file mode 100644 index 36ea6d51..00000000 --- a/pythonik/assets/models/portfolios_schema.py +++ /dev/null @@ -1,311 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import TYPE_CHECKING, Any, TypeVar, cast - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -if TYPE_CHECKING: - from ..models.portfolio_schema import PortfolioSchema - - -T = TypeVar("T", bound="PortfoliosSchema") - - -@_attrs_define -class PortfoliosSchema: - """ - Attributes: - first_url (None | str | Unset): - last_url (None | str | Unset): - next_url (None | str | Unset): - objects (list[PortfolioSchema] | None | Unset): - page (int | None | Unset): - pages (int | None | Unset): - per_page (int | None | Unset): - prev_url (None | str | Unset): - scroll_id (None | str | Unset): - search_after (list[Any] | None | Unset): - total (int | None | Unset): - """ - - first_url: None | str | Unset = UNSET - last_url: None | str | Unset = UNSET - next_url: None | str | Unset = UNSET - objects: list[PortfolioSchema] | None | Unset = UNSET - page: int | None | Unset = UNSET - pages: int | None | Unset = UNSET - per_page: int | None | Unset = UNSET - prev_url: None | str | Unset = UNSET - scroll_id: None | str | Unset = UNSET - search_after: list[Any] | None | Unset = UNSET - total: int | None | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - first_url: None | str | Unset - if isinstance(self.first_url, Unset): - first_url = UNSET - else: - first_url = self.first_url - - last_url: None | str | Unset - if isinstance(self.last_url, Unset): - last_url = UNSET - else: - last_url = self.last_url - - next_url: None | str | Unset - if isinstance(self.next_url, Unset): - next_url = UNSET - else: - next_url = self.next_url - - objects: list[dict[str, Any]] | None | Unset - if isinstance(self.objects, Unset): - objects = UNSET - elif isinstance(self.objects, list): - objects = [] - for objects_type_0_item_data in self.objects: - objects_type_0_item = objects_type_0_item_data.to_dict() - objects.append(objects_type_0_item) - - else: - objects = self.objects - - page: int | None | Unset - if isinstance(self.page, Unset): - page = UNSET - else: - page = self.page - - pages: int | None | Unset - if isinstance(self.pages, Unset): - pages = UNSET - else: - pages = self.pages - - per_page: int | None | Unset - if isinstance(self.per_page, Unset): - per_page = UNSET - else: - per_page = self.per_page - - prev_url: None | str | Unset - if isinstance(self.prev_url, Unset): - prev_url = UNSET - else: - prev_url = self.prev_url - - scroll_id: None | str | Unset - if isinstance(self.scroll_id, Unset): - scroll_id = UNSET - else: - scroll_id = self.scroll_id - - search_after: list[Any] | None | Unset - if isinstance(self.search_after, Unset): - search_after = UNSET - elif isinstance(self.search_after, list): - search_after = self.search_after - - else: - search_after = self.search_after - - total: int | None | Unset - if isinstance(self.total, Unset): - total = UNSET - else: - total = self.total - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({}) - if first_url is not UNSET: - field_dict["first_url"] = first_url - if last_url is not UNSET: - field_dict["last_url"] = last_url - if next_url is not UNSET: - field_dict["next_url"] = next_url - if objects is not UNSET: - field_dict["objects"] = objects - if page is not UNSET: - field_dict["page"] = page - if pages is not UNSET: - field_dict["pages"] = pages - if per_page is not UNSET: - field_dict["per_page"] = per_page - if prev_url is not UNSET: - field_dict["prev_url"] = prev_url - if scroll_id is not UNSET: - field_dict["scroll_id"] = scroll_id - if search_after is not UNSET: - field_dict["search_after"] = search_after - if total is not UNSET: - field_dict["total"] = total - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - from ..models.portfolio_schema import PortfolioSchema - - d = dict(src_dict) - - def _parse_first_url(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - first_url = _parse_first_url(d.pop("first_url", UNSET)) - - def _parse_last_url(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - last_url = _parse_last_url(d.pop("last_url", UNSET)) - - def _parse_next_url(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - next_url = _parse_next_url(d.pop("next_url", UNSET)) - - def _parse_objects(data: object) -> list[PortfolioSchema] | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, list): - raise TypeError() - objects_type_0 = [] - _objects_type_0 = data - for objects_type_0_item_data in _objects_type_0: - objects_type_0_item = PortfolioSchema.from_dict( - objects_type_0_item_data - ) - - objects_type_0.append(objects_type_0_item) - - return objects_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(list[PortfolioSchema] | None | Unset, data) - - objects = _parse_objects(d.pop("objects", UNSET)) - - def _parse_page(data: object) -> int | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(int | None | Unset, data) - - page = _parse_page(d.pop("page", UNSET)) - - def _parse_pages(data: object) -> int | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(int | None | Unset, data) - - pages = _parse_pages(d.pop("pages", UNSET)) - - def _parse_per_page(data: object) -> int | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(int | None | Unset, data) - - per_page = _parse_per_page(d.pop("per_page", UNSET)) - - def _parse_prev_url(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - prev_url = _parse_prev_url(d.pop("prev_url", UNSET)) - - def _parse_scroll_id(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - scroll_id = _parse_scroll_id(d.pop("scroll_id", UNSET)) - - def _parse_search_after(data: object) -> list[Any] | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, list): - raise TypeError() - search_after_type_0 = cast(list[Any], data) - - return search_after_type_0 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(list[Any] | None | Unset, data) - - search_after = _parse_search_after(d.pop("search_after", UNSET)) - - def _parse_total(data: object) -> int | None | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(int | None | Unset, data) - - total = _parse_total(d.pop("total", UNSET)) - - portfolios_schema = cls( - first_url=first_url, - last_url=last_url, - next_url=next_url, - objects=objects, - page=page, - pages=pages, - per_page=per_page, - prev_url=prev_url, - scroll_id=scroll_id, - search_after=search_after, - total=total, - ) - - portfolios_schema.additional_properties = d - return portfolios_schema - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/post_portfolios_by_portfolio_id_reindex_response_default.py b/pythonik/assets/models/post_portfolios_by_portfolio_id_reindex_response_default.py deleted file mode 100644 index d0d9715a..00000000 --- a/pythonik/assets/models/post_portfolios_by_portfolio_id_reindex_response_default.py +++ /dev/null @@ -1,47 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -T = TypeVar("T", bound="PostPortfoliosByPortfolioIdReindexResponseDefault") - - -@_attrs_define -class PostPortfoliosByPortfolioIdReindexResponseDefault: - """ """ - - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - post_portfolios_by_portfolio_id_reindex_response_default = cls() - - post_portfolios_by_portfolio_id_reindex_response_default.additional_properties = d - return post_portfolios_by_portfolio_id_reindex_response_default - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/put_portfolios_by_portfolio_id_response_default.py b/pythonik/assets/models/put_portfolios_by_portfolio_id_response_default.py deleted file mode 100644 index a352ca96..00000000 --- a/pythonik/assets/models/put_portfolios_by_portfolio_id_response_default.py +++ /dev/null @@ -1,47 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -T = TypeVar("T", bound="PutPortfoliosByPortfolioIdResponseDefault") - - -@_attrs_define -class PutPortfoliosByPortfolioIdResponseDefault: - """ """ - - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - put_portfolios_by_portfolio_id_response_default = cls() - - put_portfolios_by_portfolio_id_response_default.additional_properties = d - return put_portfolios_by_portfolio_id_response_default - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/theme.py b/pythonik/assets/models/theme.py deleted file mode 100644 index 7c98b349..00000000 --- a/pythonik/assets/models/theme.py +++ /dev/null @@ -1,155 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import TYPE_CHECKING, Any, TypeVar, cast - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..models.theme_base import ThemeBase -from ..types import UNSET, Unset - -if TYPE_CHECKING: - from ..models.theme_colors import ThemeColors - from ..models.theme_typography import ThemeTypography - - -T = TypeVar("T", bound="Theme") - - -@_attrs_define -class Theme: - """ - Attributes: - base (None | ThemeBase | Unset): - colors (None | ThemeColors | Unset): - typography (None | ThemeTypography | Unset): - """ - - base: None | ThemeBase | Unset = UNSET - colors: None | ThemeColors | Unset = UNSET - typography: None | ThemeTypography | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - from ..models.theme_colors import ThemeColors - from ..models.theme_typography import ThemeTypography - - base: None | str | Unset - if isinstance(self.base, Unset): - base = UNSET - elif isinstance(self.base, ThemeBase): - base = self.base.value - else: - base = self.base - - colors: dict[str, Any] | None | Unset - if isinstance(self.colors, Unset): - colors = UNSET - elif isinstance(self.colors, ThemeColors): - colors = self.colors.to_dict() - else: - colors = self.colors - - typography: dict[str, Any] | None | Unset - if isinstance(self.typography, Unset): - typography = UNSET - elif isinstance(self.typography, ThemeTypography): - typography = self.typography.to_dict() - else: - typography = self.typography - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({}) - if base is not UNSET: - field_dict["base"] = base - if colors is not UNSET: - field_dict["colors"] = colors - if typography is not UNSET: - field_dict["typography"] = typography - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - from ..models.theme_colors import ThemeColors - from ..models.theme_typography import ThemeTypography - - d = dict(src_dict) - - def _parse_base(data: object) -> None | ThemeBase | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - base_type_1 = ThemeBase(data) - - return base_type_1 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | ThemeBase | Unset, data) - - base = _parse_base(d.pop("base", UNSET)) - - def _parse_colors(data: object) -> None | ThemeColors | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, dict): - raise TypeError() - colors_type_1 = ThemeColors.from_dict(data) - - return colors_type_1 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | ThemeColors | Unset, data) - - colors = _parse_colors(d.pop("colors", UNSET)) - - def _parse_typography(data: object) -> None | ThemeTypography | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, dict): - raise TypeError() - typography_type_1 = ThemeTypography.from_dict(data) - - return typography_type_1 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | ThemeTypography | Unset, data) - - typography = _parse_typography(d.pop("typography", UNSET)) - - theme = cls( - base=base, - colors=colors, - typography=typography, - ) - - theme.additional_properties = d - return theme - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/theme_base.py b/pythonik/assets/models/theme_base.py deleted file mode 100644 index 2d1bda22..00000000 --- a/pythonik/assets/models/theme_base.py +++ /dev/null @@ -1,9 +0,0 @@ -from enum import Enum - - -class ThemeBase(str, Enum): - DARK = "dark" - LIGHT = "light" - - def __str__(self) -> str: - return str(self.value) diff --git a/pythonik/assets/models/theme_colors_schema.py b/pythonik/assets/models/theme_colors_schema.py deleted file mode 100644 index 32778a5b..00000000 --- a/pythonik/assets/models/theme_colors_schema.py +++ /dev/null @@ -1,113 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, cast - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -T = TypeVar("T", bound="ThemeColorsSchema") - - -@_attrs_define -class ThemeColorsSchema: - """ - Attributes: - primary (None | str | Unset): - secondary (None | str | Unset): - text (None | str | Unset): - """ - - primary: None | str | Unset = UNSET - secondary: None | str | Unset = UNSET - text: None | str | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - primary: None | str | Unset - if isinstance(self.primary, Unset): - primary = UNSET - else: - primary = self.primary - - secondary: None | str | Unset - if isinstance(self.secondary, Unset): - secondary = UNSET - else: - secondary = self.secondary - - text: None | str | Unset - if isinstance(self.text, Unset): - text = UNSET - else: - text = self.text - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({}) - if primary is not UNSET: - field_dict["primary"] = primary - if secondary is not UNSET: - field_dict["secondary"] = secondary - if text is not UNSET: - field_dict["text"] = text - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - - def _parse_primary(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - primary = _parse_primary(d.pop("primary", UNSET)) - - def _parse_secondary(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - secondary = _parse_secondary(d.pop("secondary", UNSET)) - - def _parse_text(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - text = _parse_text(d.pop("text", UNSET)) - - theme_colors_schema = cls( - primary=primary, - secondary=secondary, - text=text, - ) - - theme_colors_schema.additional_properties = d - return theme_colors_schema - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/theme_schema.py b/pythonik/assets/models/theme_schema.py deleted file mode 100644 index 3a0e461e..00000000 --- a/pythonik/assets/models/theme_schema.py +++ /dev/null @@ -1,155 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import TYPE_CHECKING, Any, TypeVar, cast - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..models.theme_schema_base import ThemeSchemaBase -from ..types import UNSET, Unset - -if TYPE_CHECKING: - from ..models.theme_colors_schema import ThemeColorsSchema - from ..models.theme_typography import ThemeTypography - - -T = TypeVar("T", bound="ThemeSchema") - - -@_attrs_define -class ThemeSchema: - """ - Attributes: - base (None | ThemeSchemaBase | Unset): - colors (None | ThemeColorsSchema | Unset): - typography (None | ThemeTypography | Unset): - """ - - base: None | ThemeSchemaBase | Unset = UNSET - colors: None | ThemeColorsSchema | Unset = UNSET - typography: None | ThemeTypography | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - from ..models.theme_colors_schema import ThemeColorsSchema - from ..models.theme_typography import ThemeTypography - - base: None | str | Unset - if isinstance(self.base, Unset): - base = UNSET - elif isinstance(self.base, ThemeSchemaBase): - base = self.base.value - else: - base = self.base - - colors: dict[str, Any] | None | Unset - if isinstance(self.colors, Unset): - colors = UNSET - elif isinstance(self.colors, ThemeColorsSchema): - colors = self.colors.to_dict() - else: - colors = self.colors - - typography: dict[str, Any] | None | Unset - if isinstance(self.typography, Unset): - typography = UNSET - elif isinstance(self.typography, ThemeTypography): - typography = self.typography.to_dict() - else: - typography = self.typography - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({}) - if base is not UNSET: - field_dict["base"] = base - if colors is not UNSET: - field_dict["colors"] = colors - if typography is not UNSET: - field_dict["typography"] = typography - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - from ..models.theme_colors_schema import ThemeColorsSchema - from ..models.theme_typography import ThemeTypography - - d = dict(src_dict) - - def _parse_base(data: object) -> None | ThemeSchemaBase | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, str): - raise TypeError() - base_type_1 = ThemeSchemaBase(data) - - return base_type_1 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | ThemeSchemaBase | Unset, data) - - base = _parse_base(d.pop("base", UNSET)) - - def _parse_colors(data: object) -> None | ThemeColorsSchema | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, dict): - raise TypeError() - colors_type_1 = ThemeColorsSchema.from_dict(data) - - return colors_type_1 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | ThemeColorsSchema | Unset, data) - - colors = _parse_colors(d.pop("colors", UNSET)) - - def _parse_typography(data: object) -> None | ThemeTypography | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - try: - if not isinstance(data, dict): - raise TypeError() - typography_type_1 = ThemeTypography.from_dict(data) - - return typography_type_1 - except (TypeError, ValueError, AttributeError, KeyError): - pass - return cast(None | ThemeTypography | Unset, data) - - typography = _parse_typography(d.pop("typography", UNSET)) - - theme_schema = cls( - base=base, - colors=colors, - typography=typography, - ) - - theme_schema.additional_properties = d - return theme_schema - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/theme_schema_base.py b/pythonik/assets/models/theme_schema_base.py deleted file mode 100644 index 2d766e35..00000000 --- a/pythonik/assets/models/theme_schema_base.py +++ /dev/null @@ -1,9 +0,0 @@ -from enum import Enum - - -class ThemeSchemaBase(str, Enum): - DARK = "dark" - LIGHT = "light" - - def __str__(self) -> str: - return str(self.value) diff --git a/pythonik/assets/models/theme_typography.py b/pythonik/assets/models/theme_typography.py deleted file mode 100644 index 131484a2..00000000 --- a/pythonik/assets/models/theme_typography.py +++ /dev/null @@ -1,115 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, cast - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -T = TypeVar("T", bound="ThemeTypography") - - -@_attrs_define -class ThemeTypography: - """ - Attributes: - font_family (None | str | Unset): - font_size_base (None | str | Unset): - heading_font_family (None | str | Unset): - """ - - font_family: None | str | Unset = UNSET - font_size_base: None | str | Unset = UNSET - heading_font_family: None | str | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - font_family: None | str | Unset - if isinstance(self.font_family, Unset): - font_family = UNSET - else: - font_family = self.font_family - - font_size_base: None | str | Unset - if isinstance(self.font_size_base, Unset): - font_size_base = UNSET - else: - font_size_base = self.font_size_base - - heading_font_family: None | str | Unset - if isinstance(self.heading_font_family, Unset): - heading_font_family = UNSET - else: - heading_font_family = self.heading_font_family - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({}) - if font_family is not UNSET: - field_dict["font_family"] = font_family - if font_size_base is not UNSET: - field_dict["font_size_base"] = font_size_base - if heading_font_family is not UNSET: - field_dict["heading_font_family"] = heading_font_family - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - - def _parse_font_family(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - font_family = _parse_font_family(d.pop("font_family", UNSET)) - - def _parse_font_size_base(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - font_size_base = _parse_font_size_base(d.pop("font_size_base", UNSET)) - - def _parse_heading_font_family(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - heading_font_family = _parse_heading_font_family( - d.pop("heading_font_family", UNSET) - ) - - theme_typography = cls( - font_family=font_family, - font_size_base=font_size_base, - heading_font_family=heading_font_family, - ) - - theme_typography.additional_properties = d - return theme_typography - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/theme_typography_schema.py b/pythonik/assets/models/theme_typography_schema.py deleted file mode 100644 index 1171bbcc..00000000 --- a/pythonik/assets/models/theme_typography_schema.py +++ /dev/null @@ -1,115 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, cast - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import UNSET, Unset - -T = TypeVar("T", bound="ThemeTypographySchema") - - -@_attrs_define -class ThemeTypographySchema: - """ - Attributes: - font_family (None | str | Unset): - font_size_base (None | str | Unset): - heading_font_family (None | str | Unset): - """ - - font_family: None | str | Unset = UNSET - font_size_base: None | str | Unset = UNSET - heading_font_family: None | str | Unset = UNSET - additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) - - def to_dict(self) -> dict[str, Any]: - font_family: None | str | Unset - if isinstance(self.font_family, Unset): - font_family = UNSET - else: - font_family = self.font_family - - font_size_base: None | str | Unset - if isinstance(self.font_size_base, Unset): - font_size_base = UNSET - else: - font_size_base = self.font_size_base - - heading_font_family: None | str | Unset - if isinstance(self.heading_font_family, Unset): - heading_font_family = UNSET - else: - heading_font_family = self.heading_font_family - - field_dict: dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update({}) - if font_family is not UNSET: - field_dict["font_family"] = font_family - if font_size_base is not UNSET: - field_dict["font_size_base"] = font_size_base - if heading_font_family is not UNSET: - field_dict["heading_font_family"] = heading_font_family - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - - def _parse_font_family(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - font_family = _parse_font_family(d.pop("font_family", UNSET)) - - def _parse_font_size_base(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - font_size_base = _parse_font_size_base(d.pop("font_size_base", UNSET)) - - def _parse_heading_font_family(data: object) -> None | str | Unset: - if data is None: - return data - if isinstance(data, Unset): - return data - return cast(None | str | Unset, data) - - heading_font_family = _parse_heading_font_family( - d.pop("heading_font_family", UNSET) - ) - - theme_typography_schema = cls( - font_family=font_family, - font_size_base=font_size_base, - heading_font_family=heading_font_family, - ) - - theme_typography_schema.additional_properties = d - return theme_typography_schema - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/auth/models/publish_feature_parameters.py b/pythonik/auth/models/publish_feature_parameters.py index d4c9f610..95005722 100644 --- a/pythonik/auth/models/publish_feature_parameters.py +++ b/pythonik/auth/models/publish_feature_parameters.py @@ -15,7 +15,7 @@ class PublishFeatureParameters: """ Attributes: - region (PublishFeatureParametersRegion): + region (PublishFeatureParametersRegion): Wildmoka region, must be explicitly set to US or EU salesforce_id (str): """ diff --git a/pythonik/friendly.py b/pythonik/friendly.py index 178e0c6f..221917a6 100644 --- a/pythonik/friendly.py +++ b/pythonik/friendly.py @@ -804,16 +804,6 @@ def delete_playlist_item(self, playlist_id: str, item_id: str): client=self._client("assets"), playlist_id=playlist_id, item_id=item_id ) - def delete_portfolio(self, portfolio_id: str): - "Delete a particular portfolio by id (DELETE /v1/portfolios/{portfolio_id}/)" - from .assets.api.portfolios import ( - delete_portfolios_by_portfolio_id as _endpoint, - ) - - return _endpoint.sync_detailed( - client=self._client("assets"), portfolio_id=portfolio_id - ) - def delete_project(self, project_id: str): "Delete a particular project by id (DELETE /v1/projects/{project_id}/)" from .assets.api.projects import delete_projects_by_project_id as _endpoint @@ -1626,39 +1616,6 @@ def get_playlist_items( page=page, ) - def get_portfolios( - self, - *, - per_page=UNSET, - page=UNSET, - scroll=UNSET, - scroll_id=UNSET, - sort=UNSET, - status=UNSET, - ids=UNSET, - ): - "Get list of portfolios (GET /v1/portfolios/)" - from .assets.api.portfolios import get_portfolios as _endpoint - - return _endpoint.sync_detailed( - client=self._client("assets"), - per_page=per_page, - page=page, - scroll=scroll, - scroll_id=scroll_id, - sort=sort, - status=status, - ids=ids, - ) - - def get_portfolio(self, portfolio_id: str): - "Returns a particular portfolio by id (GET /v1/portfolios/{portfolio_id}/)" - from .assets.api.portfolios import get_portfolios_by_portfolio_id as _endpoint - - return _endpoint.sync_detailed( - client=self._client("assets"), portfolio_id=portfolio_id - ) - def get_projects( self, *, @@ -2039,14 +1996,6 @@ def patch_playlist_item(self, playlist_id: str, item_id: str, *, body): body=body, ) - def patch_portfolio(self, portfolio_id: str, *, body): - "Update a portfolio (PATCH /v1/portfolios/{portfolio_id}/)" - from .assets.api.portfolios import patch_portfolios_by_portfolio_id as _endpoint - - return _endpoint.sync_detailed( - client=self._client("assets"), portfolio_id=portfolio_id, body=body - ) - def patch_project(self, project_id: str, *, body): "Update project (PATCH /v1/projects/{project_id}/)" from .assets.api.projects import patch_projects_by_project_id as _endpoint @@ -2659,22 +2608,6 @@ def post_playlist_reindex(self, playlist_id: str, *, body): client=self._client("assets"), playlist_id=playlist_id, body=body ) - def post_portfolios(self, *, body): - "Create a new portfolio (POST /v1/portfolios/)" - from .assets.api.portfolios import post_portfolios as _endpoint - - return _endpoint.sync_detailed(client=self._client("assets"), body=body) - - def post_portfolio_reindex(self, portfolio_id: str, *, body): - "Reindex the portfolio (POST /v1/portfolios/{portfolio_id}/reindex/)" - from .assets.api.portfolios import ( - post_portfolios_by_portfolio_id_reindex as _endpoint, - ) - - return _endpoint.sync_detailed( - client=self._client("assets"), portfolio_id=portfolio_id, body=body - ) - def post_projects(self, *, body): "Create a new project (POST /v1/projects/)" from .assets.api.projects import post_projects as _endpoint @@ -3073,14 +3006,6 @@ def put_playlist_item_position(self, playlist_id: str, item_id: str, *, body): body=body, ) - def put_portfolio(self, portfolio_id: str, *, body): - "Update a portfolio (PUT /v1/portfolios/{portfolio_id}/)" - from .assets.api.portfolios import put_portfolios_by_portfolio_id as _endpoint - - return _endpoint.sync_detailed( - client=self._client("assets"), portfolio_id=portfolio_id, body=body - ) - def put_project(self, project_id: str, *, body): "Update project (PUT /v1/projects/{project_id}/)" from .assets.api.projects import put_projects_by_project_id as _endpoint @@ -8766,7 +8691,7 @@ def put_face_recognition_change_person_jobs_state(self, *, body): put_face_recognition_change_person_jobs_state as _endpoint, ) - return _endpoint.sync_detailed(client=self._client("ml", ()), body=body) + return _endpoint.sync_detailed(client=self._client("ml"), body=body) def put_face_recognition_jobs_priority(self, *, body): "Bulk-change priority of FR jobs (PUT /v1/face_recognition/jobs/priority/)" @@ -8774,7 +8699,7 @@ def put_face_recognition_jobs_priority(self, *, body): put_face_recognition_jobs_priority as _endpoint, ) - return _endpoint.sync_detailed(client=self._client("ml", ()), body=body) + return _endpoint.sync_detailed(client=self._client("ml"), body=body) def put_face_recognition_jobs_state(self, *, body): "Bulk-abort / restart FR extraction jobs (PUT /v1/face_recognition/jobs/state/)" @@ -8782,7 +8707,7 @@ def put_face_recognition_jobs_state(self, *, body): put_face_recognition_jobs_state as _endpoint, ) - return _endpoint.sync_detailed(client=self._client("ml", ()), body=body) + return _endpoint.sync_detailed(client=self._client("ml"), body=body) def put_face_recognition_person(self, person_id: str, *, body): "Update an existing person (PUT /v1/face_recognition/persons/{person_id}/)" @@ -8920,6 +8845,12 @@ def get_discovery_default_entity(self, entity_id: str): client=self._client("search"), entity_id=entity_id ) + def get_ping_v2(self): + "Routing health check (GET /v2/ping/)" + from .search.api.ping import get_ping as _endpoint + + return _endpoint.sync_detailed(client=self._client("search")) + def get_search_history(self): "Returns the current search history (GET /v1/search/history/)" from .search.api.search import get_search_history as _endpoint @@ -9109,6 +9040,12 @@ def post_nltf_parse(self, *, body): return _endpoint.sync_detailed(client=self._client("search"), body=body) + def post_nltf_parse_v2(self, *, body): + "NLTF Parse (POST /v2/nltf_parse/)" + from .search.api.nltf_parse import post_nltf_parse_1 as _endpoint + + return _endpoint.sync_detailed(client=self._client("search"), body=body) + def post_search( self, *, @@ -9140,6 +9077,39 @@ def post_search( types=types, ) + def post_search_v2( + self, + *, + body, + per_page=UNSET, + page=UNSET, + scroll=UNSET, + scroll_id=UNSET, + generate_signed_url=UNSET, + generate_signed_download_url=UNSET, + generate_signed_proxy_url=UNSET, + save_search_history=UNSET, + types=UNSET, + include_users=UNSET, + ): + "Search (POST /v2/search/)" + from .search.api.search import post_search_1 as _endpoint + + return _endpoint.sync_detailed( + client=self._client("search"), + body=body, + per_page=per_page, + page=page, + scroll=scroll, + scroll_id=scroll_id, + generate_signed_url=generate_signed_url, + generate_signed_download_url=generate_signed_download_url, + generate_signed_proxy_url=generate_signed_proxy_url, + save_search_history=save_search_history, + types=types, + include_users=include_users, + ) + def post_search_saved(self, *, body): "Search, save and return result of this search (POST /v1/search/saved/)" from .search.api.search import post_search_saved as _endpoint @@ -9200,6 +9170,12 @@ def post_search_suggest(self, *, body): return _endpoint.sync_detailed(client=self._client("search"), body=body) + def post_search_suggest_v2(self, *, body): + "Search suggestions (POST /v2/search/suggest/)" + from .search.api.search import post_search_suggest_1 as _endpoint + + return _endpoint.sync_detailed(client=self._client("search"), body=body) + def post_views(self, *, body): "Insert a View for the system domain. (POST /v1/views/)" from .search.api.views import post_views as _endpoint diff --git a/pythonik/assets/api/portfolios/post_portfolios.py b/pythonik/search/api/nltf_parse/post_nltf_parse_1.py similarity index 57% rename from pythonik/assets/api/portfolios/post_portfolios.py rename to pythonik/search/api/nltf_parse/post_nltf_parse_1.py index aa125188..3bcf9bb8 100644 --- a/pythonik/assets/api/portfolios/post_portfolios.py +++ b/pythonik/search/api/nltf_parse/post_nltf_parse_1.py @@ -1,24 +1,24 @@ from http import HTTPStatus -from typing import Any, cast +from typing import Any import httpx +from ... import errors from ...client import AuthenticatedClient, Client -from ...models.portfolio_create_schema import PortfolioCreateSchema -from ...models.portfolio_schema import PortfolioSchema -from ...models.post_portfolios_response_default import PostPortfoliosResponseDefault +from ...models.http_validation_error import HTTPValidationError +from ...models.nltf_parse_request import NltfParseRequest from ...types import Response def _get_kwargs( *, - body: PortfolioCreateSchema, + body: NltfParseRequest, ) -> dict[str, Any]: headers: dict[str, Any] = {} _kwargs: dict[str, Any] = { "method": "post", - "url": "/v1/portfolios/", + "url": "/v2/nltf_parse/", } _kwargs["json"] = body.to_dict() @@ -31,28 +31,25 @@ def _get_kwargs( def _parse_response( *, client: AuthenticatedClient | Client, response: httpx.Response -) -> Any | PortfolioSchema | PostPortfoliosResponseDefault: - if response.status_code == 201: - response_201 = PortfolioSchema.from_dict(response.json()) +) -> Any | HTTPValidationError | None: + if response.status_code == 200: + response_200 = response.json() + return response_200 - return response_201 + if response.status_code == 422: + response_422 = HTTPValidationError.from_dict(response.json()) - if response.status_code == 400: - response_400 = cast(Any, None) - return response_400 + return response_422 - if response.status_code == 401: - response_401 = cast(Any, None) - return response_401 - - response_default = PostPortfoliosResponseDefault.from_dict(response.json()) - - return response_default + if client.raise_on_unexpected_status: + raise errors.UnexpectedStatus(response.status_code, response.content) + else: + return None def _build_response( *, client: AuthenticatedClient | Client, response: httpx.Response -) -> Response[Any | PortfolioSchema | PostPortfoliosResponseDefault]: +) -> Response[Any | HTTPValidationError]: return Response( status_code=HTTPStatus(response.status_code), content=response.content, @@ -64,23 +61,22 @@ def _build_response( def sync_detailed( *, client: AuthenticatedClient | Client, - body: PortfolioCreateSchema, -) -> Response[Any | PortfolioSchema | PostPortfoliosResponseDefault]: - """Create a new portfolio - + body: NltfParseRequest, +) -> Response[Any | HTTPValidationError]: + """NLTF Parse - Required roles: - - can_create_portfolios + Required roles: + - can_search Args: - body (PortfolioCreateSchema): + body (NltfParseRequest): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. httpx.TimeoutException: If the request takes longer than Client.timeout. Returns: - Response[Any | PortfolioSchema | PostPortfoliosResponseDefault] + Response[Any | HTTPValidationError] """ kwargs = _get_kwargs( @@ -97,23 +93,22 @@ def sync_detailed( def sync( *, client: AuthenticatedClient | Client, - body: PortfolioCreateSchema, -) -> Any | PortfolioSchema | PostPortfoliosResponseDefault | None: - """Create a new portfolio + body: NltfParseRequest, +) -> Any | HTTPValidationError | None: + """NLTF Parse - - Required roles: - - can_create_portfolios + Required roles: + - can_search Args: - body (PortfolioCreateSchema): + body (NltfParseRequest): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. httpx.TimeoutException: If the request takes longer than Client.timeout. Returns: - Any | PortfolioSchema | PostPortfoliosResponseDefault + Any | HTTPValidationError """ return sync_detailed( @@ -125,23 +120,22 @@ def sync( async def asyncio_detailed( *, client: AuthenticatedClient | Client, - body: PortfolioCreateSchema, -) -> Response[Any | PortfolioSchema | PostPortfoliosResponseDefault]: - """Create a new portfolio - + body: NltfParseRequest, +) -> Response[Any | HTTPValidationError]: + """NLTF Parse - Required roles: - - can_create_portfolios + Required roles: + - can_search Args: - body (PortfolioCreateSchema): + body (NltfParseRequest): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. httpx.TimeoutException: If the request takes longer than Client.timeout. Returns: - Response[Any | PortfolioSchema | PostPortfoliosResponseDefault] + Response[Any | HTTPValidationError] """ kwargs = _get_kwargs( @@ -156,23 +150,22 @@ async def asyncio_detailed( async def asyncio( *, client: AuthenticatedClient | Client, - body: PortfolioCreateSchema, -) -> Any | PortfolioSchema | PostPortfoliosResponseDefault | None: - """Create a new portfolio - + body: NltfParseRequest, +) -> Any | HTTPValidationError | None: + """NLTF Parse - Required roles: - - can_create_portfolios + Required roles: + - can_search Args: - body (PortfolioCreateSchema): + body (NltfParseRequest): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. httpx.TimeoutException: If the request takes longer than Client.timeout. Returns: - Any | PortfolioSchema | PostPortfoliosResponseDefault + Any | HTTPValidationError """ return ( diff --git a/pythonik/assets/api/portfolios/__init__.py b/pythonik/search/api/ping/__init__.py similarity index 100% rename from pythonik/assets/api/portfolios/__init__.py rename to pythonik/search/api/ping/__init__.py diff --git a/pythonik/search/api/ping/get_ping.py b/pythonik/search/api/ping/get_ping.py new file mode 100644 index 00000000..badcf40f --- /dev/null +++ b/pythonik/search/api/ping/get_ping.py @@ -0,0 +1,136 @@ +from http import HTTPStatus +from typing import Any + +import httpx + +from ... import errors +from ...client import AuthenticatedClient, Client +from ...models.get_ping_response_ping_v2_ping_get import GetPingResponsePingV2PingGet +from ...types import Response + + +def _get_kwargs() -> dict[str, Any]: + + _kwargs: dict[str, Any] = { + "method": "get", + "url": "/v2/ping/", + } + + return _kwargs + + +def _parse_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> GetPingResponsePingV2PingGet | None: + if response.status_code == 200: + response_200 = GetPingResponsePingV2PingGet.from_dict(response.json()) + + return response_200 + + if client.raise_on_unexpected_status: + raise errors.UnexpectedStatus(response.status_code, response.content) + else: + return None + + +def _build_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> Response[GetPingResponsePingV2PingGet]: + return Response( + status_code=HTTPStatus(response.status_code), + content=response.content, + headers=response.headers, + parsed=_parse_response(client=client, response=response), + ) + + +def sync_detailed( + *, + client: AuthenticatedClient | Client, +) -> Response[GetPingResponsePingV2PingGet]: + """Routing health check + + Lightweight endpoint to verify gateway routing to search-v2. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[GetPingResponsePingV2PingGet] + """ + + kwargs = _get_kwargs() + + response = client.get_httpx_client().request( + **kwargs, + ) + + return _build_response(client=client, response=response) + + +def sync( + *, + client: AuthenticatedClient | Client, +) -> GetPingResponsePingV2PingGet | None: + """Routing health check + + Lightweight endpoint to verify gateway routing to search-v2. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + GetPingResponsePingV2PingGet + """ + + return sync_detailed( + client=client, + ).parsed + + +async def asyncio_detailed( + *, + client: AuthenticatedClient | Client, +) -> Response[GetPingResponsePingV2PingGet]: + """Routing health check + + Lightweight endpoint to verify gateway routing to search-v2. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[GetPingResponsePingV2PingGet] + """ + + kwargs = _get_kwargs() + + response = await client.get_async_httpx_client().request(**kwargs) + + return _build_response(client=client, response=response) + + +async def asyncio( + *, + client: AuthenticatedClient | Client, +) -> GetPingResponsePingV2PingGet | None: + """Routing health check + + Lightweight endpoint to verify gateway routing to search-v2. + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + GetPingResponsePingV2PingGet + """ + + return ( + await asyncio_detailed( + client=client, + ) + ).parsed diff --git a/pythonik/search/api/search/post_search_1.py b/pythonik/search/api/search/post_search_1.py new file mode 100644 index 00000000..0ad7e3b5 --- /dev/null +++ b/pythonik/search/api/search/post_search_1.py @@ -0,0 +1,341 @@ +from http import HTTPStatus +from typing import Any + +import httpx + +from ... import errors +from ...client import AuthenticatedClient, Client +from ...models.http_validation_error import HTTPValidationError +from ...models.search_criteria import SearchCriteria +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + *, + body: SearchCriteria, + per_page: int | Unset = UNSET, + page: int | Unset = UNSET, + scroll: bool | Unset = UNSET, + scroll_id: None | str | Unset = UNSET, + generate_signed_url: bool | Unset = UNSET, + generate_signed_download_url: bool | Unset = UNSET, + generate_signed_proxy_url: bool | Unset = UNSET, + save_search_history: bool | Unset = UNSET, + types: None | str | Unset = UNSET, + include_users: bool | Unset = UNSET, +) -> dict[str, Any]: + headers: dict[str, Any] = {} + + params: dict[str, Any] = {} + + params["per_page"] = per_page + + params["page"] = page + + params["scroll"] = scroll + + json_scroll_id: None | str | Unset + if isinstance(scroll_id, Unset): + json_scroll_id = UNSET + else: + json_scroll_id = scroll_id + params["scroll_id"] = json_scroll_id + + params["generate_signed_url"] = generate_signed_url + + params["generate_signed_download_url"] = generate_signed_download_url + + params["generate_signed_proxy_url"] = generate_signed_proxy_url + + params["save_search_history"] = save_search_history + + json_types: None | str | Unset + if isinstance(types, Unset): + json_types = UNSET + else: + json_types = types + params["types"] = json_types + + params["include_users"] = include_users + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + _kwargs: dict[str, Any] = { + "method": "post", + "url": "/v2/search/", + "params": params, + } + + _kwargs["json"] = body.to_dict() + + headers["Content-Type"] = "application/json" + + _kwargs["headers"] = headers + return _kwargs + + +def _parse_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> Any | HTTPValidationError | None: + if response.status_code == 200: + response_200 = response.json() + return response_200 + + if response.status_code == 422: + response_422 = HTTPValidationError.from_dict(response.json()) + + return response_422 + + if client.raise_on_unexpected_status: + raise errors.UnexpectedStatus(response.status_code, response.content) + else: + return None + + +def _build_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> Response[Any | HTTPValidationError]: + return Response( + status_code=HTTPStatus(response.status_code), + content=response.content, + headers=response.headers, + parsed=_parse_response(client=client, response=response), + ) + + +def sync_detailed( + *, + client: AuthenticatedClient | Client, + body: SearchCriteria, + per_page: int | Unset = UNSET, + page: int | Unset = UNSET, + scroll: bool | Unset = UNSET, + scroll_id: None | str | Unset = UNSET, + generate_signed_url: bool | Unset = UNSET, + generate_signed_download_url: bool | Unset = UNSET, + generate_signed_proxy_url: bool | Unset = UNSET, + save_search_history: bool | Unset = UNSET, + types: None | str | Unset = UNSET, + include_users: bool | Unset = UNSET, +) -> Response[Any | HTTPValidationError]: + """Search + + Required roles: + - can_search + + Args: + per_page (int | Unset): + page (int | Unset): + scroll (bool | Unset): + scroll_id (None | str | Unset): + generate_signed_url (bool | Unset): + generate_signed_download_url (bool | Unset): + generate_signed_proxy_url (bool | Unset): + save_search_history (bool | Unset): + types (None | str | Unset): + include_users (bool | Unset): + body (SearchCriteria): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[Any | HTTPValidationError] + """ + + kwargs = _get_kwargs( + body=body, + per_page=per_page, + page=page, + scroll=scroll, + scroll_id=scroll_id, + generate_signed_url=generate_signed_url, + generate_signed_download_url=generate_signed_download_url, + generate_signed_proxy_url=generate_signed_proxy_url, + save_search_history=save_search_history, + types=types, + include_users=include_users, + ) + + response = client.get_httpx_client().request( + **kwargs, + ) + + return _build_response(client=client, response=response) + + +def sync( + *, + client: AuthenticatedClient | Client, + body: SearchCriteria, + per_page: int | Unset = UNSET, + page: int | Unset = UNSET, + scroll: bool | Unset = UNSET, + scroll_id: None | str | Unset = UNSET, + generate_signed_url: bool | Unset = UNSET, + generate_signed_download_url: bool | Unset = UNSET, + generate_signed_proxy_url: bool | Unset = UNSET, + save_search_history: bool | Unset = UNSET, + types: None | str | Unset = UNSET, + include_users: bool | Unset = UNSET, +) -> Any | HTTPValidationError | None: + """Search + + Required roles: + - can_search + + Args: + per_page (int | Unset): + page (int | Unset): + scroll (bool | Unset): + scroll_id (None | str | Unset): + generate_signed_url (bool | Unset): + generate_signed_download_url (bool | Unset): + generate_signed_proxy_url (bool | Unset): + save_search_history (bool | Unset): + types (None | str | Unset): + include_users (bool | Unset): + body (SearchCriteria): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Any | HTTPValidationError + """ + + return sync_detailed( + client=client, + body=body, + per_page=per_page, + page=page, + scroll=scroll, + scroll_id=scroll_id, + generate_signed_url=generate_signed_url, + generate_signed_download_url=generate_signed_download_url, + generate_signed_proxy_url=generate_signed_proxy_url, + save_search_history=save_search_history, + types=types, + include_users=include_users, + ).parsed + + +async def asyncio_detailed( + *, + client: AuthenticatedClient | Client, + body: SearchCriteria, + per_page: int | Unset = UNSET, + page: int | Unset = UNSET, + scroll: bool | Unset = UNSET, + scroll_id: None | str | Unset = UNSET, + generate_signed_url: bool | Unset = UNSET, + generate_signed_download_url: bool | Unset = UNSET, + generate_signed_proxy_url: bool | Unset = UNSET, + save_search_history: bool | Unset = UNSET, + types: None | str | Unset = UNSET, + include_users: bool | Unset = UNSET, +) -> Response[Any | HTTPValidationError]: + """Search + + Required roles: + - can_search + + Args: + per_page (int | Unset): + page (int | Unset): + scroll (bool | Unset): + scroll_id (None | str | Unset): + generate_signed_url (bool | Unset): + generate_signed_download_url (bool | Unset): + generate_signed_proxy_url (bool | Unset): + save_search_history (bool | Unset): + types (None | str | Unset): + include_users (bool | Unset): + body (SearchCriteria): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[Any | HTTPValidationError] + """ + + kwargs = _get_kwargs( + body=body, + per_page=per_page, + page=page, + scroll=scroll, + scroll_id=scroll_id, + generate_signed_url=generate_signed_url, + generate_signed_download_url=generate_signed_download_url, + generate_signed_proxy_url=generate_signed_proxy_url, + save_search_history=save_search_history, + types=types, + include_users=include_users, + ) + + response = await client.get_async_httpx_client().request(**kwargs) + + return _build_response(client=client, response=response) + + +async def asyncio( + *, + client: AuthenticatedClient | Client, + body: SearchCriteria, + per_page: int | Unset = UNSET, + page: int | Unset = UNSET, + scroll: bool | Unset = UNSET, + scroll_id: None | str | Unset = UNSET, + generate_signed_url: bool | Unset = UNSET, + generate_signed_download_url: bool | Unset = UNSET, + generate_signed_proxy_url: bool | Unset = UNSET, + save_search_history: bool | Unset = UNSET, + types: None | str | Unset = UNSET, + include_users: bool | Unset = UNSET, +) -> Any | HTTPValidationError | None: + """Search + + Required roles: + - can_search + + Args: + per_page (int | Unset): + page (int | Unset): + scroll (bool | Unset): + scroll_id (None | str | Unset): + generate_signed_url (bool | Unset): + generate_signed_download_url (bool | Unset): + generate_signed_proxy_url (bool | Unset): + save_search_history (bool | Unset): + types (None | str | Unset): + include_users (bool | Unset): + body (SearchCriteria): + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Any | HTTPValidationError + """ + + return ( + await asyncio_detailed( + client=client, + body=body, + per_page=per_page, + page=page, + scroll=scroll, + scroll_id=scroll_id, + generate_signed_url=generate_signed_url, + generate_signed_download_url=generate_signed_download_url, + generate_signed_proxy_url=generate_signed_proxy_url, + save_search_history=save_search_history, + types=types, + include_users=include_users, + ) + ).parsed diff --git a/pythonik/assets/api/portfolios/get_portfolios_by_portfolio_id.py b/pythonik/search/api/search/post_search_suggest_1.py similarity index 51% rename from pythonik/assets/api/portfolios/get_portfolios_by_portfolio_id.py rename to pythonik/search/api/search/post_search_suggest_1.py index 24767cdc..a04c68a7 100644 --- a/pythonik/assets/api/portfolios/get_portfolios_by_portfolio_id.py +++ b/pythonik/search/api/search/post_search_suggest_1.py @@ -1,57 +1,55 @@ from http import HTTPStatus -from typing import Any, cast -from urllib.parse import quote +from typing import Any import httpx +from ... import errors from ...client import AuthenticatedClient, Client -from ...models.get_portfolios_by_portfolio_id_response_default import ( - GetPortfoliosByPortfolioIdResponseDefault, -) -from ...models.portfolio_schema import PortfolioSchema +from ...models.http_validation_error import HTTPValidationError +from ...models.search_suggest_request import SearchSuggestRequest from ...types import Response def _get_kwargs( - portfolio_id: str, + *, + body: SearchSuggestRequest, ) -> dict[str, Any]: + headers: dict[str, Any] = {} _kwargs: dict[str, Any] = { - "method": "get", - "url": "/v1/portfolios/{portfolio_id}/".format( - portfolio_id=quote(str(portfolio_id), safe=""), - ), + "method": "post", + "url": "/v2/search/suggest/", } + _kwargs["json"] = body.to_dict() + + headers["Content-Type"] = "application/json" + + _kwargs["headers"] = headers return _kwargs def _parse_response( *, client: AuthenticatedClient | Client, response: httpx.Response -) -> Any | GetPortfoliosByPortfolioIdResponseDefault | PortfolioSchema: +) -> Any | HTTPValidationError | None: if response.status_code == 200: - response_200 = PortfolioSchema.from_dict(response.json()) - + response_200 = response.json() return response_200 - if response.status_code == 400: - response_400 = cast(Any, None) - return response_400 - - if response.status_code == 401: - response_401 = cast(Any, None) - return response_401 + if response.status_code == 422: + response_422 = HTTPValidationError.from_dict(response.json()) - response_default = GetPortfoliosByPortfolioIdResponseDefault.from_dict( - response.json() - ) + return response_422 - return response_default + if client.raise_on_unexpected_status: + raise errors.UnexpectedStatus(response.status_code, response.content) + else: + return None def _build_response( *, client: AuthenticatedClient | Client, response: httpx.Response -) -> Response[Any | GetPortfoliosByPortfolioIdResponseDefault | PortfolioSchema]: +) -> Response[Any | HTTPValidationError]: return Response( status_code=HTTPStatus(response.status_code), content=response.content, @@ -61,29 +59,28 @@ def _build_response( def sync_detailed( - portfolio_id: str, *, client: AuthenticatedClient | Client, -) -> Response[Any | GetPortfoliosByPortfolioIdResponseDefault | PortfolioSchema]: - """Returns a particular portfolio by id - + body: SearchSuggestRequest, +) -> Response[Any | HTTPValidationError]: + """Search suggestions - Required roles: - - can_read_portfolios + Required roles: + - can_search Args: - portfolio_id (str): + body (SearchSuggestRequest): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. httpx.TimeoutException: If the request takes longer than Client.timeout. Returns: - Response[Any | GetPortfoliosByPortfolioIdResponseDefault | PortfolioSchema] + Response[Any | HTTPValidationError] """ kwargs = _get_kwargs( - portfolio_id=portfolio_id, + body=body, ) response = client.get_httpx_client().request( @@ -94,57 +91,55 @@ def sync_detailed( def sync( - portfolio_id: str, *, client: AuthenticatedClient | Client, -) -> Any | GetPortfoliosByPortfolioIdResponseDefault | PortfolioSchema | None: - """Returns a particular portfolio by id - + body: SearchSuggestRequest, +) -> Any | HTTPValidationError | None: + """Search suggestions - Required roles: - - can_read_portfolios + Required roles: + - can_search Args: - portfolio_id (str): + body (SearchSuggestRequest): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. httpx.TimeoutException: If the request takes longer than Client.timeout. Returns: - Any | GetPortfoliosByPortfolioIdResponseDefault | PortfolioSchema + Any | HTTPValidationError """ return sync_detailed( - portfolio_id=portfolio_id, client=client, + body=body, ).parsed async def asyncio_detailed( - portfolio_id: str, *, client: AuthenticatedClient | Client, -) -> Response[Any | GetPortfoliosByPortfolioIdResponseDefault | PortfolioSchema]: - """Returns a particular portfolio by id + body: SearchSuggestRequest, +) -> Response[Any | HTTPValidationError]: + """Search suggestions - - Required roles: - - can_read_portfolios + Required roles: + - can_search Args: - portfolio_id (str): + body (SearchSuggestRequest): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. httpx.TimeoutException: If the request takes longer than Client.timeout. Returns: - Response[Any | GetPortfoliosByPortfolioIdResponseDefault | PortfolioSchema] + Response[Any | HTTPValidationError] """ kwargs = _get_kwargs( - portfolio_id=portfolio_id, + body=body, ) response = await client.get_async_httpx_client().request(**kwargs) @@ -153,30 +148,29 @@ async def asyncio_detailed( async def asyncio( - portfolio_id: str, *, client: AuthenticatedClient | Client, -) -> Any | GetPortfoliosByPortfolioIdResponseDefault | PortfolioSchema | None: - """Returns a particular portfolio by id - + body: SearchSuggestRequest, +) -> Any | HTTPValidationError | None: + """Search suggestions - Required roles: - - can_read_portfolios + Required roles: + - can_search Args: - portfolio_id (str): + body (SearchSuggestRequest): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. httpx.TimeoutException: If the request takes longer than Client.timeout. Returns: - Any | GetPortfoliosByPortfolioIdResponseDefault | PortfolioSchema + Any | HTTPValidationError """ return ( await asyncio_detailed( - portfolio_id=portfolio_id, client=client, + body=body, ) ).parsed diff --git a/pythonik/search/models/__init__.py b/pythonik/search/models/__init__.py index 139c9748..2f0188d3 100644 --- a/pythonik/search/models/__init__.py +++ b/pythonik/search/models/__init__.py @@ -71,6 +71,7 @@ from .discovery_entity_schema_metadata_type_0 import DiscoveryEntitySchemaMetadataType0 from .discovery_entity_schema_object_type import DiscoveryEntitySchemaObjectType from .discovery_view_settings_schema import DiscoveryViewSettingsSchema +from .facet_filter import FacetFilter from .facet_filter_schema import FacetFilterSchema from .get_discovery_default_entities_admin_response_default import ( GetDiscoveryDefaultEntitiesAdminResponseDefault, @@ -81,6 +82,7 @@ from .get_discovery_default_entities_response_default import ( GetDiscoveryDefaultEntitiesResponseDefault, ) +from .get_ping_response_ping_v2_ping_get import GetPingResponsePingV2PingGet from .get_search_history_by_search_history_id_response_default import ( GetSearchHistoryBySearchHistoryIdResponseDefault, ) @@ -103,15 +105,17 @@ from .get_search_saved_response_default import GetSearchSavedResponseDefault from .get_views_by_view_id_response_default import GetViewsByViewIdResponseDefault from .get_views_response_default import GetViewsResponseDefault +from .http_validation_error import HTTPValidationError from .list_objects_schema import ListObjectsSchema from .multi_select_filter_group_schema import MultiSelectFilterGroupSchema from .multi_select_filter_group_schema_modifier import ( MultiSelectFilterGroupSchemaModifier, ) +from .nltf_context import NltfContext from .nltf_context_schema import NltfContextSchema from .nltf_displayed_filters import NltfDisplayedFilters -from .nltf_displayed_filters_facets_type_0 import NltfDisplayedFiltersFacetsType0 -from .nltf_displayed_filters_filters_type_0 import NltfDisplayedFiltersFiltersType0 +from .nltf_displayed_filters_facets import NltfDisplayedFiltersFacets +from .nltf_displayed_filters_filters import NltfDisplayedFiltersFilters from .nltf_displayed_filters_schema import NltfDisplayedFiltersSchema from .nltf_displayed_filters_schema_facets_type_0 import ( NltfDisplayedFiltersSchemaFacetsType0, @@ -120,6 +124,7 @@ NltfDisplayedFiltersSchemaFiltersType0, ) from .nltf_parse_metadata_schema import NltfParseMetadataSchema +from .nltf_parse_request import NltfParseRequest from .nltf_parse_request_schema import NltfParseRequestSchema from .nltf_parse_response_schema import NltfParseResponseSchema from .nltf_parse_result import NltfParseResult @@ -232,10 +237,13 @@ SearchContentInfoInternalSchemaMediaTypesType0Item, ) from .search_content_info_schema import SearchContentInfoSchema +from .search_criteria import SearchCriteria from .search_criteria_base_schema import SearchCriteriaBaseSchema from .search_criteria_base_schema_doc_types_type_0_item import ( SearchCriteriaBaseSchemaDocTypesType0Item, ) +from .search_criteria_filter import SearchCriteriaFilter +from .search_criteria_filter_operator import SearchCriteriaFilterOperator from .search_criteria_saved import SearchCriteriaSaved from .search_criteria_saved_doc_types_type_0_item import ( SearchCriteriaSavedDocTypesType0Item, @@ -267,20 +275,25 @@ from .search_query_params_schema_types_type_0_item import ( SearchQueryParamsSchemaTypesType0Item, ) +from .search_range_filter import SearchRangeFilter +from .search_suggest_request import SearchSuggestRequest from .search_suggest_response_schema import SearchSuggestResponseSchema from .search_suggest_schema import SearchSuggestSchema from .search_suggest_schema_doc_types_type_0_item import ( SearchSuggestSchemaDocTypesType0Item, ) from .search_suggests_response_schema import SearchSuggestsResponseSchema +from .search_term import SearchTerm from .search_view_field_type_schema import SearchViewFieldTypeSchema from .search_view_field_type_width import SearchViewFieldTypeWidth from .search_view_field_type_width_schema import SearchViewFieldTypeWidthSchema from .search_view_schema import SearchViewSchema from .search_views_id_schema import SearchViewsIDSchema from .search_views_schema import SearchViewsSchema +from .sort_field import SortField from .storage_content_info import StorageContentInfo from .storage_content_info_schema import StorageContentInfoSchema +from .validation_error import ValidationError __all__ = ( "AutomationSearchCriteriaSchema", @@ -324,10 +337,12 @@ "DiscoveryEntitySchemaMetadataType0", "DiscoveryEntitySchemaObjectType", "DiscoveryViewSettingsSchema", + "FacetFilter", "FacetFilterSchema", "GetDiscoveryDefaultEntitiesAdminResponseDefault", "GetDiscoveryDefaultEntitiesByEntityIdResponseDefault", "GetDiscoveryDefaultEntitiesResponseDefault", + "GetPingResponsePingV2PingGet", "GetSearchHistoryBySearchHistoryIdResponseDefault", "GetSearchHistoryResponseDefault", "GetSearchSavedBySearchIdContentInfoResponseDefault", @@ -338,17 +353,20 @@ "GetSearchSavedResponseDefault", "GetViewsByViewIdResponseDefault", "GetViewsResponseDefault", + "HTTPValidationError", "ListObjectsSchema", "MultiSelectFilterGroupSchema", "MultiSelectFilterGroupSchemaModifier", + "NltfContext", "NltfContextSchema", "NltfDisplayedFilters", - "NltfDisplayedFiltersFacetsType0", - "NltfDisplayedFiltersFiltersType0", + "NltfDisplayedFiltersFacets", + "NltfDisplayedFiltersFilters", "NltfDisplayedFiltersSchema", "NltfDisplayedFiltersSchemaFacetsType0", "NltfDisplayedFiltersSchemaFiltersType0", "NltfParseMetadataSchema", + "NltfParseRequest", "NltfParseRequestSchema", "NltfParseResponseSchema", "NltfParseResult", @@ -409,8 +427,11 @@ "SearchContentInfoInternalSchemaMediaFormatsType0Item", "SearchContentInfoInternalSchemaMediaTypesType0Item", "SearchContentInfoSchema", + "SearchCriteria", "SearchCriteriaBaseSchema", "SearchCriteriaBaseSchemaDocTypesType0Item", + "SearchCriteriaFilter", + "SearchCriteriaFilterOperator", "SearchCriteriaSaved", "SearchCriteriaSavedDocTypesType0Item", "SearchCriteriaSavedSchema", @@ -432,16 +453,21 @@ "SearchHistorySchemaCriteria", "SearchQueryParamsSchema", "SearchQueryParamsSchemaTypesType0Item", + "SearchRangeFilter", + "SearchSuggestRequest", "SearchSuggestResponseSchema", "SearchSuggestSchema", "SearchSuggestSchemaDocTypesType0Item", "SearchSuggestsResponseSchema", + "SearchTerm", "SearchViewFieldTypeSchema", "SearchViewFieldTypeWidth", "SearchViewFieldTypeWidthSchema", "SearchViewSchema", "SearchViewsIDSchema", "SearchViewsSchema", + "SortField", "StorageContentInfo", "StorageContentInfoSchema", + "ValidationError", ) diff --git a/pythonik/search/models/facet_filter.py b/pythonik/search/models/facet_filter.py new file mode 100644 index 00000000..b1028442 --- /dev/null +++ b/pythonik/search/models/facet_filter.py @@ -0,0 +1,94 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any, TypeVar, cast + +from attrs import define as _attrs_define +from attrs import field as _attrs_field + +from ..types import UNSET, Unset + +T = TypeVar("T", bound="FacetFilter") + + +@_attrs_define +class FacetFilter: + """ + Attributes: + name (str): + value_in (list[str] | None | Unset): + """ + + name: str + value_in: list[str] | None | Unset = UNSET + additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + name = self.name + + value_in: list[str] | None | Unset + if isinstance(self.value_in, Unset): + value_in = UNSET + elif isinstance(self.value_in, list): + value_in = self.value_in + + else: + value_in = self.value_in + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update( + { + "name": name, + } + ) + if value_in is not UNSET: + field_dict["value_in"] = value_in + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + name = d.pop("name") + + def _parse_value_in(data: object) -> list[str] | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, list): + raise TypeError() + value_in_type_0 = cast(list[str], data) + + return value_in_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(list[str] | None | Unset, data) + + value_in = _parse_value_in(d.pop("value_in", UNSET)) + + facet_filter = cls( + name=name, + value_in=value_in, + ) + + facet_filter.additional_properties = d + return facet_filter + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/pythonik/assets/models/get_portfolios_by_portfolio_id_response_default.py b/pythonik/search/models/get_ping_response_ping_v2_ping_get.py similarity index 76% rename from pythonik/assets/models/get_portfolios_by_portfolio_id_response_default.py rename to pythonik/search/models/get_ping_response_ping_v2_ping_get.py index a09c45c3..73627dc6 100644 --- a/pythonik/assets/models/get_portfolios_by_portfolio_id_response_default.py +++ b/pythonik/search/models/get_ping_response_ping_v2_ping_get.py @@ -6,11 +6,11 @@ from attrs import define as _attrs_define from attrs import field as _attrs_field -T = TypeVar("T", bound="GetPortfoliosByPortfolioIdResponseDefault") +T = TypeVar("T", bound="GetPingResponsePingV2PingGet") @_attrs_define -class GetPortfoliosByPortfolioIdResponseDefault: +class GetPingResponsePingV2PingGet: """ """ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -25,10 +25,10 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - get_portfolios_by_portfolio_id_response_default = cls() + get_ping_response_ping_v2_ping_get = cls() - get_portfolios_by_portfolio_id_response_default.additional_properties = d - return get_portfolios_by_portfolio_id_response_default + get_ping_response_ping_v2_ping_get.additional_properties = d + return get_ping_response_ping_v2_ping_get @property def additional_keys(self) -> list[str]: diff --git a/pythonik/search/models/http_validation_error.py b/pythonik/search/models/http_validation_error.py new file mode 100644 index 00000000..c259878a --- /dev/null +++ b/pythonik/search/models/http_validation_error.py @@ -0,0 +1,100 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar, cast + +from attrs import define as _attrs_define +from attrs import field as _attrs_field + +from ..types import UNSET, Unset + +if TYPE_CHECKING: + from ..models.validation_error import ValidationError + + +T = TypeVar("T", bound="HTTPValidationError") + + +@_attrs_define +class HTTPValidationError: + """ + Attributes: + detail (list[ValidationError] | None | Unset): + """ + + detail: list[ValidationError] | None | Unset = UNSET + additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + detail: list[dict[str, Any]] | None | Unset + if isinstance(self.detail, Unset): + detail = UNSET + elif isinstance(self.detail, list): + detail = [] + for detail_type_0_item_data in self.detail: + detail_type_0_item = detail_type_0_item_data.to_dict() + detail.append(detail_type_0_item) + + else: + detail = self.detail + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if detail is not UNSET: + field_dict["detail"] = detail + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.validation_error import ValidationError + + d = dict(src_dict) + + def _parse_detail(data: object) -> list[ValidationError] | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, list): + raise TypeError() + detail_type_0 = [] + _detail_type_0 = data + for detail_type_0_item_data in _detail_type_0: + detail_type_0_item = ValidationError.from_dict( + detail_type_0_item_data + ) + + detail_type_0.append(detail_type_0_item) + + return detail_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(list[ValidationError] | None | Unset, data) + + detail = _parse_detail(d.pop("detail", UNSET)) + + http_validation_error = cls( + detail=detail, + ) + + http_validation_error.additional_properties = d + return http_validation_error + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/pythonik/search/models/nltf_context.py b/pythonik/search/models/nltf_context.py new file mode 100644 index 00000000..1fac248a --- /dev/null +++ b/pythonik/search/models/nltf_context.py @@ -0,0 +1,93 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar, cast + +from attrs import define as _attrs_define +from attrs import field as _attrs_field + +from ..types import UNSET, Unset + +if TYPE_CHECKING: + from ..models.nltf_displayed_filters import NltfDisplayedFilters + + +T = TypeVar("T", bound="NltfContext") + + +@_attrs_define +class NltfContext: + """ + Attributes: + displayed_filters (NltfDisplayedFilters | None | Unset): + """ + + displayed_filters: NltfDisplayedFilters | None | Unset = UNSET + additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + from ..models.nltf_displayed_filters import NltfDisplayedFilters + + displayed_filters: dict[str, Any] | None | Unset + if isinstance(self.displayed_filters, Unset): + displayed_filters = UNSET + elif isinstance(self.displayed_filters, NltfDisplayedFilters): + displayed_filters = self.displayed_filters.to_dict() + else: + displayed_filters = self.displayed_filters + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if displayed_filters is not UNSET: + field_dict["displayed_filters"] = displayed_filters + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.nltf_displayed_filters import NltfDisplayedFilters + + d = dict(src_dict) + + def _parse_displayed_filters( + data: object, + ) -> NltfDisplayedFilters | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, dict): + raise TypeError() + displayed_filters_type_1 = NltfDisplayedFilters.from_dict(data) + + return displayed_filters_type_1 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(NltfDisplayedFilters | None | Unset, data) + + displayed_filters = _parse_displayed_filters(d.pop("displayed_filters", UNSET)) + + nltf_context = cls( + displayed_filters=displayed_filters, + ) + + nltf_context.additional_properties = d + return nltf_context + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/pythonik/search/models/nltf_displayed_filters.py b/pythonik/search/models/nltf_displayed_filters.py index dedb8712..51d64d8b 100644 --- a/pythonik/search/models/nltf_displayed_filters.py +++ b/pythonik/search/models/nltf_displayed_filters.py @@ -9,12 +9,8 @@ from ..types import UNSET, Unset if TYPE_CHECKING: - from ..models.nltf_displayed_filters_facets_type_0 import ( - NltfDisplayedFiltersFacetsType0, - ) - from ..models.nltf_displayed_filters_filters_type_0 import ( - NltfDisplayedFiltersFiltersType0, - ) + from ..models.nltf_displayed_filters_facets import NltfDisplayedFiltersFacets + from ..models.nltf_displayed_filters_filters import NltfDisplayedFiltersFilters T = TypeVar("T", bound="NltfDisplayedFilters") @@ -24,26 +20,22 @@ class NltfDisplayedFilters: """ Attributes: - facets (NltfDisplayedFiltersFacetsType0 | None | Unset): - filters (NltfDisplayedFiltersFiltersType0 | None | Unset): + facets (NltfDisplayedFiltersFacets | None | Unset): + filters (NltfDisplayedFiltersFilters | None | Unset): """ - facets: NltfDisplayedFiltersFacetsType0 | None | Unset = UNSET - filters: NltfDisplayedFiltersFiltersType0 | None | Unset = UNSET + facets: NltfDisplayedFiltersFacets | None | Unset = UNSET + filters: NltfDisplayedFiltersFilters | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - from ..models.nltf_displayed_filters_facets_type_0 import ( - NltfDisplayedFiltersFacetsType0, - ) - from ..models.nltf_displayed_filters_filters_type_0 import ( - NltfDisplayedFiltersFiltersType0, - ) + from ..models.nltf_displayed_filters_facets import NltfDisplayedFiltersFacets + from ..models.nltf_displayed_filters_filters import NltfDisplayedFiltersFilters facets: dict[str, Any] | None | Unset if isinstance(self.facets, Unset): facets = UNSET - elif isinstance(self.facets, NltfDisplayedFiltersFacetsType0): + elif isinstance(self.facets, NltfDisplayedFiltersFacets): facets = self.facets.to_dict() else: facets = self.facets @@ -51,7 +43,7 @@ def to_dict(self) -> dict[str, Any]: filters: dict[str, Any] | None | Unset if isinstance(self.filters, Unset): filters = UNSET - elif isinstance(self.filters, NltfDisplayedFiltersFiltersType0): + elif isinstance(self.filters, NltfDisplayedFiltersFilters): filters = self.filters.to_dict() else: filters = self.filters @@ -68,18 +60,12 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - from ..models.nltf_displayed_filters_facets_type_0 import ( - NltfDisplayedFiltersFacetsType0, - ) - from ..models.nltf_displayed_filters_filters_type_0 import ( - NltfDisplayedFiltersFiltersType0, - ) + from ..models.nltf_displayed_filters_facets import NltfDisplayedFiltersFacets + from ..models.nltf_displayed_filters_filters import NltfDisplayedFiltersFilters d = dict(src_dict) - def _parse_facets( - data: object, - ) -> NltfDisplayedFiltersFacetsType0 | None | Unset: + def _parse_facets(data: object) -> NltfDisplayedFiltersFacets | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -87,18 +73,16 @@ def _parse_facets( try: if not isinstance(data, dict): raise TypeError() - facets_type_0 = NltfDisplayedFiltersFacetsType0.from_dict(data) + facets_type_0 = NltfDisplayedFiltersFacets.from_dict(data) return facets_type_0 except (TypeError, ValueError, AttributeError, KeyError): pass - return cast(NltfDisplayedFiltersFacetsType0 | None | Unset, data) + return cast(NltfDisplayedFiltersFacets | None | Unset, data) facets = _parse_facets(d.pop("facets", UNSET)) - def _parse_filters( - data: object, - ) -> NltfDisplayedFiltersFiltersType0 | None | Unset: + def _parse_filters(data: object) -> NltfDisplayedFiltersFilters | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -106,12 +90,12 @@ def _parse_filters( try: if not isinstance(data, dict): raise TypeError() - filters_type_0 = NltfDisplayedFiltersFiltersType0.from_dict(data) + filters_type_0 = NltfDisplayedFiltersFilters.from_dict(data) return filters_type_0 except (TypeError, ValueError, AttributeError, KeyError): pass - return cast(NltfDisplayedFiltersFiltersType0 | None | Unset, data) + return cast(NltfDisplayedFiltersFilters | None | Unset, data) filters = _parse_filters(d.pop("filters", UNSET)) diff --git a/pythonik/assets/models/get_portfolios_response_default.py b/pythonik/search/models/nltf_displayed_filters_facets.py similarity index 81% rename from pythonik/assets/models/get_portfolios_response_default.py rename to pythonik/search/models/nltf_displayed_filters_facets.py index 47cf1733..74d0e62a 100644 --- a/pythonik/assets/models/get_portfolios_response_default.py +++ b/pythonik/search/models/nltf_displayed_filters_facets.py @@ -6,11 +6,11 @@ from attrs import define as _attrs_define from attrs import field as _attrs_field -T = TypeVar("T", bound="GetPortfoliosResponseDefault") +T = TypeVar("T", bound="NltfDisplayedFiltersFacets") @_attrs_define -class GetPortfoliosResponseDefault: +class NltfDisplayedFiltersFacets: """ """ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -25,10 +25,10 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - get_portfolios_response_default = cls() + nltf_displayed_filters_facets = cls() - get_portfolios_response_default.additional_properties = d - return get_portfolios_response_default + nltf_displayed_filters_facets.additional_properties = d + return nltf_displayed_filters_facets @property def additional_keys(self) -> list[str]: diff --git a/pythonik/search/models/nltf_displayed_filters_facets_type_0.py b/pythonik/search/models/nltf_displayed_filters_facets_type_0.py deleted file mode 100644 index 0ca533bc..00000000 --- a/pythonik/search/models/nltf_displayed_filters_facets_type_0.py +++ /dev/null @@ -1,73 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, cast - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -T = TypeVar("T", bound="NltfDisplayedFiltersFacetsType0") - - -@_attrs_define -class NltfDisplayedFiltersFacetsType0: - """ """ - - additional_properties: dict[str, list[float | str]] = _attrs_field( - init=False, factory=dict - ) - - def to_dict(self) -> dict[str, Any]: - - field_dict: dict[str, Any] = {} - for prop_name, prop in self.additional_properties.items(): - field_dict[prop_name] = [] - for additional_property_item_data in prop: - additional_property_item: float | str - additional_property_item = additional_property_item_data - field_dict[prop_name].append(additional_property_item) - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - nltf_displayed_filters_facets_type_0 = cls() - - additional_properties = {} - for prop_name, prop_dict in d.items(): - additional_property = [] - _additional_property = prop_dict - for additional_property_item_data in _additional_property: - - def _parse_additional_property_item(data: object) -> float | str: - return cast(float | str, data) - - additional_property_item = _parse_additional_property_item( - additional_property_item_data - ) - - additional_property.append(additional_property_item) - - additional_properties[prop_name] = additional_property - - nltf_displayed_filters_facets_type_0.additional_properties = ( - additional_properties - ) - return nltf_displayed_filters_facets_type_0 - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> list[float | str]: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: list[float | str]) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/assets/models/post_portfolios_response_default.py b/pythonik/search/models/nltf_displayed_filters_filters.py similarity index 80% rename from pythonik/assets/models/post_portfolios_response_default.py rename to pythonik/search/models/nltf_displayed_filters_filters.py index 6196efd9..0cfeaa69 100644 --- a/pythonik/assets/models/post_portfolios_response_default.py +++ b/pythonik/search/models/nltf_displayed_filters_filters.py @@ -6,11 +6,11 @@ from attrs import define as _attrs_define from attrs import field as _attrs_field -T = TypeVar("T", bound="PostPortfoliosResponseDefault") +T = TypeVar("T", bound="NltfDisplayedFiltersFilters") @_attrs_define -class PostPortfoliosResponseDefault: +class NltfDisplayedFiltersFilters: """ """ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -25,10 +25,10 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - post_portfolios_response_default = cls() + nltf_displayed_filters_filters = cls() - post_portfolios_response_default.additional_properties = d - return post_portfolios_response_default + nltf_displayed_filters_filters.additional_properties = d + return nltf_displayed_filters_filters @property def additional_keys(self) -> list[str]: diff --git a/pythonik/search/models/nltf_displayed_filters_filters_type_0.py b/pythonik/search/models/nltf_displayed_filters_filters_type_0.py deleted file mode 100644 index abadc593..00000000 --- a/pythonik/search/models/nltf_displayed_filters_filters_type_0.py +++ /dev/null @@ -1,73 +0,0 @@ -from __future__ import annotations - -from collections.abc import Mapping -from typing import Any, TypeVar, cast - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -T = TypeVar("T", bound="NltfDisplayedFiltersFiltersType0") - - -@_attrs_define -class NltfDisplayedFiltersFiltersType0: - """ """ - - additional_properties: dict[str, list[float | str]] = _attrs_field( - init=False, factory=dict - ) - - def to_dict(self) -> dict[str, Any]: - - field_dict: dict[str, Any] = {} - for prop_name, prop in self.additional_properties.items(): - field_dict[prop_name] = [] - for additional_property_item_data in prop: - additional_property_item: float | str - additional_property_item = additional_property_item_data - field_dict[prop_name].append(additional_property_item) - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - nltf_displayed_filters_filters_type_0 = cls() - - additional_properties = {} - for prop_name, prop_dict in d.items(): - additional_property = [] - _additional_property = prop_dict - for additional_property_item_data in _additional_property: - - def _parse_additional_property_item(data: object) -> float | str: - return cast(float | str, data) - - additional_property_item = _parse_additional_property_item( - additional_property_item_data - ) - - additional_property.append(additional_property_item) - - additional_properties[prop_name] = additional_property - - nltf_displayed_filters_filters_type_0.additional_properties = ( - additional_properties - ) - return nltf_displayed_filters_filters_type_0 - - @property - def additional_keys(self) -> list[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> list[float | str]: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: list[float | str]) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/pythonik/search/models/nltf_parse_request.py b/pythonik/search/models/nltf_parse_request.py new file mode 100644 index 00000000..eb6fede2 --- /dev/null +++ b/pythonik/search/models/nltf_parse_request.py @@ -0,0 +1,101 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar, cast + +from attrs import define as _attrs_define +from attrs import field as _attrs_field + +from ..types import UNSET, Unset + +if TYPE_CHECKING: + from ..models.nltf_context import NltfContext + + +T = TypeVar("T", bound="NltfParseRequest") + + +@_attrs_define +class NltfParseRequest: + """ + Attributes: + query (str): + context (NltfContext | None | Unset): + """ + + query: str + context: NltfContext | None | Unset = UNSET + additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + from ..models.nltf_context import NltfContext + + query = self.query + + context: dict[str, Any] | None | Unset + if isinstance(self.context, Unset): + context = UNSET + elif isinstance(self.context, NltfContext): + context = self.context.to_dict() + else: + context = self.context + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update( + { + "query": query, + } + ) + if context is not UNSET: + field_dict["context"] = context + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.nltf_context import NltfContext + + d = dict(src_dict) + query = d.pop("query") + + def _parse_context(data: object) -> NltfContext | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, dict): + raise TypeError() + context_type_1 = NltfContext.from_dict(data) + + return context_type_1 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(NltfContext | None | Unset, data) + + context = _parse_context(d.pop("context", UNSET)) + + nltf_parse_request = cls( + query=query, + context=context, + ) + + nltf_parse_request.additional_properties = d + return nltf_parse_request + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/pythonik/search/models/search_criteria.py b/pythonik/search/models/search_criteria.py new file mode 100644 index 00000000..c31b08d4 --- /dev/null +++ b/pythonik/search/models/search_criteria.py @@ -0,0 +1,402 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar, cast + +from attrs import define as _attrs_define +from attrs import field as _attrs_field + +from ..types import UNSET, Unset + +if TYPE_CHECKING: + from ..models.facet_filter import FacetFilter + from ..models.search_criteria_filter import SearchCriteriaFilter + from ..models.sort_field import SortField + + +T = TypeVar("T", bound="SearchCriteria") + + +@_attrs_define +class SearchCriteria: + """ + Attributes: + doc_types (list[str] | None | Unset): + exclude_fields (list[str] | None | Unset): + facets (list[str] | None | Unset): + facets_filters (list[FacetFilter] | None | Unset): + filter_ (None | SearchCriteriaFilter | Unset): + include_fields (list[str] | None | Unset): + metadata_view_id (None | str | Unset): + query (None | str | Unset): + search_after (list[Any] | None | Unset): Infinite-scroll pagination key (replaces the deprecated scroll API). A + list of sort keys taken from the `_sort` of the last object of the previous response. + search_fields (list[str] | None | Unset): + sort (list[SortField] | None | Unset): + """ + + doc_types: list[str] | None | Unset = UNSET + exclude_fields: list[str] | None | Unset = UNSET + facets: list[str] | None | Unset = UNSET + facets_filters: list[FacetFilter] | None | Unset = UNSET + filter_: None | SearchCriteriaFilter | Unset = UNSET + include_fields: list[str] | None | Unset = UNSET + metadata_view_id: None | str | Unset = UNSET + query: None | str | Unset = UNSET + search_after: list[Any] | None | Unset = UNSET + search_fields: list[str] | None | Unset = UNSET + sort: list[SortField] | None | Unset = UNSET + additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + from ..models.search_criteria_filter import SearchCriteriaFilter + + doc_types: list[str] | None | Unset + if isinstance(self.doc_types, Unset): + doc_types = UNSET + elif isinstance(self.doc_types, list): + doc_types = self.doc_types + + else: + doc_types = self.doc_types + + exclude_fields: list[str] | None | Unset + if isinstance(self.exclude_fields, Unset): + exclude_fields = UNSET + elif isinstance(self.exclude_fields, list): + exclude_fields = self.exclude_fields + + else: + exclude_fields = self.exclude_fields + + facets: list[str] | None | Unset + if isinstance(self.facets, Unset): + facets = UNSET + elif isinstance(self.facets, list): + facets = self.facets + + else: + facets = self.facets + + facets_filters: list[dict[str, Any]] | None | Unset + if isinstance(self.facets_filters, Unset): + facets_filters = UNSET + elif isinstance(self.facets_filters, list): + facets_filters = [] + for facets_filters_type_0_item_data in self.facets_filters: + facets_filters_type_0_item = facets_filters_type_0_item_data.to_dict() + facets_filters.append(facets_filters_type_0_item) + + else: + facets_filters = self.facets_filters + + filter_: dict[str, Any] | None | Unset + if isinstance(self.filter_, Unset): + filter_ = UNSET + elif isinstance(self.filter_, SearchCriteriaFilter): + filter_ = self.filter_.to_dict() + else: + filter_ = self.filter_ + + include_fields: list[str] | None | Unset + if isinstance(self.include_fields, Unset): + include_fields = UNSET + elif isinstance(self.include_fields, list): + include_fields = self.include_fields + + else: + include_fields = self.include_fields + + metadata_view_id: None | str | Unset + if isinstance(self.metadata_view_id, Unset): + metadata_view_id = UNSET + else: + metadata_view_id = self.metadata_view_id + + query: None | str | Unset + if isinstance(self.query, Unset): + query = UNSET + else: + query = self.query + + search_after: list[Any] | None | Unset + if isinstance(self.search_after, Unset): + search_after = UNSET + elif isinstance(self.search_after, list): + search_after = self.search_after + + else: + search_after = self.search_after + + search_fields: list[str] | None | Unset + if isinstance(self.search_fields, Unset): + search_fields = UNSET + elif isinstance(self.search_fields, list): + search_fields = self.search_fields + + else: + search_fields = self.search_fields + + sort: list[dict[str, Any]] | None | Unset + if isinstance(self.sort, Unset): + sort = UNSET + elif isinstance(self.sort, list): + sort = [] + for sort_type_0_item_data in self.sort: + sort_type_0_item = sort_type_0_item_data.to_dict() + sort.append(sort_type_0_item) + + else: + sort = self.sort + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if doc_types is not UNSET: + field_dict["doc_types"] = doc_types + if exclude_fields is not UNSET: + field_dict["exclude_fields"] = exclude_fields + if facets is not UNSET: + field_dict["facets"] = facets + if facets_filters is not UNSET: + field_dict["facets_filters"] = facets_filters + if filter_ is not UNSET: + field_dict["filter"] = filter_ + if include_fields is not UNSET: + field_dict["include_fields"] = include_fields + if metadata_view_id is not UNSET: + field_dict["metadata_view_id"] = metadata_view_id + if query is not UNSET: + field_dict["query"] = query + if search_after is not UNSET: + field_dict["search_after"] = search_after + if search_fields is not UNSET: + field_dict["search_fields"] = search_fields + if sort is not UNSET: + field_dict["sort"] = sort + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.facet_filter import FacetFilter + from ..models.search_criteria_filter import SearchCriteriaFilter + from ..models.sort_field import SortField + + d = dict(src_dict) + + def _parse_doc_types(data: object) -> list[str] | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, list): + raise TypeError() + doc_types_type_0 = cast(list[str], data) + + return doc_types_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(list[str] | None | Unset, data) + + doc_types = _parse_doc_types(d.pop("doc_types", UNSET)) + + def _parse_exclude_fields(data: object) -> list[str] | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, list): + raise TypeError() + exclude_fields_type_0 = cast(list[str], data) + + return exclude_fields_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(list[str] | None | Unset, data) + + exclude_fields = _parse_exclude_fields(d.pop("exclude_fields", UNSET)) + + def _parse_facets(data: object) -> list[str] | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, list): + raise TypeError() + facets_type_0 = cast(list[str], data) + + return facets_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(list[str] | None | Unset, data) + + facets = _parse_facets(d.pop("facets", UNSET)) + + def _parse_facets_filters(data: object) -> list[FacetFilter] | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, list): + raise TypeError() + facets_filters_type_0 = [] + _facets_filters_type_0 = data + for facets_filters_type_0_item_data in _facets_filters_type_0: + facets_filters_type_0_item = FacetFilter.from_dict( + facets_filters_type_0_item_data + ) + + facets_filters_type_0.append(facets_filters_type_0_item) + + return facets_filters_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(list[FacetFilter] | None | Unset, data) + + facets_filters = _parse_facets_filters(d.pop("facets_filters", UNSET)) + + def _parse_filter_(data: object) -> None | SearchCriteriaFilter | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, dict): + raise TypeError() + filter_type_1 = SearchCriteriaFilter.from_dict(data) + + return filter_type_1 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(None | SearchCriteriaFilter | Unset, data) + + filter_ = _parse_filter_(d.pop("filter", UNSET)) + + def _parse_include_fields(data: object) -> list[str] | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, list): + raise TypeError() + include_fields_type_0 = cast(list[str], data) + + return include_fields_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(list[str] | None | Unset, data) + + include_fields = _parse_include_fields(d.pop("include_fields", UNSET)) + + def _parse_metadata_view_id(data: object) -> None | str | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(None | str | Unset, data) + + metadata_view_id = _parse_metadata_view_id(d.pop("metadata_view_id", UNSET)) + + def _parse_query(data: object) -> None | str | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(None | str | Unset, data) + + query = _parse_query(d.pop("query", UNSET)) + + def _parse_search_after(data: object) -> list[Any] | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, list): + raise TypeError() + search_after_type_0 = cast(list[Any], data) + + return search_after_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(list[Any] | None | Unset, data) + + search_after = _parse_search_after(d.pop("search_after", UNSET)) + + def _parse_search_fields(data: object) -> list[str] | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, list): + raise TypeError() + search_fields_type_0 = cast(list[str], data) + + return search_fields_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(list[str] | None | Unset, data) + + search_fields = _parse_search_fields(d.pop("search_fields", UNSET)) + + def _parse_sort(data: object) -> list[SortField] | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, list): + raise TypeError() + sort_type_0 = [] + _sort_type_0 = data + for sort_type_0_item_data in _sort_type_0: + sort_type_0_item = SortField.from_dict(sort_type_0_item_data) + + sort_type_0.append(sort_type_0_item) + + return sort_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(list[SortField] | None | Unset, data) + + sort = _parse_sort(d.pop("sort", UNSET)) + + search_criteria = cls( + doc_types=doc_types, + exclude_fields=exclude_fields, + facets=facets, + facets_filters=facets_filters, + filter_=filter_, + include_fields=include_fields, + metadata_view_id=metadata_view_id, + query=query, + search_after=search_after, + search_fields=search_fields, + sort=sort, + ) + + search_criteria.additional_properties = d + return search_criteria + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/pythonik/search/models/search_criteria_filter.py b/pythonik/search/models/search_criteria_filter.py new file mode 100644 index 00000000..fb60281e --- /dev/null +++ b/pythonik/search/models/search_criteria_filter.py @@ -0,0 +1,150 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar, cast + +from attrs import define as _attrs_define +from attrs import field as _attrs_field + +from ..models.search_criteria_filter_operator import SearchCriteriaFilterOperator +from ..types import UNSET, Unset + +if TYPE_CHECKING: + from ..models.search_term import SearchTerm + + +T = TypeVar("T", bound="SearchCriteriaFilter") + + +@_attrs_define +class SearchCriteriaFilter: + """ + Attributes: + operator (SearchCriteriaFilterOperator): + filters (list[SearchCriteriaFilter] | None | Unset): + terms (list[SearchTerm] | None | Unset): + """ + + operator: SearchCriteriaFilterOperator + filters: list[SearchCriteriaFilter] | None | Unset = UNSET + terms: list[SearchTerm] | None | Unset = UNSET + additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + operator = self.operator.value + + filters: list[dict[str, Any]] | None | Unset + if isinstance(self.filters, Unset): + filters = UNSET + elif isinstance(self.filters, list): + filters = [] + for filters_type_0_item_data in self.filters: + filters_type_0_item = filters_type_0_item_data.to_dict() + filters.append(filters_type_0_item) + + else: + filters = self.filters + + terms: list[dict[str, Any]] | None | Unset + if isinstance(self.terms, Unset): + terms = UNSET + elif isinstance(self.terms, list): + terms = [] + for terms_type_0_item_data in self.terms: + terms_type_0_item = terms_type_0_item_data.to_dict() + terms.append(terms_type_0_item) + + else: + terms = self.terms + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update( + { + "operator": operator, + } + ) + if filters is not UNSET: + field_dict["filters"] = filters + if terms is not UNSET: + field_dict["terms"] = terms + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.search_term import SearchTerm + + d = dict(src_dict) + operator = SearchCriteriaFilterOperator(d.pop("operator")) + + def _parse_filters(data: object) -> list[SearchCriteriaFilter] | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, list): + raise TypeError() + filters_type_0 = [] + _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: + filters_type_0_item = SearchCriteriaFilter.from_dict( + filters_type_0_item_data + ) + + filters_type_0.append(filters_type_0_item) + + return filters_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(list[SearchCriteriaFilter] | None | Unset, data) + + filters = _parse_filters(d.pop("filters", UNSET)) + + def _parse_terms(data: object) -> list[SearchTerm] | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, list): + raise TypeError() + terms_type_0 = [] + _terms_type_0 = data + for terms_type_0_item_data in _terms_type_0: + terms_type_0_item = SearchTerm.from_dict(terms_type_0_item_data) + + terms_type_0.append(terms_type_0_item) + + return terms_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(list[SearchTerm] | None | Unset, data) + + terms = _parse_terms(d.pop("terms", UNSET)) + + search_criteria_filter = cls( + operator=operator, + filters=filters, + terms=terms, + ) + + search_criteria_filter.additional_properties = d + return search_criteria_filter + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/pythonik/search/models/search_criteria_filter_operator.py b/pythonik/search/models/search_criteria_filter_operator.py new file mode 100644 index 00000000..24fcc162 --- /dev/null +++ b/pythonik/search/models/search_criteria_filter_operator.py @@ -0,0 +1,10 @@ +from enum import Enum + + +class SearchCriteriaFilterOperator(str, Enum): + AND = "AND" + NOT = "NOT" + OR = "OR" + + def __str__(self) -> str: + return str(self.value) diff --git a/pythonik/assets/models/theme_colors.py b/pythonik/search/models/search_range_filter.py similarity index 53% rename from pythonik/assets/models/theme_colors.py rename to pythonik/search/models/search_range_filter.py index 669ec74a..83b555b0 100644 --- a/pythonik/assets/models/theme_colors.py +++ b/pythonik/search/models/search_range_filter.py @@ -8,51 +8,51 @@ from ..types import UNSET, Unset -T = TypeVar("T", bound="ThemeColors") +T = TypeVar("T", bound="SearchRangeFilter") @_attrs_define -class ThemeColors: +class SearchRangeFilter: """ Attributes: - primary (None | str | Unset): - secondary (None | str | Unset): - text (None | str | Unset): + max_ (None | str | Unset): + min_ (None | str | Unset): + timezone (None | str | Unset): Format: +02:00. Results returned in UTC by default """ - primary: None | str | Unset = UNSET - secondary: None | str | Unset = UNSET - text: None | str | Unset = UNSET + max_: None | str | Unset = UNSET + min_: None | str | Unset = UNSET + timezone: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - primary: None | str | Unset - if isinstance(self.primary, Unset): - primary = UNSET + max_: None | str | Unset + if isinstance(self.max_, Unset): + max_ = UNSET else: - primary = self.primary + max_ = self.max_ - secondary: None | str | Unset - if isinstance(self.secondary, Unset): - secondary = UNSET + min_: None | str | Unset + if isinstance(self.min_, Unset): + min_ = UNSET else: - secondary = self.secondary + min_ = self.min_ - text: None | str | Unset - if isinstance(self.text, Unset): - text = UNSET + timezone: None | str | Unset + if isinstance(self.timezone, Unset): + timezone = UNSET else: - text = self.text + timezone = self.timezone field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) - if primary is not UNSET: - field_dict["primary"] = primary - if secondary is not UNSET: - field_dict["secondary"] = secondary - if text is not UNSET: - field_dict["text"] = text + if max_ is not UNSET: + field_dict["max"] = max_ + if min_ is not UNSET: + field_dict["min"] = min_ + if timezone is not UNSET: + field_dict["timezone"] = timezone return field_dict @@ -60,41 +60,41 @@ def to_dict(self) -> dict[str, Any]: def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - def _parse_primary(data: object) -> None | str | Unset: + def _parse_max_(data: object) -> None | str | Unset: if data is None: return data if isinstance(data, Unset): return data return cast(None | str | Unset, data) - primary = _parse_primary(d.pop("primary", UNSET)) + max_ = _parse_max_(d.pop("max", UNSET)) - def _parse_secondary(data: object) -> None | str | Unset: + def _parse_min_(data: object) -> None | str | Unset: if data is None: return data if isinstance(data, Unset): return data return cast(None | str | Unset, data) - secondary = _parse_secondary(d.pop("secondary", UNSET)) + min_ = _parse_min_(d.pop("min", UNSET)) - def _parse_text(data: object) -> None | str | Unset: + def _parse_timezone(data: object) -> None | str | Unset: if data is None: return data if isinstance(data, Unset): return data return cast(None | str | Unset, data) - text = _parse_text(d.pop("text", UNSET)) + timezone = _parse_timezone(d.pop("timezone", UNSET)) - theme_colors = cls( - primary=primary, - secondary=secondary, - text=text, + search_range_filter = cls( + max_=max_, + min_=min_, + timezone=timezone, ) - theme_colors.additional_properties = d - return theme_colors + search_range_filter.additional_properties = d + return search_range_filter @property def additional_keys(self) -> list[str]: diff --git a/pythonik/search/models/search_suggest_request.py b/pythonik/search/models/search_suggest_request.py new file mode 100644 index 00000000..120aa0f1 --- /dev/null +++ b/pythonik/search/models/search_suggest_request.py @@ -0,0 +1,122 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any, TypeVar, cast + +from attrs import define as _attrs_define +from attrs import field as _attrs_field + +from ..types import UNSET, Unset + +T = TypeVar("T", bound="SearchSuggestRequest") + + +@_attrs_define +class SearchSuggestRequest: + """ + Attributes: + field_name (str): + query (str): + doc_types (list[str] | None | Unset): + metadata_view_id (None | str | Unset): + """ + + field_name: str + query: str + doc_types: list[str] | None | Unset = UNSET + metadata_view_id: None | str | Unset = UNSET + additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + field_name = self.field_name + + query = self.query + + doc_types: list[str] | None | Unset + if isinstance(self.doc_types, Unset): + doc_types = UNSET + elif isinstance(self.doc_types, list): + doc_types = self.doc_types + + else: + doc_types = self.doc_types + + metadata_view_id: None | str | Unset + if isinstance(self.metadata_view_id, Unset): + metadata_view_id = UNSET + else: + metadata_view_id = self.metadata_view_id + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update( + { + "field_name": field_name, + "query": query, + } + ) + if doc_types is not UNSET: + field_dict["doc_types"] = doc_types + if metadata_view_id is not UNSET: + field_dict["metadata_view_id"] = metadata_view_id + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + field_name = d.pop("field_name") + + query = d.pop("query") + + def _parse_doc_types(data: object) -> list[str] | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, list): + raise TypeError() + doc_types_type_0 = cast(list[str], data) + + return doc_types_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(list[str] | None | Unset, data) + + doc_types = _parse_doc_types(d.pop("doc_types", UNSET)) + + def _parse_metadata_view_id(data: object) -> None | str | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(None | str | Unset, data) + + metadata_view_id = _parse_metadata_view_id(d.pop("metadata_view_id", UNSET)) + + search_suggest_request = cls( + field_name=field_name, + query=query, + doc_types=doc_types, + metadata_view_id=metadata_view_id, + ) + + search_suggest_request.additional_properties = d + return search_suggest_request + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/pythonik/search/models/search_term.py b/pythonik/search/models/search_term.py new file mode 100644 index 00000000..b7b47587 --- /dev/null +++ b/pythonik/search/models/search_term.py @@ -0,0 +1,192 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar, cast + +from attrs import define as _attrs_define +from attrs import field as _attrs_field + +from ..types import UNSET, Unset + +if TYPE_CHECKING: + from ..models.search_range_filter import SearchRangeFilter + + +T = TypeVar("T", bound="SearchTerm") + + +@_attrs_define +class SearchTerm: + """ + Attributes: + name (str): + exists (bool | None | Unset): + missing (bool | None | Unset): + range_ (None | SearchRangeFilter | Unset): + value (None | str | Unset): + value_in (list[str] | None | Unset): + """ + + name: str + exists: bool | None | Unset = UNSET + missing: bool | None | Unset = UNSET + range_: None | SearchRangeFilter | Unset = UNSET + value: None | str | Unset = UNSET + value_in: list[str] | None | Unset = UNSET + additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + from ..models.search_range_filter import SearchRangeFilter + + name = self.name + + exists: bool | None | Unset + if isinstance(self.exists, Unset): + exists = UNSET + else: + exists = self.exists + + missing: bool | None | Unset + if isinstance(self.missing, Unset): + missing = UNSET + else: + missing = self.missing + + range_: dict[str, Any] | None | Unset + if isinstance(self.range_, Unset): + range_ = UNSET + elif isinstance(self.range_, SearchRangeFilter): + range_ = self.range_.to_dict() + else: + range_ = self.range_ + + value: None | str | Unset + if isinstance(self.value, Unset): + value = UNSET + else: + value = self.value + + value_in: list[str] | None | Unset + if isinstance(self.value_in, Unset): + value_in = UNSET + elif isinstance(self.value_in, list): + value_in = self.value_in + + else: + value_in = self.value_in + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update( + { + "name": name, + } + ) + if exists is not UNSET: + field_dict["exists"] = exists + if missing is not UNSET: + field_dict["missing"] = missing + if range_ is not UNSET: + field_dict["range"] = range_ + if value is not UNSET: + field_dict["value"] = value + if value_in is not UNSET: + field_dict["value_in"] = value_in + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.search_range_filter import SearchRangeFilter + + d = dict(src_dict) + name = d.pop("name") + + def _parse_exists(data: object) -> bool | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(bool | None | Unset, data) + + exists = _parse_exists(d.pop("exists", UNSET)) + + def _parse_missing(data: object) -> bool | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(bool | None | Unset, data) + + missing = _parse_missing(d.pop("missing", UNSET)) + + def _parse_range_(data: object) -> None | SearchRangeFilter | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, dict): + raise TypeError() + range_type_1 = SearchRangeFilter.from_dict(data) + + return range_type_1 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(None | SearchRangeFilter | Unset, data) + + range_ = _parse_range_(d.pop("range", UNSET)) + + def _parse_value(data: object) -> None | str | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(None | str | Unset, data) + + value = _parse_value(d.pop("value", UNSET)) + + def _parse_value_in(data: object) -> list[str] | None | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + try: + if not isinstance(data, list): + raise TypeError() + value_in_type_0 = cast(list[str], data) + + return value_in_type_0 + except (TypeError, ValueError, AttributeError, KeyError): + pass + return cast(list[str] | None | Unset, data) + + value_in = _parse_value_in(d.pop("value_in", UNSET)) + + search_term = cls( + name=name, + exists=exists, + missing=missing, + range_=range_, + value=value, + value_in=value_in, + ) + + search_term.additional_properties = d + return search_term + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/pythonik/assets/models/reindex_portfolio_schema.py b/pythonik/search/models/sort_field.py similarity index 57% rename from pythonik/assets/models/reindex_portfolio_schema.py rename to pythonik/search/models/sort_field.py index 63c47a65..806997cc 100644 --- a/pythonik/assets/models/reindex_portfolio_schema.py +++ b/pythonik/search/models/sort_field.py @@ -8,55 +8,63 @@ from ..types import UNSET, Unset -T = TypeVar("T", bound="ReindexPortfolioSchema") +T = TypeVar("T", bound="SortField") @_attrs_define -class ReindexPortfolioSchema: +class SortField: """ Attributes: - sync_to_another_dc (bool | None | Unset): + name (str): + order (None | str | Unset): """ - sync_to_another_dc: bool | None | Unset = UNSET + name: str + order: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - sync_to_another_dc: bool | None | Unset - if isinstance(self.sync_to_another_dc, Unset): - sync_to_another_dc = UNSET + name = self.name + + order: None | str | Unset + if isinstance(self.order, Unset): + order = UNSET else: - sync_to_another_dc = self.sync_to_another_dc + order = self.order field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) - field_dict.update({}) - if sync_to_another_dc is not UNSET: - field_dict["sync_to_another_dc"] = sync_to_another_dc + field_dict.update( + { + "name": name, + } + ) + if order is not UNSET: + field_dict["order"] = order return field_dict @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) + name = d.pop("name") - def _parse_sync_to_another_dc(data: object) -> bool | None | Unset: + def _parse_order(data: object) -> None | str | Unset: if data is None: return data if isinstance(data, Unset): return data - return cast(bool | None | Unset, data) + return cast(None | str | Unset, data) - sync_to_another_dc = _parse_sync_to_another_dc( - d.pop("sync_to_another_dc", UNSET) - ) + order = _parse_order(d.pop("order", UNSET)) - reindex_portfolio_schema = cls( - sync_to_another_dc=sync_to_another_dc, + sort_field = cls( + name=name, + order=order, ) - reindex_portfolio_schema.additional_properties = d - return reindex_portfolio_schema + sort_field.additional_properties = d + return sort_field @property def additional_keys(self) -> list[str]: diff --git a/pythonik/assets/models/portfolio_config.py b/pythonik/search/models/validation_error.py similarity index 52% rename from pythonik/assets/models/portfolio_config.py rename to pythonik/search/models/validation_error.py index 8cd96758..cb0708f3 100644 --- a/pythonik/assets/models/portfolio_config.py +++ b/pythonik/search/models/validation_error.py @@ -1,36 +1,46 @@ from __future__ import annotations from collections.abc import Mapping -from typing import TYPE_CHECKING, Any, TypeVar +from typing import Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field -if TYPE_CHECKING: - from ..models.theme import Theme - - -T = TypeVar("T", bound="PortfolioConfig") +T = TypeVar("T", bound="ValidationError") @_attrs_define -class PortfolioConfig: +class ValidationError: """ Attributes: - theme (Theme): + loc (list[int | str]): + msg (str): + type_ (str): """ - theme: Theme + loc: list[int | str] + msg: str + type_: str additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - theme = self.theme.to_dict() + loc = [] + for loc_item_data in self.loc: + loc_item: int | str + loc_item = loc_item_data + loc.append(loc_item) + + msg = self.msg + + type_ = self.type_ field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update( { - "theme": theme, + "loc": loc, + "msg": msg, + "type": type_, } ) @@ -38,17 +48,30 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - from ..models.theme import Theme - d = dict(src_dict) - theme = Theme.from_dict(d.pop("theme")) + loc = [] + _loc = d.pop("loc") + for loc_item_data in _loc: + + def _parse_loc_item(data: object) -> int | str: + return cast(int | str, data) + + loc_item = _parse_loc_item(loc_item_data) + + loc.append(loc_item) + + msg = d.pop("msg") + + type_ = d.pop("type") - portfolio_config = cls( - theme=theme, + validation_error = cls( + loc=loc, + msg=msg, + type_=type_, ) - portfolio_config.additional_properties = d - return portfolio_config + validation_error.additional_properties = d + return validation_error @property def additional_keys(self) -> list[str]: