lambdadb 0.7.3.dev0__tar.gz → 0.7.4.dev0__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 (71) hide show
  1. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/PKG-INFO +1 -1
  2. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/pyproject.toml +2 -2
  3. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/basesdk.py +5 -0
  4. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/collectionresponse.py +1 -1
  5. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/createcollectionop.py +1 -1
  6. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/deletedocsop.py +1 -1
  7. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/fetchdocsop.py +2 -2
  8. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/fieldsselector_union.py +2 -2
  9. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/getbulkupsertdocsop.py +1 -1
  10. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/indexconfigs_union.py +2 -2
  11. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/listcollectionsop.py +1 -1
  12. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/listdocsop.py +2 -2
  13. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/partitionconfig.py +1 -1
  14. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/querycollectionop.py +3 -3
  15. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/security.py +1 -1
  16. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/sdk.py +32 -8
  17. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/sdkconfiguration.py +2 -3
  18. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/types/basemodel.py +6 -0
  19. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/version.py +1 -1
  20. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/LICENSE +0 -0
  21. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/README.md +0 -0
  22. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/py.typed +0 -0
  23. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/__init__.py +0 -0
  24. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/_hooks/__init__.py +0 -0
  25. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/_hooks/registration.py +0 -0
  26. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/_hooks/sdkhooks.py +0 -0
  27. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/_hooks/types.py +0 -0
  28. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/collection.py +0 -0
  29. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/collections.py +0 -0
  30. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/docs.py +0 -0
  31. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/errors/__init__.py +0 -0
  32. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/errors/apierror.py +0 -0
  33. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/errors/badrequest_error.py +0 -0
  34. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/errors/internalservererror.py +0 -0
  35. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/errors/lambdadberror.py +0 -0
  36. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/errors/no_response_error.py +0 -0
  37. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/errors/resourcealreadyexists_error.py +0 -0
  38. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/errors/resourcenotfound_error.py +0 -0
  39. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/errors/responsevalidationerror.py +0 -0
  40. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/errors/toomanyrequests_error.py +0 -0
  41. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/errors/unauthenticated_error.py +0 -0
  42. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/httpclient.py +0 -0
  43. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/__init__.py +0 -0
  44. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/bulkupsertdocsop.py +0 -0
  45. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/deletecollectionop.py +0 -0
  46. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/getcollectionop.py +0 -0
  47. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/messageresponse.py +0 -0
  48. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/partitionfilter.py +0 -0
  49. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/status.py +0 -0
  50. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/updatecollectionop.py +0 -0
  51. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/updatedocsop.py +0 -0
  52. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/models/upsertdocsop.py +0 -0
  53. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/py.typed +0 -0
  54. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/types/__init__.py +0 -0
  55. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/__init__.py +0 -0
  56. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/annotations.py +0 -0
  57. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/datetimes.py +0 -0
  58. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/enums.py +0 -0
  59. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/eventstreaming.py +0 -0
  60. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/forms.py +0 -0
  61. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/headers.py +0 -0
  62. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/logger.py +0 -0
  63. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/metadata.py +0 -0
  64. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/queryparams.py +0 -0
  65. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/requestbodies.py +0 -0
  66. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/retries.py +0 -0
  67. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/security.py +0 -0
  68. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/serializers.py +0 -0
  69. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/unmarshal_json_response.py +0 -0
  70. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/url.py +0 -0
  71. {lambdadb-0.7.3.dev0 → lambdadb-0.7.4.dev0}/src/lambdadb/utils/values.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lambdadb
3
- Version: 0.7.3.dev0
3
+ Version: 0.7.4.dev0
4
4
  Summary: The Official LambdaDB Python SDK.
5
5
  License-File: LICENSE
6
6
  Author: Functional Systems, Inc.
@@ -1,7 +1,7 @@
1
1
 
2
2
  [project]
3
3
  name = "lambdadb"
4
- version = "0.7.3.dev0"
4
+ version = "0.7.4.dev0"
5
5
  description = "The Official LambdaDB Python SDK."
6
6
  authors = [{ name = "Functional Systems, Inc." },]
7
7
  readme = "README.md"
@@ -56,5 +56,5 @@ ignore_missing_imports = true
56
56
  [tool.pyright]
57
57
  venvPath = "."
58
58
  venv = ".venv"
59
-
59
+ extraPaths = ["src"]
60
60
 
@@ -152,6 +152,11 @@ class BaseSDK:
152
152
  http_headers: Optional[Mapping[str, str]] = None,
