athena-intelligence 0.1.84__tar.gz → 0.1.86__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/PKG-INFO +1 -1
  2. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/pyproject.toml +1 -1
  3. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/__init__.py +2 -0
  4. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/core/client_wrapper.py +1 -1
  5. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/tools/client.py +139 -4
  6. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/__init__.py +2 -0
  7. athena_intelligence-0.1.86/src/athena/types/athena_document_v_2_out.py +29 -0
  8. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/model.py +4 -0
  9. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/query_model.py +1 -0
  10. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/README.md +0 -0
  11. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/base_client.py +0 -0
  12. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/chain/__init__.py +0 -0
  13. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/chain/client.py +0 -0
  14. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/client.py +0 -0
  15. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/core/__init__.py +0 -0
  16. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/core/api_error.py +0 -0
  17. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/core/datetime_utils.py +0 -0
  18. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/core/file.py +0 -0
  19. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/core/http_client.py +0 -0
  20. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/core/jsonable_encoder.py +0 -0
  21. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/core/pydantic_utilities.py +0 -0
  22. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/core/query_encoder.py +0 -0
  23. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/core/remove_none_from_dict.py +0 -0
  24. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/core/request_options.py +0 -0
  25. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/dataset/__init__.py +0 -0
  26. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/dataset/client.py +0 -0
  27. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/environment.py +0 -0
  28. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/errors/__init__.py +0 -0
  29. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/errors/internal_server_error.py +0 -0
  30. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/errors/not_found_error.py +0 -0
  31. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/errors/unprocessable_entity_error.py +0 -0
  32. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/errors/unsupported_media_type_error.py +0 -0
  33. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/message/__init__.py +0 -0
  34. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/message/client.py +0 -0
  35. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/polling_message_client.py +0 -0
  36. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/py.typed +0 -0
  37. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/query/__init__.py +0 -0
  38. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/query/client.py +0 -0
  39. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/report/__init__.py +0 -0
  40. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/report/client.py +0 -0
  41. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/search/__init__.py +0 -0
  42. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/search/client.py +0 -0
  43. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/snippet/__init__.py +0 -0
  44. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/snippet/client.py +0 -0
  45. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/tools/__init__.py +0 -0
  46. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/tools/types/__init__.py +0 -0
  47. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/tools/types/tools_data_frame_request_columns_item.py +0 -0
  48. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/convert_pdf_to_sheet_out.py +0 -0
  49. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/data_frame_parsing_error.py +0 -0
  50. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/data_frame_request_out.py +0 -0
  51. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/data_frame_request_out_columns_item.py +0 -0
  52. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/data_frame_request_out_data_item_item.py +0 -0
  53. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/data_frame_request_out_index_item.py +0 -0
  54. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/data_frame_unknown_format_error.py +0 -0
  55. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/dataset.py +0 -0
  56. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/document.py +0 -0
  57. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/excecute_tool_first_workflow_out.py +0 -0
  58. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/file_data_response.py +0 -0
  59. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/file_fetch_error.py +0 -0
  60. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/filter_model.py +0 -0
  61. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/filter_operator.py +0 -0
  62. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/firecrawl_scrape_url_data_reponse_dto.py +0 -0
  63. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/firecrawl_scrape_url_metadata.py +0 -0
  64. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/get_datasets_response.py +0 -0
  65. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/get_snippet_out.py +0 -0
  66. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/get_snippets_response.py +0 -0
  67. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/http_validation_error.py +0 -0
  68. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/langchain_documents_request_out.py +0 -0
  69. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/llm_model.py +0 -0
  70. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/map_reduce_chain_out.py +0 -0
  71. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/message_out.py +0 -0
  72. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/message_out_dto.py +0 -0
  73. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/publish_formats.py +0 -0
  74. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/report.py +0 -0
  75. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/researcher_out.py +0 -0
  76. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/semantic_query_out.py +0 -0
  77. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/snippet.py +0 -0
  78. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/sql_results.py +0 -0
  79. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/status_enum.py +0 -0
  80. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/structured_parse_result.py +0 -0
  81. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/time_dimension_model.py +0 -0
  82. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/tools.py +0 -0
  83. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/upload_documents_out.py +0 -0
  84. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/url_result.py +0 -0
  85. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/validation_error.py +0 -0
  86. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/validation_error_loc_item.py +0 -0
  87. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/types/workflow_status_out.py +0 -0
  88. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/upload/__init__.py +0 -0
  89. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/upload/client.py +0 -0
  90. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/version.py +0 -0
  91. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/workflow/__init__.py +0 -0
  92. {athena_intelligence-0.1.84 → athena_intelligence-0.1.86}/src/athena/workflow/client.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: athena-intelligence
