athena-intelligence 0.1.111__tar.gz → 0.1.112__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 (48) hide show
  1. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/PKG-INFO +1 -1
  2. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/pyproject.toml +1 -1
  3. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/__init__.py +4 -0
  4. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/core/client_wrapper.py +1 -1
  5. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/tools/client.py +109 -0
  6. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/types/__init__.py +4 -0
  7. athena_intelligence-0.1.112/src/athena/types/document_chunk.py +34 -0
  8. athena_intelligence-0.1.112/src/athena/types/file_chunk_request_out.py +34 -0
  9. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/README.md +0 -0
  10. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/base_client.py +0 -0
  11. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/client.py +0 -0
  12. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/core/__init__.py +0 -0
  13. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/core/api_error.py +0 -0
  14. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/core/datetime_utils.py +0 -0
  15. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/core/file.py +0 -0
  16. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/core/http_client.py +0 -0
  17. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/core/jsonable_encoder.py +0 -0
  18. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/core/pydantic_utilities.py +0 -0
  19. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/core/query_encoder.py +0 -0
  20. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/core/remove_none_from_dict.py +0 -0
  21. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/core/request_options.py +0 -0
  22. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/environment.py +0 -0
  23. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/errors/__init__.py +0 -0
  24. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/errors/bad_request_error.py +0 -0
  25. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/errors/content_too_large_error.py +0 -0
  26. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/errors/internal_server_error.py +0 -0
  27. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/errors/not_found_error.py +0 -0
  28. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/errors/unauthorized_error.py +0 -0
  29. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/errors/unprocessable_entity_error.py +0 -0
  30. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/errors/unsupported_media_type_error.py +0 -0
  31. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/py.typed +0 -0
  32. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/query/__init__.py +0 -0
  33. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/query/client.py +0 -0
  34. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/query/types/__init__.py +0 -0
  35. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/query/types/query_execute_request_database_asset_ids.py +0 -0
  36. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/tools/__init__.py +0 -0
  37. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/tools/types/__init__.py +0 -0
  38. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/tools/types/tools_data_frame_request_columns_item.py +0 -0
  39. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/types/asset_not_found_error.py +0 -0
  40. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/types/data_frame_request_out.py +0 -0
  41. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/types/data_frame_request_out_columns_item.py +0 -0
  42. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/types/data_frame_request_out_data_item_item.py +0 -0
  43. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/types/data_frame_request_out_index_item.py +0 -0
  44. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/types/data_frame_unknown_format_error.py +0 -0
  45. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/types/file_too_large_error.py +0 -0
  46. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/types/parent_folder_error.py +0 -0
  47. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/types/save_asset_request_out.py +0 -0
  48. {athena_intelligence-0.1.111 → athena_intelligence-0.1.112}/src/athena/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: athena-intelligence
3
- Version: 0.1.111
3
+ Version: 0.1.112
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.111"
3
+ version = "0.1.112"
4
4
  description = "Athena Intelligence Python Library"
5
5
  readme = "README.md"
6
6
  authors = []
