athena-intelligence 0.1.99__py3-none-any.whl → 0.1.101__py3-none-any.whl

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.
athena/__init__.py CHANGED
@@ -1,40 +1,44 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  from .types import (
4
- DataFrameParsingError,
5
4
  DataFrameRequestOut,
6
5
  DataFrameRequestOutColumnsItem,
7
6
  DataFrameRequestOutDataItemItem,
8
7
  DataFrameRequestOutIndexItem,
9
8
  DataFrameUnknownFormatError,
10
9
  FileFetchError,
11
- HttpValidationError,
12
- ValidationError,
13
- ValidationErrorLocItem,
10
+ SqlUnauthorizedError,
14
11
  )
15
- from .errors import InternalServerError, NotFoundError, UnprocessableEntityError, UnsupportedMediaTypeError
16
- from . import tools
12
+ from .errors import (
13
+ InternalServerError,
14
+ NotFoundError,
15
+ UnauthorizedError,
16
+ UnprocessableEntityError,
17
+ UnsupportedMediaTypeError,
18
+ )
19
+ from . import query, tools
17
20
  from .environment import AthenaEnvironment
21
+ from .query import QueryExecuteRequestDatabaseAssetIds
18
22
  from .tools import ToolsDataFrameRequestColumnsItem
19
23
  from .version import __version__
20
24
 
21
25
  __all__ = [
22
26
  "AthenaEnvironment",
23
- "DataFrameParsingError",
24
27
  "DataFrameRequestOut",
25
28
  "DataFrameRequestOutColumnsItem",
26
29
  "DataFrameRequestOutDataItemItem",
27
30
  "DataFrameRequestOutIndexItem",
28
31
  "DataFrameUnknownFormatError",
29
32
  "FileFetchError",
30
- "HttpValidationError",
31
33
  "InternalServerError",
32
34
  "NotFoundError",
35
+ "QueryExecuteRequestDatabaseAssetIds",
36
+ "SqlUnauthorizedError",
33
37
  "ToolsDataFrameRequestColumnsItem",
38
+ "UnauthorizedError",
34
39
  "UnprocessableEntityError",
35
40
  "UnsupportedMediaTypeError",
36
- "ValidationError",
37
- "ValidationErrorLocItem",
38
41
  "__version__",
42
+ "query",
39
43
  "tools",
40
44
  ]
athena/base_client.py CHANGED
@@ -6,6 +6,7 @@ import httpx
6
6
 
7
7
  from .core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
8
  from .environment import AthenaEnvironment
9
+ from .query.client import AsyncQueryClient, QueryClient
9
10
  from .tools.client import AsyncToolsClient, ToolsClient
10
11
 
11
12
 
@@ -67,6 +68,7 @@ class BaseAthena:
67
68
  else httpx.Client(timeout=_defaulted_timeout),
68
69
  timeout=_defaulted_timeout,
69
70
  )
71
+ self.query = QueryClient(client_wrapper=self._client_wrapper)
70
72
  self.tools = ToolsClient(client_wrapper=self._client_wrapper)
71
73
 
72
74
 
@@ -128,6 +130,7 @@ class AsyncBaseAthena:
128
130
  else httpx.AsyncClient(timeout=_defaulted_timeout),
129
131
  timeout=_defaulted_timeout,
130
132
  )
133
+ self.query = AsyncQueryClient(client_wrapper=self._client_wrapper)
131
134
  self.tools = AsyncToolsClient(client_wrapper=self._client_wrapper)
132
135
 
133
136
 
@@ -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.99",
20
+ "X-Fern-SDK-Version": "0.1.101",
21
21
  }
22
22
  headers["X-API-KEY"] = self.api_key
23
23
  return headers
athena/errors/__init__.py CHANGED
@@ -2,7 +2,14 @@
2
2
 
3
3
  from .internal_server_error import InternalServerError
4
4
  from .not_found_error import NotFoundError
5
+ from .unauthorized_error import UnauthorizedError
5
6
  from .unprocessable_entity_error import UnprocessableEntityError