3
- Version: 0.1.84
3
+ Version: 0.1.86
4
4
  Summary: Athena Intelligence Python Library
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "athena-intelligence"
3
- version = "0.1.84"
3
+ version = "0.1.86"
4
4
  description = "Athena Intelligence Python Library"
5
5
  readme = "README.md"
6
6
  authors = []
@@ -1,6 +1,7 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  from .types import (
4
+ AthenaDocumentV2Out,
4
5
  ConvertPdfToSheetOut,
5
6
  DataFrameParsingError,
6
7
  DataFrameRequestOut,
@@ -51,6 +52,7 @@ from .tools import ToolsDataFrameRequestColumnsItem
51
52
  from .version import __version__
52
53
 
53
54
  __all__ = [
55
+ "AthenaDocumentV2Out",
54
56
  "AthenaEnvironment",
55
57
  "ConvertPdfToSheetOut",
56
58
  "DataFrameParsingError",
@@ -17,7 +17,7 @@ class BaseClientWrapper:
17
17
  headers: typing.Dict[str, str] = {
18
18
  "X-Fern-Language": "Python",
19
19
  "X-Fern-SDK-Name": "athena-intelligence",
20
- "X-Fern-SDK-Version": "0.1.84",
20
+ "X-Fern-SDK-Version": "0.1.86",
21
21
  }
22
22
  headers["X-API-KEY"] = self.api_key
23
23
  return headers
@@ -15,6 +15,7 @@ from ..errors.internal_server_error import InternalServerError
15
15
  from ..errors.not_found_error import NotFoundError
16
16
  from ..errors.unprocessable_entity_error import UnprocessableEntityError
17
17
  from ..errors.unsupported_media_type_error import UnsupportedMediaTypeError
18
+ from ..types.athena_document_v_2_out import AthenaDocumentV2Out
18
19
  from ..types.convert_pdf_to_sheet_out import ConvertPdfToSheetOut
19
20
  from ..types.data_frame_parsing_error import DataFrameParsingError
20
21
  from ..types.data_frame_request_out import DataFrameRequestOut
@@ -210,7 +211,7 @@ class ToolsClient:
210
211
  columns: typing.Optional[
211
212
  typing.Union[ToolsDataFrameRequestColumnsItem, typing.Sequence[ToolsDataFrameRequestColumnsItem]]
212
213
  ] = None,
213
- sheet_name: typing.Optional[str] = None,
214
+ sheet_name: typing.Optional[int] = None,
214
215
  separator: typing.Optional[str] = None,
215
216
  request_options: typing.Optional[RequestOptions] = None,
216
217
  ) -> DataFrameRequestOut:
@@ -226,7 +227,7 @@ class ToolsClient:
226
227
  columns : typing.Optional[typing.Union[ToolsDataFrameRequestColumnsItem, typing.Sequence[ToolsDataFrameRequestColumnsItem]]]
227
228
  should be a list of strings or a list of integers
228
229
 
229
- sheet_name : typing.Optional[str]
230
+ sheet_name : typing.Optional[int]
230
231
  only for excel files
231
232
 
232
233
  separator : typing.Optional[str]
@@ -741,6 +742,73 @@ class ToolsClient:
741
742
  raise ApiError(status_code=_response.status_code, body=_response.text)
742
743
  raise ApiError(status_code=_response.status_code, body=_response_json)
743
744
 
745
+ def athena_documents(
746
+ self, *, document_id: str, request_options: typing.Optional[RequestOptions] = None
747
+ ) -> AthenaDocumentV2Out:
748
+ """
749
+ Parameters
750
+ ----------
751
+ document_id : str
752
+
753
+ request_options : typing.Optional[RequestOptions]
754
+ Request-specific configuration.
755
+
756
+ Returns
757
+ -------
758
+ AthenaDocumentV2Out
759
+ Successful Response
760
+
761
+ Examples
762
+ --------
763
+ from athena.client import Athena
764
+
765
+ client = Athena(
766
+ api_key="YOUR_API_KEY",
767
+ )
768
+ client.tools.athena_documents(
769
+ document_id="doc_9249292-d118-42d3-95b4-00eccfe0754f",
770
+ )
771
+ """
772
+ _response = self._client_wrapper.httpx_client.request(
773
+ method="POST",
774
+ url=urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "api/v0/tools/athena-document-v2"),
775
+ params=encode_query(
776
+ jsonable_encoder(
777
+ request_options.get("additional_query_parameters") if request_options is not None else None
778
+ )
779
+ ),
780
+ json=jsonable_encoder({"document_id": document_id})
781
+ if request_options is None or request_options.get("additional_body_parameters") is None
782
+ else {
783
+ **jsonable_encoder({"document_id": document_id}),
784
+ **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
785
+ },
786
+ headers=jsonable_encoder(
787
+ remove_none_from_dict(
788
+ {
789
+ **self._client_wrapper.get_headers(),
790
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
791
+ }
792
+ )
793
+ ),
794
+ timeout=request_options.get("timeout_in_seconds")
795
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
796
+ else self._client_wrapper.get_timeout(),
797
+ retries=0,
798
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
799
+ )
800
+ if 200 <= _response.status_code < 300:
801
+ return pydantic_v1.parse_obj_as(AthenaDocumentV2Out, _response.json()) # type: ignore
802
+ if _response.status_code == 422:
803
+ raise UnprocessableEntityError(
804
+ pydantic_v1.parse_obj_as(HttpValidationError, _response.json()) # type: ignore
805
+ )
806
+ try:
807
+ _response_json = _response.json()
808
+ except JSONDecodeError:
809
+ raise ApiError(status_code=_response.status_code, body=_response.text)
810
+ raise ApiError(status_code=_response.status_code, body=_response_json)
811
+
744
812
 