@@ -7,6 +7,8 @@ from .types import (
7
7
  DataFrameRequestOutDataItemItem,
8
8
  DataFrameRequestOutIndexItem,
9
9
  DataFrameUnknownFormatError,
10
+ DocumentChunk,
11
+ FileChunkRequestOut,
10
12
  FileTooLargeError,
11
13
  ParentFolderError,
12
14
  SaveAssetRequestOut,
@@ -36,6 +38,8 @@ __all__ = [
36
38
  "DataFrameRequestOutDataItemItem",
37
39
  "DataFrameRequestOutIndexItem",
38
40
  "DataFrameUnknownFormatError",
41
+ "DocumentChunk",
42
+ "FileChunkRequestOut",
39
43
  "FileTooLargeError",
40
44
  "InternalServerError",
41
45
  "NotFoundError",
@@ -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.111",
20
+ "X-Fern-SDK-Version": "0.1.112",
21
21
  }
22
22
  headers["X-API-KEY"] = self.api_key
23
23
  return headers
@@ -18,6 +18,7 @@ from ..errors.unsupported_media_type_error import UnsupportedMediaTypeError
18
18
  from ..types.asset_not_found_error import AssetNotFoundError
19
19
  from ..types.data_frame_request_out import DataFrameRequestOut
20
20
  from ..types.data_frame_unknown_format_error import DataFrameUnknownFormatError
21
+ from ..types.file_chunk_request_out import FileChunkRequestOut
21
22
  from ..types.file_too_large_error import FileTooLargeError
22
23
  from ..types.parent_folder_error import ParentFolderError
23
24
  from ..types.save_asset_request_out import SaveAssetRequestOut
@@ -31,6 +32,60 @@ class ToolsClient:
31
32
  def __init__(self, *, client_wrapper: SyncClientWrapper):
32
33
  self._client_wrapper = client_wrapper
33
34
 
35
+ def get_file_chunks(
36
+ self, *, asset_ids: typing.Sequence[str], request_options: typing.Optional[RequestOptions] = None
37
+ ) -> FileChunkRequestOut:
38
+ """
39
+ Get the chunks of a file.
40
+
41
+ Parameters
42
+ ----------
43
+ asset_ids : typing.Sequence[str]
44
+ Identifiers of the assets
45
+
46
+ request_options : typing.Optional[RequestOptions]
47
+ Request-specific configuration.
48
+
49
+ Returns
50
+ -------
51
+ FileChunkRequestOut
52
+ Successful Response
53
+
54
+ Examples
55
+ --------
56
+ from athena.client import Athena
57
+
58
+ client = Athena(
59
+ api_key="YOUR_API_KEY",
60
+ )
61
+ client.tools.get_file_chunks(
62
+ asset_ids=[
63
+ "asset_9249292-d118-42d3-96b4-00eccfe0754f",
64
+ "asset_9249292-d118-42d3-95b4-01eccfe0754f",
65
+ ],
66
+ )
67
+ """
68
+ _response = self._client_wrapper.httpx_client.request(
69
+ "api/v0/tools/file/chunks",
70
+ method="POST",
71
+ json={"asset_ids": asset_ids},
72
+ request_options=request_options,
73
+ omit=OMIT,
74
+ )
75
+ if 200 <= _response.status_code < 300:
76
+ return pydantic_v1.parse_obj_as(FileChunkRequestOut, _response.json()) # type: ignore
77
+ if _response.status_code == 401:
78
+ raise UnauthorizedError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
79
+ if _response.status_code == 404:
80
+ raise NotFoundError(pydantic_v1.parse_obj_as(AssetNotFoundError, _response.json())) # type: ignore
81
+ if _response.status_code == 422:
82
+ raise UnprocessableEntityError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
83
+ try:
84
+ _response_json = _response.json()
85
+ except JSONDecodeError:
86
+ raise ApiError(status_code=_response.status_code, body=_response.text)
87
+ raise ApiError(status_code=_response.status_code, body=_response_json)
88
+
34
89
  def data_frame(
35
90
  self,
36
91
  *,
@@ -226,6 +281,60 @@ class AsyncToolsClient:
226
281
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
227
282
  self._client_wrapper = client_wrapper
228
283
 
284
+ async def get_file_chunks(
285
+ self, *, asset_ids: typing.Sequence[str], request_options: typing.Optional[RequestOptions] = None
286
+ ) -> FileChunkRequestOut:
287
+ """
288
+ Get the chunks of a file.
289
+
290
+ Parameters
291
+ ----------
292
+ asset_ids : typing.Sequence[str]
293
+ Identifiers of the assets
294
+
295
+ request_options : typing.Optional[RequestOptions]
296
+ Request-specific configuration.
297
+
298
+ Returns
299
+ -------
300
+ FileChunkRequestOut
301
+ Successful Response
302
+
303
+ Examples
304
+ --------
305
+ from athena.client import AsyncAthena
306
+
307
+ client = AsyncAthena(
308
+ api_key="YOUR_API_KEY",
309
+ )
310
+ await client.tools.get_file_chunks(
311
+ asset_ids=[
312
+ "asset_9249292-d118-42d3-96b4-00eccfe0754f",
313
+ "asset_9249292-d118-42d3-95b4-01eccfe0754f",
314
+ ],
315
+ )
316
+ """
317
+ _response = await self._client_wrapper.httpx_client.request(
318
+ "api/v0/tools/file/chunks",
319
+ method="POST",
320
+ json={"asset_ids": asset_ids},
321
+ request_options=request_options,
322
+ omit=OMIT,
323
+ )
324
+ if 200 <= _response.status_code < 300:
325
+ return pydantic_v1.parse_obj_as(FileChunkRequestOut, _response.json()) # type: ignore
326
+ if _response.status_code == 401:
327
+ raise UnauthorizedError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
328
+ if _response.status_code == 404:
329
+ raise NotFoundError(pydantic_v1.parse_obj_as(AssetNotFoundError, _response.json())) # type: ignore
330
+ if _response.status_code == 422:
331
+ raise UnprocessableEntityError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
332
+ try:
333
+ _response_json = _response.json()
334
+ except JSONDecodeError:
335
+ raise ApiError(status_code=_response.status_code, body=_response.text)
336
+ raise ApiError(status_code=_response.status_code, body=_response_json)
337
+
229
338
  async def data_frame(
230
339
  self,
231
340
  *,
@@ -6,6 +6,8 @@ from .data_frame_request_out_columns_item import DataFrameRequestOutColumnsItem
6
6
  from .data_frame_request_out_data_item_item import DataFrameRequestOutDataItemItem
7
7
  from .data_frame_request_out_index_item import DataFrameRequestOutIndexItem
8
8
  from .data_frame_unknown_format_error import DataFrameUnknownFormatError
9
+ from .document_chunk import DocumentChunk
10
+ from .file_chunk_request_out import FileChunkRequestOut
9
11
  from .file_too_large_error import FileTooLargeError
10
12
  from .parent_folder_error import ParentFolderError
11
13
  from .save_asset_request_out import SaveAssetRequestOut
@@ -17,6 +19,8 @@ __all__ = [
17
19
  "DataFrameRequestOutDataItemItem",
18
20
  "DataFrameRequestOutIndexItem",
19
21
  "DataFrameUnknownFormatError",
22
+ "DocumentChunk",
23
+ "FileChunkRequestOut",
20
24
  "FileTooLargeError",
21
25
  "ParentFolderError",
22
26
  "SaveAssetRequestOut",
@@ -0,0 +1,34 @@
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 DocumentChunk(pydantic_v1.BaseModel):
11
+ """
12
+ A document chunk.
13
+ """
14
+
15
+ metadata: typing.Optional[typing.Dict[str, typing.Any]] = None
16
+ page_content: str
17
+
18
+ def json(self, **kwargs: typing.Any) -> str:
19
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
20
+ return super().json(**kwargs_with_defaults)
21
+
22
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
23
+ kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
24
+ kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
25
+
26
+ return deep_union_pydantic_dicts(
27
+ super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
28
+ )
29
+
30
+ class Config:
31
+ frozen = True
32
+ smart_union = True
33
+ extra = pydantic_v1.Extra.allow
34
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -0,0 +1,34 @@
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
+ from .document_chunk import DocumentChunk
9
+
10
+
11
+ class FileChunkRequestOut(pydantic_v1.BaseModel):
12
+ """
13
+ Response model for a file chunk.
14
+ """
15
+
16
+ chunks: typing.Dict[str, typing.List[DocumentChunk]]
17
+
18
+ def json(self, **kwargs: typing.Any) -> str:
19
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
20
+ return super().json(**kwargs_with_defaults)
21
+
22
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
23
+ kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
24
+ kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
25
+
26
+ return deep_union_pydantic_dicts(
27
+ super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
28
+ )
29
+
30
+ class Config:
31
+ frozen = True
32
+ smart_union = True
33
+ extra = pydantic_v1.Extra.allow
34
+ json_encoders = {dt.datetime: serialize_datetime}