6
7
  from .unsupported_media_type_error import UnsupportedMediaTypeError
7
8
 
8
- __all__ = ["InternalServerError", "NotFoundError", "UnprocessableEntityError", "UnsupportedMediaTypeError"]
9
+ __all__ = [
10
+ "InternalServerError",
11
+ "NotFoundError",
12
+ "UnauthorizedError",
13
+ "UnprocessableEntityError",
14
+ "UnsupportedMediaTypeError",
15
+ ]
@@ -1,9 +1,10 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ import typing
4
+
3
5
  from ..core.api_error import ApiError
4
- from ..types.data_frame_parsing_error import DataFrameParsingError
5
6
 
6
7
 
7
8
  class InternalServerError(ApiError):
8
- def __init__(self, body: DataFrameParsingError):
9
+ def __init__(self, body: typing.Any):
9
10
  super().__init__(status_code=500, body=body)
@@ -0,0 +1,9 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.api_error import ApiError
4
+ from ..types.sql_unauthorized_error import SqlUnauthorizedError
5
+
6
+
7
+ class UnauthorizedError(ApiError):
8
+ def __init__(self, body: SqlUnauthorizedError):
9
+ super().__init__(status_code=401, body=body)
@@ -1,9 +1,10 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ import typing
4
+
3
5
  from ..core.api_error import ApiError
4
- from ..types.http_validation_error import HttpValidationError
5
6
 
6
7
 
7
8
  class UnprocessableEntityError(ApiError):