745
813
  class AsyncToolsClient:
746
814
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -917,7 +985,7 @@ class AsyncToolsClient:
917
985
  columns: typing.Optional[
918
986
  typing.Union[ToolsDataFrameRequestColumnsItem, typing.Sequence[ToolsDataFrameRequestColumnsItem]]
919
987
  ] = None,
920
- sheet_name: typing.Optional[str] = None,
988
+ sheet_name: typing.Optional[int] = None,
921
989
  separator: typing.Optional[str] = None,
922
990
  request_options: typing.Optional[RequestOptions] = None,
923
991
  ) -> DataFrameRequestOut:
@@ -933,7 +1001,7 @@ class AsyncToolsClient:
933
1001
  columns : typing.Optional[typing.Union[ToolsDataFrameRequestColumnsItem, typing.Sequence[ToolsDataFrameRequestColumnsItem]]]
934
1002
  should be a list of strings or a list of integers
935
1003
 
936
- sheet_name : typing.Optional[str]
1004
+ sheet_name : typing.Optional[int]
937
1005
  only for excel files
938
1006
 
939
1007
  separator : typing.Optional[str]
@@ -1447,3 +1515,70 @@ class AsyncToolsClient:
1447
1515
  except JSONDecodeError:
1448
1516
  raise ApiError(status_code=_response.status_code, body=_response.text)
1449
1517
  raise ApiError(status_code=_response.status_code, body=_response_json)
1518
+
1519
+ async def athena_documents(
1520
+ self, *, document_id: str, request_options: typing.Optional[RequestOptions] = None
1521
+ ) -> AthenaDocumentV2Out:
1522
+ """
1523
+ Parameters
1524
+ ----------
1525
+ document_id : str
1526
+
1527
+ request_options : typing.Optional[RequestOptions]
1528
+ Request-specific configuration.
1529
+
1530
+ Returns
1531
+ -------
1532
+ AthenaDocumentV2Out
1533
+ Successful Response
1534
+
1535
+ Examples
1536
+ --------
1537
+ from athena.client import AsyncAthena
1538
+
1539
+ client = AsyncAthena(
1540
+ api_key="YOUR_API_KEY",
1541
+ )
1542
+ await client.tools.athena_documents(
1543
+ document_id="doc_9249292-d118-42d3-95b4-00eccfe0754f",
1544
+ )
1545
+ """
1546
+ _response = await self._client_wrapper.httpx_client.request(
1547
+ method="POST",
1548
+ url=urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "api/v0/tools/athena-document-v2"),
1549
+ params=encode_query(
1550
+ jsonable_encoder(
1551
+ request_options.get("additional_query_parameters") if request_options is not None else None
1552
+ )
1553
+ ),
1554
+ json=jsonable_encoder({"document_id": document_id})
1555
+ if request_options is None or request_options.get("additional_body_parameters") is None
1556
+ else {
1557
+ **jsonable_encoder({"document_id": document_id}),
1558
+ **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
1559
+ },
1560
+ headers=jsonable_encoder(
1561
+ remove_none_from_dict(
1562
+ {
1563
+ **self._client_wrapper.get_headers(),
1564
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
1565
+ }
1566
+ )
1567
+ ),
1568
+ timeout=request_options.get("timeout_in_seconds")
1569
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
1570
+ else self._client_wrapper.get_timeout(),
1571
+ retries=0,
1572
+ max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
1573
+ )
1574
+ if 200 <= _response.status_code < 300:
1575
+ return pydantic_v1.parse_obj_as(AthenaDocumentV2Out, _response.json()) # type: ignore
1576
+ if _response.status_code == 422:
1577
+ raise UnprocessableEntityError(
1578
+ pydantic_v1.parse_obj_as(HttpValidationError, _response.json()) # type: ignore
1579
+ )
1580
+ try:
1581
+ _response_json = _response.json()
1582
+ except JSONDecodeError:
1583
+ raise ApiError(status_code=_response.status_code, body=_response.text)
1584
+ raise ApiError(status_code=_response.status_code, body=_response_json)
@@ -1,5 +1,6 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ from .athena_document_v_2_out import AthenaDocumentV2Out
3
4
  from .convert_pdf_to_sheet_out import ConvertPdfToSheetOut