153
153
  allow_empty_value: Optional[List[str]] = None,
154
154
  ) -> httpx.Request:
155
+ if client is None:
156
+ raise ValueError(
157
+ "HTTP client is not available; this SDK instance may have been closed."
158
+ )
159
+
155
160
  query_params = {}
156
161
 
157
162
  url = url_override
@@ -117,7 +117,7 @@ class CollectionResponse(BaseModel):
117
117
 
118
118
  for n, f in type(self).model_fields.items():
119
119
  k = f.alias or n
120
- val = serialized.get(k)
120
+ val = self._get_serialized_value(serialized, n, f.alias)
121
121
 
122
122
  if val != UNSET_SENTINEL:
123
123
  if val is not None or k not in optional_fields:
@@ -67,7 +67,7 @@ class CreateCollectionRequest(BaseModel):
67
67
 
68
68
  for n, f in type(self).model_fields.items():
69
69
  k = f.alias or n
70
- val = serialized.get(k)
70
+ val = self._get_serialized_value(serialized, n, f.alias)
71
71
 
72
72
  if val != UNSET_SENTINEL:
73
73
  if val is not None or k not in optional_fields:
@@ -37,7 +37,7 @@ class DeleteDocsRequestBody(BaseModel):
37
37
 
38
38
  for n, f in type(self).model_fields.items():
39
39
  k = f.alias or n
40
- val = serialized.get(k)
40
+ val = self._get_serialized_value(serialized, n, f.alias)
41
41
 
42
42
  if val != UNSET_SENTINEL:
43
43
  if val is not None or k not in optional_fields:
@@ -55,7 +55,7 @@ class FetchDocsRequestBody(BaseModel):
55
55
 
56
56
  for n, f in type(self).model_fields.items():
57
57
  k = f.alias or n
58
- val = serialized.get(k)
58
+ val = self._get_serialized_value(serialized, n, f.alias)
59
59
 
60
60
  if val != UNSET_SENTINEL:
61
61
  if val is not None or k not in optional_fields:
@@ -154,7 +154,7 @@ class FetchDocsResponse(BaseModel):
154
154
 
155
155
  for n, f in type(self).model_fields.items():
156
156
  k = f.alias or n
157
- val = serialized.get(k)
157
+ val = self._get_serialized_value(serialized, n, f.alias)
158
158
 
159
159
  if val != UNSET_SENTINEL:
160
160
  if val is not None or k not in optional_fields:
@@ -29,7 +29,7 @@ class FieldsSelector2(BaseModel):
29
29
 
30
30
  for n, f in type(self).model_fields.items():
31
31
  k = f.alias or n
32
- val = serialized.get(k)
32
+ val = self._get_serialized_value(serialized, n, f.alias)
33
33
 
34
34
  if val != UNSET_SENTINEL:
35
35
  if val is not None or k not in optional_fields:
@@ -60,7 +60,7 @@ class FieldsSelector1(BaseModel):
60
60
 
61
61
  for n, f in type(self).model_fields.items():
62
62
  k = f.alias or n
63
- val = serialized.get(k)
63
+ val = self._get_serialized_value(serialized, n, f.alias)
64
64
 
65
65
  if val != UNSET_SENTINEL:
66
66
  if val is not None or k not in optional_fields:
@@ -81,7 +81,7 @@ class GetBulkUpsertDocsResponse(BaseModel):
81
81
 
82
82
  for n, f in type(self).model_fields.items():
83
83
  k = f.alias or n
84
- val = serialized.get(k)
84
+ val = self._get_serialized_value(serialized, n, f.alias)
85
85
 
86
86
  if val != UNSET_SENTINEL:
87
87
  if val is not None or k not in optional_fields:
@@ -86,7 +86,7 @@ class IndexConfigsVector(BaseModel):
86
86
 
87
87
  for n, f in type(self).model_fields.items():
88
88
  k = f.alias or n
89
- val = serialized.get(k)
89
+ val = self._get_serialized_value(serialized, n, f.alias)
90
90
 
91
91
  if val != UNSET_SENTINEL:
92
92
  if val is not None or k not in optional_fields:
@@ -126,7 +126,7 @@ class IndexConfigsText(BaseModel):
126
126
 
127
127
  for n, f in type(self).model_fields.items():
128
128
  k = f.alias or n
129
- val = serialized.get(k)
129
+ val = self._get_serialized_value(serialized, n, f.alias)
130
130
 
131
131
  if val != UNSET_SENTINEL:
132
132
  if val is not None or k not in optional_fields:
@@ -39,7 +39,7 @@ class ListCollectionsRequest(BaseModel):
39
39
  m = {}
40
40
  for n, f in type(self).model_fields.items():
41
41
  k = f.alias or n
42
- val = serialized.get(k)
42
+ val = self._get_serialized_value(serialized, n, f.alias)
43
43
  if val != UNSET_SENTINEL:
44
44
  if val is not None or k not in optional_fields:
45
45
  m[k] = val
@@ -48,7 +48,7 @@ class ListDocsRequest(BaseModel):
48
48
 
49
49
  for n, f in type(self).model_fields.items():
50
50
  k = f.alias or n
51
- val = serialized.get(k)
51
+ val = self._get_serialized_value(serialized, n, f.alias)
52
52
 
53
53
  if val != UNSET_SENTINEL:
54
54
  if val is not None or k not in optional_fields:
@@ -109,7 +109,7 @@ class ListDocsResponse(BaseModel):
109
109
 
110
110
  for n, f in type(self).model_fields.items():
111
111
  k = f.alias or n
112
- val = serialized.get(k)
112
+ val = self._get_serialized_value(serialized, n, f.alias)
113
113
 
114
114
  if val != UNSET_SENTINEL:
115
115
  if val is not None or k not in optional_fields:
@@ -44,7 +44,7 @@ class PartitionConfig(BaseModel):
44
44
 
45
45
  for n, f in type(self).model_fields.items():
46
46
  k = f.alias or n
47
- val = serialized.get(k)
47
+ val = self._get_serialized_value(serialized, n, f.alias)
48
48
 
49
49
  if val != UNSET_SENTINEL:
50
50
  if val is not None or k not in optional_fields:
@@ -72,7 +72,7 @@ class QueryCollectionRequestBody(BaseModel):
72
72
 
73
73
  for n, f in type(self).model_fields.items():
74
74
  k = f.alias or n
75
- val = serialized.get(k)
75
+ val = self._get_serialized_value(serialized, n, f.alias)
76
76
 
77
77
  if val != UNSET_SENTINEL:
78
78
  if val is not None or k not in optional_fields:
@@ -126,7 +126,7 @@ class QueryCollectionDoc(BaseModel):
126
126
 
127
127
  for n, f in type(self).model_fields.items():
128
128
  k = f.alias or n
129
- val = serialized.get(k)
129
+ val = self._get_serialized_value(serialized, n, f.alias)
130
130
 
131
131
  if val != UNSET_SENTINEL:
132
132
  if val is not None or k not in optional_fields:
@@ -199,7 +199,7 @@ class QueryCollectionResponse(BaseModel):
199
199
 
200
200
  for n, f in type(self).model_fields.items():
201
201
  k = f.alias or n
202
- val = serialized.get(k)
202
+ val = self._get_serialized_value(serialized, n, f.alias)
203
203
 
204
204
  if val != UNSET_SENTINEL:
205
205
  if val is not None or k not in optional_fields:
@@ -33,7 +33,7 @@ class Security(BaseModel):
33
33
 
34
34
  for n, f in type(self).model_fields.items():
35
35
  k = f.alias or n
36
- val = serialized.get(k)
36
+ val = self._get_serialized_value(serialized, n, f.alias)
37
37
 
38
38
  if val != UNSET_SENTINEL:
39
39
  if val is not None or k not in optional_fields:
@@ -1,5 +1,6 @@
1
1
  """Originally generated by Speakeasy; now maintained manually."""
2
2
 
3
+ import asyncio
3
4
  from .basesdk import BaseSDK
4
5
  from .httpclient import AsyncHttpClient, ClientOwner, HttpClient, close_clients
5
6
  from .sdkconfiguration import (
@@ -214,34 +215,57 @@ class LambdaDB(BaseSDK):
214
215
 
215
216
  def close(self) -> None:
216
217
  """
217
- Close the underlying synchronous HTTP client (if owned by this SDK).
218
+ Close the underlying HTTP clients (if owned by this SDK).
218
219
 
219
220
  Notes:
220
- - If you passed a custom `client=...` into the SDK, you own its lifecycle and
221
- this method will not close it.
221
+ - If you passed custom `client=...` or `async_client=...` instances into the
222
+ SDK, you own their lifecycle and this method will not close them.
222
223
  - After closing, this SDK instance should not be used for further requests.
223
224
  """
225
+ sync_client = self.sdk_configuration.client
226
+ async_client = self.sdk_configuration.async_client
227
+
224
228
  if (
225
- self.sdk_configuration.client is not None
229
+ sync_client is not None
226
230
  and not self.sdk_configuration.client_supplied
227
231
  ):
228
- self.sdk_configuration.client.close()
232
+ sync_client.close()
233
+
234
+ if (
235
+ async_client is not None
236
+ and not self.sdk_configuration.async_client_supplied
237
+ ):
238
+ try:
239
+ loop = asyncio.get_running_loop()
240
+ except RuntimeError:
241
+ asyncio.run(async_client.aclose())
242
+ else:
243
+ loop.create_task(async_client.aclose())
244
+
229
245
  self.sdk_configuration.client = None
246
+ self.sdk_configuration.async_client = None
230
247
 
231
248
  async def aclose(self) -> None:
232
249
  """
233
- Close the underlying async HTTP client (if owned by this SDK).
250
+ Close the underlying HTTP clients (if owned by this SDK).
234
251
 
235
252
  Notes:
236
- - If you passed a custom `async_client=...` into the SDK, you own its lifecycle and
237
- this method will not close it.
253
+ - If you passed custom `client=...` or `async_client=...` instances into the
254
+ SDK, you own their lifecycle and this method will not close them.
238
255
  - After closing, this SDK instance should not be used for further requests.
239
256
  """
257
+ if (
258
+ self.sdk_configuration.client is not None
259
+ and not self.sdk_configuration.client_supplied
260
+ ):
261
+ self.sdk_configuration.client.close()
262
+
240
263
  if (
241
264
  self.sdk_configuration.async_client is not None
242
265
  and not self.sdk_configuration.async_client_supplied
243
266
  ):
244
267
  await self.sdk_configuration.async_client.aclose()
268
+ self.sdk_configuration.client = None
245
269
  self.sdk_configuration.async_client = None
246
270
 
247
271
  def __exit__(self, exc_type, exc_val, exc_tb):
@@ -6,7 +6,6 @@ from .version import GEN_VERSION, OPENAPI_DOC_VERSION, get_user_agent, get_versi
6
6
  from dataclasses import dataclass, field
7
7
  from lambdadb import models
8
8
  from lambdadb.types import OptionalNullable, UNSET
9
- from pydantic import Field
10
9
  from typing import Callable, Dict, List, Optional, Tuple, Union
11
10
 
12
11
 
@@ -30,7 +29,7 @@ class SDKConfiguration:
30
29
  security: Optional[Union[models.Security, Callable[[], models.Security]]] = None
31
30
  server_url: Optional[str] = ""
32
31
  server_idx: Optional[int] = 0
33
- server_defaults: List[Dict[str, str]] = field(default_factory=List)
32
+ server_defaults: List[Dict[str, str]] = field(default_factory=list)
34
33
  base_url: Optional[str] = None
35
34
  project_name: Optional[str] = None
36
35
  language: str = "python"
@@ -38,7 +37,7 @@ class SDKConfiguration:
38
37
  sdk_version: str = field(default_factory=get_version)
39
38
  gen_version: str = GEN_VERSION
40
39
  user_agent: str = field(default_factory=get_user_agent)
41
- retry_config: OptionalNullable[RetryConfig] = Field(default_factory=lambda: UNSET)
40
+ retry_config: OptionalNullable[RetryConfig] = field(default_factory=lambda: UNSET)
42
41
  timeout_ms: Optional[int] = None
43
42
 
44
43
  def get_server_details(self) -> Tuple[str, Dict[str, str]]:
@@ -12,6 +12,12 @@ class BaseModel(PydanticBaseModel):
12
12
  populate_by_name=True, arbitrary_types_allowed=True, protected_namespaces=()
13
13
  )
14
14
 
15
+ @staticmethod
16
+ def _get_serialized_value(serialized: dict[str, Any], name: str, alias: Optional[str]) -> Any:
17
+ if alias is not None and alias in serialized:
18
+ return serialized[alias]
19
+ return serialized.get(name)
20
+
15
21
 
16
22
  class Unset(BaseModel):
17
23
  @model_serializer(mode="plain")
@@ -3,7 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  TITLE: str = "lambdadb"
6
- SDK_VERSION: str = "0.7.3.dev0"
6
+ SDK_VERSION: str = "0.7.4.dev0"
7
7
  OPENAPI_DOC_VERSION: str = "1.1.1"
8
8
  GEN_VERSION: str = "2.798.0"
9
9
 
File without changes
File without changes
File without changes