8
- def __init__(self, body: HttpValidationError):
9
+ def __init__(self, body: typing.Any):
9
10
  super().__init__(status_code=422, body=body)
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from .types import QueryExecuteRequestDatabaseAssetIds
4
+
5
+ __all__ = ["QueryExecuteRequestDatabaseAssetIds"]
athena/query/client.py ADDED
@@ -0,0 +1,240 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from json.decoder import JSONDecodeError
5
+
6
+ from ..core.api_error import ApiError
7
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
+ from ..core.jsonable_encoder import jsonable_encoder
9
+ from ..core.pydantic_utilities import pydantic_v1
10
+ from ..core.request_options import RequestOptions
11
+ from ..errors.internal_server_error import InternalServerError
12
+ from ..errors.unauthorized_error import UnauthorizedError
13
+ from ..errors.unprocessable_entity_error import UnprocessableEntityError
14
+ from ..types.data_frame_request_out import DataFrameRequestOut
15
+ from ..types.sql_unauthorized_error import SqlUnauthorizedError
16
+ from .types.query_execute_request_database_asset_ids import QueryExecuteRequestDatabaseAssetIds
17
+
18
+
19
+ class QueryClient:
20
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
21
+ self._client_wrapper = client_wrapper
22
+
23
+ def execute(
24
+ self,
25
+ *,
26
+ sql_command: str,
27
+ database_asset_ids: QueryExecuteRequestDatabaseAssetIds,
28
+ request_options: typing.Optional[RequestOptions] = None
29
+ ) -> DataFrameRequestOut:
30
+ """
31
+ Get the result of an SQL query over given assets.
32
+
33
+ Parameters
34
+ ----------
35
+ sql_command : str
36
+ SQL query string
37
+
38
+ database_asset_ids : QueryExecuteRequestDatabaseAssetIds
39
+ Single ID or list of asset IDs
40
+
41
+ request_options : typing.Optional[RequestOptions]
42
+ Request-specific configuration.
43
+
44
+ Returns
45
+ -------
46
+ DataFrameRequestOut
47
+ Successful Response
48
+
49
+ Examples
50
+ --------
51
+ from athena.client import Athena
52
+
53
+ client = Athena(
54
+ api_key="YOUR_API_KEY",
55
+ )
56
+ client.query.execute(
57
+ sql_command="sql_command",
58
+ database_asset_ids="database_asset_ids",
59
+ )
60
+ """
61
+ _response = self._client_wrapper.httpx_client.request(
62
+ "api/v0/query/sql/code/execute",
63
+ method="GET",
64
+ params={"sql_command": sql_command, "database_asset_ids": jsonable_encoder(database_asset_ids)},
65
+ request_options=request_options,
66
+ )
67
+ if 200 <= _response.status_code < 300:
68
+ return pydantic_v1.parse_obj_as(DataFrameRequestOut, _response.json()) # type: ignore
69
+ if _response.status_code == 401:
70
+ raise UnauthorizedError(pydantic_v1.parse_obj_as(SqlUnauthorizedError, _response.json())) # type: ignore
71
+ if _response.status_code == 422:
72
+ raise UnprocessableEntityError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
73
+ if _response.status_code == 500:
74
+ raise InternalServerError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
75
+ try:
76
+ _response_json = _response.json()
77
+ except JSONDecodeError:
78
+ raise ApiError(status_code=_response.status_code, body=_response.text)
79
+ raise ApiError(status_code=_response.status_code, body=_response_json)
80
+
81
+ def execute_snippet(
82
+ self, *, snippet_asset_id: str, request_options: typing.Optional[RequestOptions] = None
83
+ ) -> DataFrameRequestOut:
84
+ """
85
+ Get the result of an SQL query over given assets.
86
+
87
+ Parameters
88
+ ----------
89
+ snippet_asset_id : str
90
+
91
+ request_options : typing.Optional[RequestOptions]
92
+ Request-specific configuration.
93
+
94
+ Returns
95
+ -------
96
+ DataFrameRequestOut
97
+ Successful Response
98
+
99
+ Examples
100
+ --------
101
+ from athena.client import Athena
102
+
103
+ client = Athena(
104
+ api_key="YOUR_API_KEY",
105
+ )
106
+ client.query.execute_snippet(
107
+ snippet_asset_id="snippet_asset_id",
108
+ )
109
+ """
110
+ _response = self._client_wrapper.httpx_client.request(
111
+ "api/v0/query/sql/snippet/execute",
112
+ method="GET",
113
+ params={"snippet_asset_id": snippet_asset_id},
114
+ request_options=request_options,
115
+ )
116
+ if 200 <= _response.status_code < 300:
117
+ return pydantic_v1.parse_obj_as(DataFrameRequestOut, _response.json()) # type: ignore
118
+ if _response.status_code == 401:
119
+ raise UnauthorizedError(pydantic_v1.parse_obj_as(SqlUnauthorizedError, _response.json())) # type: ignore
120
+ if _response.status_code == 422:
121
+ raise UnprocessableEntityError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
122
+ if _response.status_code == 500:
123
+ raise InternalServerError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
124
+ try:
125
+ _response_json = _response.json()
126
+ except JSONDecodeError:
127
+ raise ApiError(status_code=_response.status_code, body=_response.text)
128
+ raise ApiError(status_code=_response.status_code, body=_response_json)
129
+
130
+
131
+ class AsyncQueryClient:
132
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
133
+ self._client_wrapper = client_wrapper
134
+
135
+ async def execute(
136
+ self,
137
+ *,
138
+ sql_command: str,
139
+ database_asset_ids: QueryExecuteRequestDatabaseAssetIds,
140
+ request_options: typing.Optional[RequestOptions] = None
141
+ ) -> DataFrameRequestOut:
142
+ """
143
+ Get the result of an SQL query over given assets.
144
+
145
+ Parameters
146
+ ----------
147
+ sql_command : str
148
+ SQL query string
149
+
150
+ database_asset_ids : QueryExecuteRequestDatabaseAssetIds
151
+ Single ID or list of asset IDs
152
+
153
+ request_options : typing.Optional[RequestOptions]
154
+ Request-specific configuration.
155
+
156
+ Returns
157
+ -------
158
+ DataFrameRequestOut
159
+ Successful Response
160
+
161
+ Examples
162
+ --------
163
+ from athena.client import AsyncAthena
164
+
165
+ client = AsyncAthena(
166
+ api_key="YOUR_API_KEY",
167
+ )
168
+ await client.query.execute(
169
+ sql_command="sql_command",
170
+ database_asset_ids="database_asset_ids",
171
+ )
172
+ """
173
+ _response = await self._client_wrapper.httpx_client.request(
174
+ "api/v0/query/sql/code/execute",
175
+ method="GET",
176
+ params={"sql_command": sql_command, "database_asset_ids": jsonable_encoder(database_asset_ids)},
177
+ request_options=request_options,
178
+ )
179
+ if 200 <= _response.status_code < 300:
180
+ return pydantic_v1.parse_obj_as(DataFrameRequestOut, _response.json()) # type: ignore
181
+ if _response.status_code == 401:
182
+ raise UnauthorizedError(pydantic_v1.parse_obj_as(SqlUnauthorizedError, _response.json())) # type: ignore
183
+ if _response.status_code == 422:
184
+ raise UnprocessableEntityError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
185
+ if _response.status_code == 500:
186
+ raise InternalServerError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
187
+ try:
188
+ _response_json = _response.json()
189
+ except JSONDecodeError:
190
+ raise ApiError(status_code=_response.status_code, body=_response.text)
191
+ raise ApiError(status_code=_response.status_code, body=_response_json)
192
+
193
+ async def execute_snippet(
194
+ self, *, snippet_asset_id: str, request_options: typing.Optional[RequestOptions] = None
195
+ ) -> DataFrameRequestOut:
196
+ """
197
+ Get the result of an SQL query over given assets.
198
+
199
+ Parameters
200
+ ----------
201
+ snippet_asset_id : str
202
+
203
+ request_options : typing.Optional[RequestOptions]
204
+ Request-specific configuration.
205
+
206
+ Returns
207
+ -------
208
+ DataFrameRequestOut
209
+ Successful Response
210
+
211
+ Examples
212
+ --------
213
+ from athena.client import AsyncAthena
214
+
215
+ client = AsyncAthena(
216
+ api_key="YOUR_API_KEY",
217
+ )
218
+ await client.query.execute_snippet(
219
+ snippet_asset_id="snippet_asset_id",
220
+ )
221
+ """
222
+ _response = await self._client_wrapper.httpx_client.request(
223
+ "api/v0/query/sql/snippet/execute",
224
+ method="GET",
225
+ params={"snippet_asset_id": snippet_asset_id},
226
+ request_options=request_options,
227
+ )
228
+ if 200 <= _response.status_code < 300:
229
+ return pydantic_v1.parse_obj_as(DataFrameRequestOut, _response.json()) # type: ignore
230
+ if _response.status_code == 401:
231
+ raise UnauthorizedError(pydantic_v1.parse_obj_as(SqlUnauthorizedError, _response.json())) # type: ignore
232
+ if _response.status_code == 422:
233
+ raise UnprocessableEntityError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
234
+ if _response.status_code == 500:
235
+ raise InternalServerError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
236
+ try:
237
+ _response_json = _response.json()
238
+ except JSONDecodeError:
239
+ raise ApiError(status_code=_response.status_code, body=_response.text)
240
+ raise ApiError(status_code=_response.status_code, body=_response_json)
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from .query_execute_request_database_asset_ids import QueryExecuteRequestDatabaseAssetIds
4
+
5
+ __all__ = ["QueryExecuteRequestDatabaseAssetIds"]
@@ -2,4 +2,4 @@
2
2
 
3
3
  import typing
4
4
 
5
- ValidationErrorLocItem = typing.Union[str, int]
5
+ QueryExecuteRequestDatabaseAssetIds = typing.Union[str, typing.List[str]]
athena/tools/client.py CHANGED
@@ -11,11 +11,9 @@ from ..errors.internal_server_error import InternalServerError
11
11
  from ..errors.not_found_error import NotFoundError
12
12
  from ..errors.unprocessable_entity_error import UnprocessableEntityError
13
13
  from ..errors.unsupported_media_type_error import UnsupportedMediaTypeError
14
- from ..types.data_frame_parsing_error import DataFrameParsingError
15
14
  from ..types.data_frame_request_out import DataFrameRequestOut
16
15
  from ..types.data_frame_unknown_format_error import DataFrameUnknownFormatError
17
16
  from ..types.file_fetch_error import FileFetchError
18
- from ..types.http_validation_error import HttpValidationError
19
17
  from .types.tools_data_frame_request_columns_item import ToolsDataFrameRequestColumnsItem
20
18
 
21
19
 
@@ -95,11 +93,9 @@ class ToolsClient:
95
93
  pydantic_v1.parse_obj_as(DataFrameUnknownFormatError, _response.json()) # type: ignore
96
94
  )
97
95
  if _response.status_code == 422:
98
- raise UnprocessableEntityError(
99
- pydantic_v1.parse_obj_as(HttpValidationError, _response.json()) # type: ignore
100
- )
96
+ raise UnprocessableEntityError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
101
97
  if _response.status_code == 500:
102
- raise InternalServerError(pydantic_v1.parse_obj_as(DataFrameParsingError, _response.json())) # type: ignore
98
+ raise InternalServerError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
103
99
  try:
104
100
  _response_json = _response.json()
105
101
  except JSONDecodeError:
@@ -146,9 +142,7 @@ class ToolsClient:
146
142
  if _response.status_code == 404:
147
143
  raise NotFoundError(pydantic_v1.parse_obj_as(FileFetchError, _response.json())) # type: ignore
148
144
  if _response.status_code == 422:
149
- raise UnprocessableEntityError(
150
- pydantic_v1.parse_obj_as(HttpValidationError, _response.json()) # type: ignore
151
- )
145
+ raise UnprocessableEntityError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
152
146
  try:
153
147
  _response_json = _response.json()
154
148
  except JSONDecodeError:
@@ -232,11 +226,9 @@ class AsyncToolsClient:
232
226
  pydantic_v1.parse_obj_as(DataFrameUnknownFormatError, _response.json()) # type: ignore
233
227
  )
234
228
  if _response.status_code == 422:
235
- raise UnprocessableEntityError(
236
- pydantic_v1.parse_obj_as(HttpValidationError, _response.json()) # type: ignore
237
- )
229
+ raise UnprocessableEntityError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
238
230
  if _response.status_code == 500:
239
- raise InternalServerError(pydantic_v1.parse_obj_as(DataFrameParsingError, _response.json())) # type: ignore
231
+ raise InternalServerError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
240
232
  try:
241
233
  _response_json = _response.json()
242
234
  except JSONDecodeError:
@@ -283,9 +275,7 @@ class AsyncToolsClient:
283
275
  if _response.status_code == 404:
284
276
  raise NotFoundError(pydantic_v1.parse_obj_as(FileFetchError, _response.json())) # type: ignore
285
277
  if _response.status_code == 422:
286
- raise UnprocessableEntityError(
287
- pydantic_v1.parse_obj_as(HttpValidationError, _response.json()) # type: ignore
288
- )
278
+ raise UnprocessableEntityError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
289
279
  try:
290
280
  _response_json = _response.json()
291
281
  except JSONDecodeError:
athena/types/__init__.py CHANGED
@@ -1,25 +1,19 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from .data_frame_parsing_error import DataFrameParsingError
4
3
  from .data_frame_request_out import DataFrameRequestOut
5
4
  from .data_frame_request_out_columns_item import DataFrameRequestOutColumnsItem
6
5
  from .data_frame_request_out_data_item_item import DataFrameRequestOutDataItemItem
7
6
  from .data_frame_request_out_index_item import DataFrameRequestOutIndexItem
8
7
  from .data_frame_unknown_format_error import DataFrameUnknownFormatError
9
8
  from .file_fetch_error import FileFetchError
10
- from .http_validation_error import HttpValidationError
11
- from .validation_error import ValidationError
12
- from .validation_error_loc_item import ValidationErrorLocItem
9
+ from .sql_unauthorized_error import SqlUnauthorizedError
13
10
 
14
11
  __all__ = [
15
- "DataFrameParsingError",
16
12
  "DataFrameRequestOut",
17
13
  "DataFrameRequestOutColumnsItem",
18
14
  "DataFrameRequestOutDataItemItem",
19
15
  "DataFrameRequestOutIndexItem",
20
16
  "DataFrameUnknownFormatError",
21
17
  "FileFetchError",
22
- "HttpValidationError",
23
- "ValidationError",
24
- "ValidationErrorLocItem",
18
+ "SqlUnauthorizedError",
25
19
  ]
@@ -17,7 +17,7 @@ class DataFrameRequestOut(pydantic_v1.BaseModel):
17
17
 
18
18
  columns: typing.List[typing.Optional[DataFrameRequestOutColumnsItem]]
19
19
  data: typing.List[typing.List[typing.Optional[DataFrameRequestOutDataItemItem]]]
20
- index: typing.List[typing.Optional[DataFrameRequestOutIndexItem]]
20
+ index: typing.Optional[typing.List[typing.Optional[DataFrameRequestOutIndexItem]]] = None
21
21
 
22
22
  def json(self, **kwargs: typing.Any) -> str:
23
23
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -7,10 +7,7 @@ from ..core.datetime_utils import serialize_datetime
7
7
  from ..core.pydantic_utilities import deep_union_pydantic_dicts, pydantic_v1
8
8
 
9
9
 
10
- class DataFrameParsingError(pydantic_v1.BaseModel):
11
- asset_id: str
12
- message: str
13
-
10
+ class SqlUnauthorizedError(pydantic_v1.BaseModel):
14
11
  def json(self, **kwargs: typing.Any) -> str:
15
12
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
16
13
  return super().json(**kwargs_with_defaults)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: athena-intelligence
3
- Version: 0.1.99
3
+ Version: 0.1.101
4
4
  Summary: Athena Intelligence Python Library
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -1,9 +1,9 @@
1
- athena/__init__.py,sha256=Puh6njWEP0yMV514GrJSg2UrY6ojVOboWmoM38a-jeo,1161
2
- athena/base_client.py,sha256=KS-PX4GHtkn89PP3IHPcSX54TfyBsFeOSuDn05p9YLc,5238
1
+ athena/__init__.py,sha256=lGo6ASUYoueZCu_oWrD7ruCsa0nLRNo9qZ_-2RV4WxY,1192
2
+ athena/base_client.py,sha256=TlP599mOBvj7Tk8IpFe5dgrDM98GJu3lEQh_zwl4vtA,5439
3
3
  athena/client.py,sha256=2jxJ8mZWLa9LOH9XCxbxwLV6qVPXw53gi7GiYUTcpZg,9346
4
4
  athena/core/__init__.py,sha256=UFXpYzcGxWQUucU1TkjOQ9mGWN3A5JohluOIWVYKU4I,973
5
5
  athena/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
6
- athena/core/client_wrapper.py,sha256=Stqk_c6EsVwY9O4XvChh7ubnzLVgtLFLm29x03MQNWo,1805
6
+ athena/core/client_wrapper.py,sha256=OWm1dmWnrVS5aatw4sJNN9fa54tiO28qSndRzyy8ksw,1806
7
7
  athena/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
8
8
  athena/core/file.py,sha256=sy1RUGZ3aJYuw998bZytxxo6QdgKmlnlgBaMvwEKCGg,1480
9
9
  athena/core/http_client.py,sha256=Z4NuAsJD-51yqmoME17O5sxwx5orSp1wsnd6bPyKcgA,17768
@@ -13,28 +13,30 @@ athena/core/query_encoder.py,sha256=sI6XiwFby-WRIk4MVN_5wlAlm30aCHE73Uvm09fb9qQ,
13
13
  athena/core/remove_none_from_dict.py,sha256=EU9SGgYidWq7SexuJbNs4-PZ-5Bl3Vppd864mS6vQZw,342
14
14
  athena/core/request_options.py,sha256=-3QoOMMHI2exIyHH6Q2MD7rpo_6w-i6zMAy0nqWTN8c,1420
15
15
  athena/environment.py,sha256=_e7YwByXALEk7fNJNJvjF81caYTbsx4c7wwftCJHQ7g,214
16
- athena/errors/__init__.py,sha256=0LicWKR1fNQwwL8_ohKhBkxXTD8StFlBYDFG1jPgqOk,405
17
- athena/errors/internal_server_error.py,sha256=WEwVqzsfpBTaqZipvse-kvKbW-3NbpXVvuHXs_64U0M,315
16
+ athena/errors/__init__.py,sha256=3hOHgz6h6rQZ_8URX6GpKLhKIhMVxYHANI-X8jTO1t0,499
17
+ athena/errors/internal_server_error.py,sha256=E0rgqJC0-LcetLi1HmSi92KpvNkGSRCIdBeEqT_ln1s,252
18
18
  athena/errors/not_found_error.py,sha256=uBK3JapPPgTkMoSCX9j22C6MDtSuTuSPmjT0lDRigpA,287
19
- athena/errors/unprocessable_entity_error.py,sha256=FvR7XPlV3Xx5nu8HNlmLhBRdk4so_gCHjYT5PyZe6sM,313
19
+ athena/errors/unauthorized_error.py,sha256=6qGByG08vA3iFHmK5ReHUK2AiGeCsK3Vf50C5LQNILM,309
20
+ athena/errors/unprocessable_entity_error.py,sha256=OztAzRntOJVxbZtXwoR4epahhG6chKOB5chVLUC8D9Q,257
20
21
  athena/errors/unsupported_media_type_error.py,sha256=fQ7TYQ3QYcT_YzFzO4f8_bLger7UQfZmuF22I9jYxFA,340
21
22
  athena/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ athena/query/__init__.py,sha256=EIeVs3aDVNAqLyWetSrQldzc2yUdJkf_cJXyrLdMDj0,171
24
+ athena/query/client.py,sha256=3i_yiGD7JM204TsTwY7R1CvGRs0odCh6QkYeNggHbc8,9147
25
+ athena/query/types/__init__.py,sha256=WX-Or2h5NY2sv93ojrZsHcmiFHGYdqd0yxNo-5iGHR4,206
26
+ athena/query/types/query_execute_request_database_asset_ids.py,sha256=aoVl5Xb34Q27hYGuVTnByGIxtHkL67wAwzXh7eJctew,154
22
27
  athena/tools/__init__.py,sha256=3n7oOoMebo06MAQqYRE2CX9Q0fTNnKBYE0cTlh1MPkM,165
23
- athena/tools/client.py,sha256=i_1TD-Cp5ztcCc45h4XxEDmk2xPLfyUtZLueHID2G6g,10888
28
+ athena/tools/client.py,sha256=sMV_--PzUReXXILfKJeS8g9GQzYxxPDZI59wlos_rSo,10565
24
29
  athena/tools/types/__init__.py,sha256=cA-ZQm6veQAP3_vKu9KkZpISsQqgTBN_Z--FGY1c2iA,197
25
30
  athena/tools/types/tools_data_frame_request_columns_item.py,sha256=4rve98HoxzGpDhfEcNwqkH1mUQQXL8vAnX4T04PTTLk,138
26
- athena/types/__init__.py,sha256=ZGBn5o7_zVgGVt67H1Ukh8wDknD5M0J0afgZUwggv5s,1022
27
- athena/types/data_frame_parsing_error.py,sha256=CbSu1YI-dpp9MpGWCFW5EvrkubPYPWhAWeW9ByksVfY,1142
28
- athena/types/data_frame_request_out.py,sha256=Od205PAKQL_Eq14GChRx-DIEPe00aIJBOuO89TwaQbQ,1645
31
+ athena/types/__init__.py,sha256=9pojMYMfD3Bk4w4V8FXZ_Apwf1DFDCDsbKtqsMR6EK0,775
32
+ athena/types/data_frame_request_out.py,sha256=1CEBe-baDQi0uz_EgMw0TKGYXGj6KV44cL3ViRTZLKM,1669
29
33
  athena/types/data_frame_request_out_columns_item.py,sha256=9cjzciFv6C8n8Griytt_q_8ovkzHViS5tvUcMDfkfKE,143
30
34
  athena/types/data_frame_request_out_data_item_item.py,sha256=KMTJRr-1bdKDNMbUericCliwRoPHLGRV-n2bJtxdRW0,144
31
35
  athena/types/data_frame_request_out_index_item.py,sha256=bW7oe912trpkYKodj-I_AiTXXy61yWzliekcsUZkZE0,141
32
36
  athena/types/data_frame_unknown_format_error.py,sha256=lbgAUArEgIYZt3P5Ji4Clp-xyXnKJR7-v5VzXwKu0J8,1168
33
37
  athena/types/file_fetch_error.py,sha256=iR7IXjj2C4lJFcWV3aS2gfhmT3CE-_hhBDSWFaCktHU,1162
34
- athena/types/http_validation_error.py,sha256=ZuVHc-T6RFEo7_qBO8DWHa2jGJ6O--tUIZynmLFezsI,1216
35
- athena/types/validation_error.py,sha256=zub9I6bl192KHCE8RA0pEkdaEODR3ktTFnZ7E1B7Eco,1235
36
- athena/types/validation_error_loc_item.py,sha256=LAtjCHIllWRBFXvAZ5QZpp7CPXjdtN9EB7HrLVo6EP0,128
38
+ athena/types/sql_unauthorized_error.py,sha256=c3LR7lDgg66km9J0BYDCRu0hdDYaPqpnfcE3YXXKkVM,1105
37
39
  athena/version.py,sha256=8aYAOJtVLaJLpRp6mTiEIhnl8gXA7yE0aDtZ-3mKQ4k,87
38
- athena_intelligence-0.1.99.dist-info/METADATA,sha256=-mIyox4gwnnHaN5DD8gy-TOkUM2APAuOvcVI1H4CZ0c,5273
39
- athena_intelligence-0.1.99.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
40
- athena_intelligence-0.1.99.dist-info/RECORD,,
40
+ athena_intelligence-0.1.101.dist-info/METADATA,sha256=vYeSC3K17uL8bbSXmpJ1Vz0mn80WW3LiR5zhJouF0Vw,5274
41
+ athena_intelligence-0.1.101.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
42
+ athena_intelligence-0.1.101.dist-info/RECORD,,
@@ -1,30 +0,0 @@
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 .validation_error import ValidationError
9
-
10
-
11
- class HttpValidationError(pydantic_v1.BaseModel):
12
- detail: typing.Optional[typing.List[ValidationError]] = None
13
-
14
- def json(self, **kwargs: typing.Any) -> str:
15
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
16
- return super().json(**kwargs_with_defaults)
17
-
18
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
19
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
20
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
21
-
22
- return deep_union_pydantic_dicts(
23
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
24
- )
25
-
26
- class Config:
27
- frozen = True
28
- smart_union = True
29
- extra = pydantic_v1.Extra.allow
30
- json_encoders = {dt.datetime: serialize_datetime}
@@ -1,32 +0,0 @@
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 .validation_error_loc_item import ValidationErrorLocItem
9
-
10
-
11
- class ValidationError(pydantic_v1.BaseModel):
12
- loc: typing.List[ValidationErrorLocItem]
13
- msg: str
14
- type: str
15
-
16
- def json(self, **kwargs: typing.Any) -> str:
17
- kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
18
- return super().json(**kwargs_with_defaults)
19
-
20
- def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
21
- kwargs_with_defaults_exclude_unset: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
22
- kwargs_with_defaults_exclude_none: typing.Any = {"by_alias": True, "exclude_none": True, **kwargs}
23
-
24
- return deep_union_pydantic_dicts(
25
- super().dict(**kwargs_with_defaults_exclude_unset), super().dict(**kwargs_with_defaults_exclude_none)
26
- )
27
-
28
- class Config:
29
- frozen = True
30
- smart_union = True
31
- extra = pydantic_v1.Extra.allow
32
- json_encoders = {dt.datetime: serialize_datetime}