4
5
  from .data_frame_parsing_error import DataFrameParsingError
5
6
  from .data_frame_request_out import DataFrameRequestOut
@@ -44,6 +45,7 @@ from .validation_error_loc_item import ValidationErrorLocItem
44
45
  from .workflow_status_out import WorkflowStatusOut
45
46
 
46
47
  __all__ = [
48
+ "AthenaDocumentV2Out",
47
49
  "ConvertPdfToSheetOut",
48
50
  "DataFrameParsingError",
49
51
  "DataFrameRequestOut",
@@ -0,0 +1,29 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ from ..core.datetime_utils import serialize_datetime
7
+ from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
8
+
9
+
10
+ class AthenaDocumentV2Out(pydantic_v1.BaseModel):
11
+ output: typing.Dict[str, typing.Any]
12
+
13
+ def json(self, **kwargs: typing.Any) -> str:
14
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
15
+ return super().json(**kwargs_with_defaults)
16
+
17
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
18
+ kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
19
+ kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
20
+
21
+ return deep_union_pydantic_dicts(
22
+ super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
23
+ )
24
+
25
+ class Config:
26
+ frozen = True
27
+ smart_union = True
28
+ extra = pydantic_v1.Extra.allow
29
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -27,6 +27,7 @@ class Model(str, enum.Enum):
27
27
  CLAUDE_3_HAIKU_20240307 = "claude-3-haiku-20240307"
28
28
  CLAUDE_35_SONNET_20240620 = "claude-3-5-sonnet-20240620"
29
29
  GOOGLE_GEMINI_10_PRO_LATEST = "google-gemini-1.0-pro-latest"
30
+ GOOGLE_GEMINI_15_PRO_LATEST = "google-gemini-1.5-pro-latest"
30
31
  DATABRICKS_DBRX = "databricks-dbrx"
31
32
 
32
33
  def visit(
@@ -47,6 +48,7 @@ class Model(str, enum.Enum):
47
48
  claude_3_haiku_20240307: typing.Callable[[], T_Result],
48
49
  claude_35_sonnet_20240620: typing.Callable[[], T_Result],
49
50
  google_gemini_10_pro_latest: typing.Callable[[], T_Result],
51
+ google_gemini_15_pro_latest: typing.Callable[[], T_Result],
50
52
  databricks_dbrx: typing.Callable[[], T_Result],
51
53
  ) -> T_Result:
52
54
  if self is Model.GPT_35_TURBO:
@@ -81,5 +83,7 @@ class Model(str, enum.Enum):
81
83
  return claude_35_sonnet_20240620()
82
84
  if self is Model.GOOGLE_GEMINI_10_PRO_LATEST:
83
85
  return google_gemini_10_pro_latest()
86
+ if self is Model.GOOGLE_GEMINI_15_PRO_LATEST:
87
+ return google_gemini_15_pro_latest()
84
88
  if self is Model.DATABRICKS_DBRX:
85
89
  return databricks_dbrx()
@@ -16,6 +16,7 @@ class QueryModel(pydantic_v1.BaseModel):
16
16
  )
17
17
  dimensions: typing.Optional[typing.List[str]] = None
18
18
  filters: typing.Optional[typing.List[FilterModel]] = None
19
+ order: typing.Optional[typing.Dict[str, typing.Any]] = None
19
20
  limit: typing.Optional[int] = None
20
21
 
21
22
  def json(self, **kwargs: typing.Any) -> str: