lambdadb 0.1.3__tar.gz → 0.2.1__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.

Potentially problematic release.


This version of lambdadb might be problematic. Click here for more details.

Files changed (68) hide show
  1. {lambdadb-0.1.3 → lambdadb-0.2.1}/PKG-INFO +74 -89
  2. {lambdadb-0.1.3 → lambdadb-0.2.1}/README-PYPI.md +71 -88
  3. {lambdadb-0.1.3 → lambdadb-0.2.1}/pyproject.toml +5 -1
  4. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/_hooks/__init__.py +0 -1
  5. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/_hooks/sdkhooks.py +4 -6
  6. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/_hooks/types.py +8 -2
  7. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/_version.py +4 -4
  8. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/basesdk.py +12 -20
  9. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/collections.py +12 -6
  10. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/docs.py +10 -0
  11. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/__init__.py +0 -87
  12. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/querycollectionop.py +0 -5
  13. lambdadb-0.2.1/src/lambdadb/projects.py +17 -0
  14. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/sdk.py +2 -7
  15. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/sdkconfiguration.py +0 -7
  16. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/forms.py +49 -28
  17. lambdadb-0.1.3/src/lambdadb/models/createprojectop.py +0 -39
  18. lambdadb-0.1.3/src/lambdadb/models/deleteprojectop.py +0 -52
  19. lambdadb-0.1.3/src/lambdadb/models/getprojectop.py +0 -39
  20. lambdadb-0.1.3/src/lambdadb/models/listprojectsop.py +0 -38
  21. lambdadb-0.1.3/src/lambdadb/models/projectresponse.py +0 -38
  22. lambdadb-0.1.3/src/lambdadb/models/updateprojectop.py +0 -58
  23. lambdadb-0.1.3/src/lambdadb/projects.py +0 -1228
  24. {lambdadb-0.1.3 → lambdadb-0.2.1}/LICENSE +0 -0
  25. {lambdadb-0.1.3 → lambdadb-0.2.1}/py.typed +0 -0
  26. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/__init__.py +0 -0
  27. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/_hooks/registration.py +0 -0
  28. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/errors/__init__.py +0 -0
  29. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/errors/apierror.py +0 -0
  30. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/errors/badrequest_error.py +0 -0
  31. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/errors/internalservererror.py +0 -0
  32. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/errors/resourcealreadyexists_error.py +0 -0
  33. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/errors/resourcenotfound_error.py +0 -0
  34. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/errors/toomanyrequests_error.py +0 -0
  35. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/errors/unauthenticated_error.py +0 -0
  36. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/httpclient.py +0 -0
  37. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/bulkupsertdocsop.py +0 -0
  38. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/collectionresponse.py +0 -0
  39. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/createcollectionop.py +0 -0
  40. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/deletecollectionop.py +0 -0
  41. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/deletedocsop.py +0 -0
  42. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/fetchdocsop.py +0 -0
  43. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/getbulkupsertdocsop.py +0 -0
  44. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/getcollectionop.py +0 -0
  45. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/indexconfigs_union.py +0 -0
  46. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/listcollectionsop.py +0 -0
  47. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/security.py +0 -0
  48. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/status.py +0 -0
  49. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/updatecollectionop.py +0 -0
  50. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/models/upsertdocsop.py +0 -0
  51. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/py.typed +0 -0
  52. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/types/__init__.py +0 -0
  53. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/types/basemodel.py +0 -0
  54. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/__init__.py +0 -0
  55. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/annotations.py +0 -0
  56. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/datetimes.py +0 -0
  57. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/enums.py +0 -0
  58. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/eventstreaming.py +0 -0
  59. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/headers.py +0 -0
  60. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/logger.py +0 -0
  61. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/metadata.py +0 -0
  62. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/queryparams.py +0 -0
  63. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/requestbodies.py +0 -0
  64. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/retries.py +0 -0
  65. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/security.py +0 -0
  66. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/serializers.py +0 -0
  67. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/url.py +0 -0
  68. {lambdadb-0.1.3 → lambdadb-0.2.1}/src/lambdadb/utils/values.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lambdadb
3
- Version: 0.1.3
3
+ Version: 0.2.1
4
4
  Summary: Python Client SDK Generated by Speakeasy.
5
5
  Author: Speakeasy
6
6
  Requires-Python: >=3.9.2
@@ -9,8 +9,10 @@ Classifier: Programming Language :: Python :: 3.10
9
9
  Classifier: Programming Language :: Python :: 3.11
10
10
  Classifier: Programming Language :: Python :: 3.12
11
11
  Classifier: Programming Language :: Python :: 3.13
12
+ Requires-Dist: httpcore (>=1.0.9)
12
13
  Requires-Dist: httpx (>=0.28.1)
13
14
  Requires-Dist: pydantic (>=2.11.2)
15
+ Project-URL: Repository, https://github.com/lambdadb/lambdadb-python-client.git
14
16
  Description-Content-Type: text/markdown
15
17
 
16
18
  # LambdaDB Python SDK
@@ -33,21 +35,21 @@ LambdaDB API: LambdaDB Open API Spec
33
35
  <!-- Start Table of Contents [toc] -->
34
36
  ## Table of Contents
35
37
  <!-- $toc-max-depth=2 -->
36
- * [LambdaDB Python SDK](#lambdadb-python-sdk)
37
- * [SDK Installation](#sdk-installation)
38
- * [IDE Support](#ide-support)
39
- * [SDK Example Usage](#sdk-example-usage)
40
- * [Authentication](#authentication)
41
- * [Available Resources and Operations](#available-resources-and-operations)
42
- * [Retries](#retries)
43
- * [Error Handling](#error-handling)
44
- * [Server Selection](#server-selection)
45
- * [Custom HTTP Client](#custom-http-client)
46
- * [Resource Management](#resource-management)
47
- * [Debugging](#debugging)
48
- * [Development](#development)
49
- * [Maturity](#maturity)
50
- * [Contributions](#contributions)
38
+ * [LambdaDB Python SDK](https://github.com/lambdadb/lambdadb-python-client/blob/master/#lambdadb-python-sdk)
39
+ * [SDK Installation](https://github.com/lambdadb/lambdadb-python-client/blob/master/#sdk-installation)
40
+ * [IDE Support](https://github.com/lambdadb/lambdadb-python-client/blob/master/#ide-support)
41
+ * [SDK Example Usage](https://github.com/lambdadb/lambdadb-python-client/blob/master/#sdk-example-usage)
42
+ * [Authentication](https://github.com/lambdadb/lambdadb-python-client/blob/master/#authentication)
43
+ * [Available Resources and Operations](https://github.com/lambdadb/lambdadb-python-client/blob/master/#available-resources-and-operations)
44
+ * [Retries](https://github.com/lambdadb/lambdadb-python-client/blob/master/#retries)
45
+ * [Error Handling](https://github.com/lambdadb/lambdadb-python-client/blob/master/#error-handling)
46
+ * [Server Selection](https://github.com/lambdadb/lambdadb-python-client/blob/master/#server-selection)
47
+ * [Custom HTTP Client](https://github.com/lambdadb/lambdadb-python-client/blob/master/#custom-http-client)
48
+ * [Resource Management](https://github.com/lambdadb/lambdadb-python-client/blob/master/#resource-management)
49
+ * [Debugging](https://github.com/lambdadb/lambdadb-python-client/blob/master/#debugging)
50
+ * [Development](https://github.com/lambdadb/lambdadb-python-client/blob/master/#development)
51
+ * [Maturity](https://github.com/lambdadb/lambdadb-python-client/blob/master/#maturity)
52
+ * [Contributions](https://github.com/lambdadb/lambdadb-python-client/blob/master/#contributions)
51
53
 
52
54
  <!-- End Table of Contents [toc] -->
53
55
 
@@ -126,14 +128,14 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u
126
128
 
127
129
  ```python
128
130
  # Synchronous Example
129
- from lambdadb import Lambdadb, models
131
+ from lambdadb import Lambdadb
130
132
 
131
133
 
132
- with Lambdadb() as l_client:
134
+ with Lambdadb(
135
+ project_api_key="<YOUR_PROJECT_API_KEY>",
136
+ ) as l_client:
133
137
 
134
- res = l_client.projects.list(security=models.ListProjectsSecurity(
135
- admin_api_key="<YOUR_ADMIN_API_KEY>",
136
- ))
138
+ res = l_client.projects.collections.list(project_name="<value>")
137
139
 
138
140
  # Handle response
139
141
  print(res)
@@ -145,15 +147,15 @@ The same SDK client can also be used to make asychronous requests by importing a
145
147
  ```python
146
148
  # Asynchronous Example
147
149
  import asyncio
148
- from lambdadb import Lambdadb, models
150
+ from lambdadb import Lambdadb
149
151
 
150
152
  async def main():
151
153
 
152
- async with Lambdadb() as l_client:
154
+ async with Lambdadb(
155
+ project_api_key="<YOUR_PROJECT_API_KEY>",
156
+ ) as l_client:
153
157
 
154
- res = await l_client.projects.list_async(security=models.ListProjectsSecurity(
155
- admin_api_key="<YOUR_ADMIN_API_KEY>",
156
- ))
158
+ res = await l_client.projects.collections.list_async(project_name="<value>")
157
159
 
158
160
  # Handle response
159
161
  print(res)
@@ -187,24 +189,6 @@ with Lambdadb(
187
189
  # Handle response
188
190
  print(res)
189
191
 
190
- ```
191
-
192
- ### Per-Operation Security Schemes
193
-
194
- Some operations in this SDK require the security scheme to be specified at the request level. For example:
195
- ```python
196
- from lambdadb import Lambdadb, models
197
-
198
-
199
- with Lambdadb() as l_client:
200
-
201
- res = l_client.projects.list(security=models.ListProjectsSecurity(
202
- admin_api_key="<YOUR_ADMIN_API_KEY>",
203
- ))
204
-
205
- # Handle response
206
- print(res)
207
-
208
192
  ```
209
193
  <!-- End Authentication [security] -->
210
194
 
@@ -215,30 +199,25 @@ with Lambdadb() as l_client:
215
199
  <summary>Available methods</summary>
216
200
 
217
201
 
218
- ### [projects](docs/sdks/projects/README.md)
202
+ ### [projects](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/projects/README.md)
219
203
 
220
- * [list](docs/sdks/projects/README.md#list) - List all projects in an account.
221
- * [create](docs/sdks/projects/README.md#create) - Create a project.
222
- * [get](docs/sdks/projects/README.md#get) - Get metadata of an existing project.
223
- * [delete](docs/sdks/projects/README.md#delete) - Delete an existing project.
224
- * [update](docs/sdks/projects/README.md#update) - Configure an existing project
225
204
 
226
- #### [projects.collections](docs/sdks/collections/README.md)
205
+ #### [projects.collections](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/collections/README.md)
227
206
 
228
- * [list](docs/sdks/collections/README.md#list) - List all collections in an existing project.
229
- * [create](docs/sdks/collections/README.md#create) - Create an collection.
230
- * [delete](docs/sdks/collections/README.md#delete) - Delete an existing collection.
231
- * [get](docs/sdks/collections/README.md#get) - Get metadata of an existing collection.
232
- * [update](docs/sdks/collections/README.md#update) - Configure an collection.
233
- * [query](docs/sdks/collections/README.md#query) - Search an collection with a query and return the most similar documents.
207
+ * [list](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/collections/README.md#list) - List all collections in an existing project.
208
+ * [create](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/collections/README.md#create) - Create an collection.
209
+ * [delete](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/collections/README.md#delete) - Delete an existing collection.
210
+ * [get](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/collections/README.md#get) - Get metadata of an existing collection.
211
+ * [update](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/collections/README.md#update) - Configure an collection.
212
+ * [query](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/collections/README.md#query) - Search an collection with a query and return the most similar documents.
234
213
 
235
- #### [projects.collections.docs](docs/sdks/docs/README.md)
214
+ #### [projects.collections.docs](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/docs/README.md)
236
215
 
237
- * [upsert](docs/sdks/docs/README.md#upsert) - Upsert documents into an collection. Note that the maximum supported payload size is 6MB.
238
- * [get_bulk_upsert](docs/sdks/docs/README.md#get_bulk_upsert) - Request required info to upload documents.
239
- * [bulk_upsert](docs/sdks/docs/README.md#bulk_upsert) - Bulk upsert documents into an collection. Note that the maximum supported object size is 200MB.
240
- * [delete](docs/sdks/docs/README.md#delete) - Delete documents by document IDs or query filter from an collection.
241
- * [fetch](docs/sdks/docs/README.md#fetch) - Lookup and return documents by document IDs from an collection.
216
+ * [upsert](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/docs/README.md#upsert) - Upsert documents into an collection. Note that the maximum supported payload size is 6MB.
217
+ * [get_bulk_upsert](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/docs/README.md#get_bulk_upsert) - Request required info to upload documents.
218
+ * [bulk_upsert](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/docs/README.md#bulk_upsert) - Bulk upsert documents into an collection. Note that the maximum supported object size is 200MB.
219
+ * [delete](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/docs/README.md#delete) - Delete documents by document IDs or query filter from an collection.
220
+ * [fetch](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/docs/README.md#fetch) - Lookup and return documents by document IDs from an collection.
242
221
 
243
222
  </details>
244
223
  <!-- End Available Resources and Operations [operations] -->
@@ -250,15 +229,15 @@ Some of the endpoints in this SDK support retries. If you use the SDK without an
250
229
 
251
230
  To change the default retry strategy for a single API call, simply provide a `RetryConfig` object to the call:
252
231
  ```python
253
- from lambdadb import Lambdadb, models
232
+ from lambdadb import Lambdadb
254
233
  from lambdadb.utils import BackoffStrategy, RetryConfig
255
234
 
256
235
 
257
- with Lambdadb() as l_client:
236
+ with Lambdadb(
237
+ project_api_key="<YOUR_PROJECT_API_KEY>",
238
+ ) as l_client:
258
239
 
259
- res = l_client.projects.list(security=models.ListProjectsSecurity(
260
- admin_api_key="<YOUR_ADMIN_API_KEY>",
261
- ),
240
+ res = l_client.projects.collections.list(project_name="<value>",
262
241
  RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False))
263
242
 
264
243
  # Handle response
@@ -268,17 +247,16 @@ with Lambdadb() as l_client:
268
247
 
269
248
  If you'd like to override the default retry strategy for all operations that support retries, you can use the `retry_config` optional parameter when initializing the SDK:
270
249
  ```python
271
- from lambdadb import Lambdadb, models
250
+ from lambdadb import Lambdadb
272
251
  from lambdadb.utils import BackoffStrategy, RetryConfig
273
252
 
274
253
 
275
254
  with Lambdadb(
276
255
  retry_config=RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False),
256
+ project_api_key="<YOUR_PROJECT_API_KEY>",
277
257
  ) as l_client:
278
258
 
279
- res = l_client.projects.list(security=models.ListProjectsSecurity(
280
- admin_api_key="<YOUR_ADMIN_API_KEY>",
281
- ))
259
+ res = l_client.projects.collections.list(project_name="<value>")
282
260
 
283
261
  # Handle response
284
262
  print(res)
@@ -302,26 +280,27 @@ By default, an API error will raise a errors.APIError exception, which has the f
302
280
 
303
281
  When custom error responses are specified for an operation, the SDK may also raise their associated exceptions. You can refer to respective *Errors* tables in SDK docs for more details on possible exception types for each operation. For example, the `list_async` method may raise the following exceptions:
304
282
 
305
- | Error Type | Status Code | Content Type |
306
- | --------------------------- | ----------- | ---------------- |
307
- | errors.UnauthenticatedError | 401 | application/json |
308
- | errors.TooManyRequestsError | 429 | application/json |
309
- | errors.InternalServerError | 500 | application/json |
310
- | errors.APIError | 4XX, 5XX | \*/\* |
283
+ | Error Type | Status Code | Content Type |
284
+ | ---------------------------- | ----------- | ---------------- |
285
+ | errors.UnauthenticatedError | 401 | application/json |
286
+ | errors.ResourceNotFoundError | 404 | application/json |
287
+ | errors.TooManyRequestsError | 429 | application/json |
288
+ | errors.InternalServerError | 500 | application/json |
289
+ | errors.APIError | 4XX, 5XX | \*/\* |
311
290
 
312
291
  ### Example
313
292
 
314
293
  ```python
315
- from lambdadb import Lambdadb, errors, models
294
+ from lambdadb import Lambdadb, errors
316
295
 
317
296
 
318
- with Lambdadb() as l_client:
297
+ with Lambdadb(
298
+ project_api_key="<YOUR_PROJECT_API_KEY>",
299
+ ) as l_client:
319
300
  res = None
320
301
  try:
321
302
 
322
- res = l_client.projects.list(security=models.ListProjectsSecurity(
323
- admin_api_key="<YOUR_ADMIN_API_KEY>",
324
- ))
303
+ res = l_client.projects.collections.list(project_name="<value>")
325
304
 
326
305
  # Handle response
327
306
  print(res)
@@ -329,6 +308,9 @@ with Lambdadb() as l_client:
329
308
  except errors.UnauthenticatedError as e:
330
309
  # handle e.data: errors.UnauthenticatedErrorData
331
310
  raise(e)
311
+ except errors.ResourceNotFoundError as e:
312
+ # handle e.data: errors.ResourceNotFoundErrorData
313
+ raise(e)
332
314
  except errors.TooManyRequestsError as e:
333
315
  # handle e.data: errors.TooManyRequestsErrorData
334
316
  raise(e)
@@ -348,16 +330,15 @@ with Lambdadb() as l_client:
348
330
 
349
331
  The default server can be overridden globally by passing a URL to the `server_url: str` optional parameter when initializing the SDK client instance. For example:
350
332
  ```python
351
- from lambdadb import Lambdadb, models
333
+ from lambdadb import Lambdadb
352
334
 
353
335
 
354
336
  with Lambdadb(
355
337
  server_url="https://{baseUrl}",
338
+ project_api_key="<YOUR_PROJECT_API_KEY>",
356
339
  ) as l_client:
357
340
 
358
- res = l_client.projects.list(security=models.ListProjectsSecurity(
359
- admin_api_key="<YOUR_ADMIN_API_KEY>",
360
- ))
341
+ res = l_client.projects.collections.list(project_name="<value>")
361
342
 
362
343
  # Handle response
363
344
  print(res)
@@ -457,14 +438,18 @@ The `Lambdadb` class implements the context manager protocol and registers a fin
457
438
  from lambdadb import Lambdadb
458
439
  def main():
459
440
 
460
- with Lambdadb() as l_client:
441
+ with Lambdadb(
442
+ project_api_key="<YOUR_PROJECT_API_KEY>",
443
+ ) as l_client:
461
444
  # Rest of application here...
462
445
 
463
446
 
464
447
  # Or when using async:
465
448
  async def amain():
466
449
 
467
- async with Lambdadb() as l_client:
450
+ async with Lambdadb(
451
+ project_api_key="<YOUR_PROJECT_API_KEY>",
452
+ ) as l_client:
468
453
  # Rest of application here...
469
454
  ```
470
455
  <!-- End Resource Management [resource-management] -->
@@ -18,21 +18,21 @@ LambdaDB API: LambdaDB Open API Spec
18
18
  <!-- Start Table of Contents [toc] -->
19
19
  ## Table of Contents
20
20
  <!-- $toc-max-depth=2 -->
21
- * [LambdaDB Python SDK](#lambdadb-python-sdk)
22
- * [SDK Installation](#sdk-installation)
23
- * [IDE Support](#ide-support)
24
- * [SDK Example Usage](#sdk-example-usage)
25
- * [Authentication](#authentication)
26
- * [Available Resources and Operations](#available-resources-and-operations)
27
- * [Retries](#retries)
28
- * [Error Handling](#error-handling)
29
- * [Server Selection](#server-selection)
30
- * [Custom HTTP Client](#custom-http-client)
31
- * [Resource Management](#resource-management)
32
- * [Debugging](#debugging)
33
- * [Development](#development)
34
- * [Maturity](#maturity)
35
- * [Contributions](#contributions)
21
+ * [LambdaDB Python SDK](https://github.com/lambdadb/lambdadb-python-client/blob/master/#lambdadb-python-sdk)
22
+ * [SDK Installation](https://github.com/lambdadb/lambdadb-python-client/blob/master/#sdk-installation)
23
+ * [IDE Support](https://github.com/lambdadb/lambdadb-python-client/blob/master/#ide-support)
24
+ * [SDK Example Usage](https://github.com/lambdadb/lambdadb-python-client/blob/master/#sdk-example-usage)
25
+ * [Authentication](https://github.com/lambdadb/lambdadb-python-client/blob/master/#authentication)
26
+ * [Available Resources and Operations](https://github.com/lambdadb/lambdadb-python-client/blob/master/#available-resources-and-operations)
27
+ * [Retries](https://github.com/lambdadb/lambdadb-python-client/blob/master/#retries)
28
+ * [Error Handling](https://github.com/lambdadb/lambdadb-python-client/blob/master/#error-handling)
29
+ * [Server Selection](https://github.com/lambdadb/lambdadb-python-client/blob/master/#server-selection)
30
+ * [Custom HTTP Client](https://github.com/lambdadb/lambdadb-python-client/blob/master/#custom-http-client)
31
+ * [Resource Management](https://github.com/lambdadb/lambdadb-python-client/blob/master/#resource-management)
32
+ * [Debugging](https://github.com/lambdadb/lambdadb-python-client/blob/master/#debugging)
33
+ * [Development](https://github.com/lambdadb/lambdadb-python-client/blob/master/#development)
34
+ * [Maturity](https://github.com/lambdadb/lambdadb-python-client/blob/master/#maturity)
35
+ * [Contributions](https://github.com/lambdadb/lambdadb-python-client/blob/master/#contributions)
36
36
 
37
37
  <!-- End Table of Contents [toc] -->
38
38
 
@@ -111,14 +111,14 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u
111
111
 
112
112
  ```python
113
113
  # Synchronous Example
114
- from lambdadb import Lambdadb, models
114
+ from lambdadb import Lambdadb
115
115
 
116
116
 
117
- with Lambdadb() as l_client:
117
+ with Lambdadb(
118
+ project_api_key="<YOUR_PROJECT_API_KEY>",
119
+ ) as l_client:
118
120
 
119
- res = l_client.projects.list(security=models.ListProjectsSecurity(
120
- admin_api_key="<YOUR_ADMIN_API_KEY>",
121
- ))
121
+ res = l_client.projects.collections.list(project_name="<value>")
122
122
 
123
123
  # Handle response
124
124
  print(res)
@@ -130,15 +130,15 @@ The same SDK client can also be used to make asychronous requests by importing a
130
130
  ```python
131
131
  # Asynchronous Example
132
132
  import asyncio
133
- from lambdadb import Lambdadb, models
133
+ from lambdadb import Lambdadb
134
134
 
135
135
  async def main():
136
136
 
137
- async with Lambdadb() as l_client:
137
+ async with Lambdadb(
138
+ project_api_key="<YOUR_PROJECT_API_KEY>",
139
+ ) as l_client:
138
140
 
139
- res = await l_client.projects.list_async(security=models.ListProjectsSecurity(
140
- admin_api_key="<YOUR_ADMIN_API_KEY>",
141
- ))
141
+ res = await l_client.projects.collections.list_async(project_name="<value>")
142
142
 
143
143
  # Handle response
144
144
  print(res)
@@ -172,24 +172,6 @@ with Lambdadb(
172
172
  # Handle response
173
173
  print(res)
174
174
 
175
- ```
176
-
177
- ### Per-Operation Security Schemes
178
-
179
- Some operations in this SDK require the security scheme to be specified at the request level. For example:
180
- ```python
181
- from lambdadb import Lambdadb, models
182
-
183
-
184
- with Lambdadb() as l_client:
185
-
186
- res = l_client.projects.list(security=models.ListProjectsSecurity(
187
- admin_api_key="<YOUR_ADMIN_API_KEY>",
188
- ))
189
-
190
- # Handle response
191
- print(res)
192
-
193
175
  ```
194
176
  <!-- End Authentication [security] -->
195
177
 
@@ -200,30 +182,25 @@ with Lambdadb() as l_client:
200
182
  <summary>Available methods</summary>
201
183
 
202
184
 
203
- ### [projects](docs/sdks/projects/README.md)
185
+ ### [projects](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/projects/README.md)
204
186
 
205
- * [list](docs/sdks/projects/README.md#list) - List all projects in an account.
206
- * [create](docs/sdks/projects/README.md#create) - Create a project.
207
- * [get](docs/sdks/projects/README.md#get) - Get metadata of an existing project.
208
- * [delete](docs/sdks/projects/README.md#delete) - Delete an existing project.
209
- * [update](docs/sdks/projects/README.md#update) - Configure an existing project
210
187
 
211
- #### [projects.collections](docs/sdks/collections/README.md)
188
+ #### [projects.collections](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/collections/README.md)
212
189
 
213
- * [list](docs/sdks/collections/README.md#list) - List all collections in an existing project.
214
- * [create](docs/sdks/collections/README.md#create) - Create an collection.
215
- * [delete](docs/sdks/collections/README.md#delete) - Delete an existing collection.
216
- * [get](docs/sdks/collections/README.md#get) - Get metadata of an existing collection.
217
- * [update](docs/sdks/collections/README.md#update) - Configure an collection.
218
- * [query](docs/sdks/collections/README.md#query) - Search an collection with a query and return the most similar documents.
190
+ * [list](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/collections/README.md#list) - List all collections in an existing project.
191
+ * [create](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/collections/README.md#create) - Create an collection.
192
+ * [delete](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/collections/README.md#delete) - Delete an existing collection.
193
+ * [get](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/collections/README.md#get) - Get metadata of an existing collection.
194
+ * [update](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/collections/README.md#update) - Configure an collection.
195
+ * [query](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/collections/README.md#query) - Search an collection with a query and return the most similar documents.
219
196
 
220
- #### [projects.collections.docs](docs/sdks/docs/README.md)
197
+ #### [projects.collections.docs](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/docs/README.md)
221
198
 
222
- * [upsert](docs/sdks/docs/README.md#upsert) - Upsert documents into an collection. Note that the maximum supported payload size is 6MB.
223
- * [get_bulk_upsert](docs/sdks/docs/README.md#get_bulk_upsert) - Request required info to upload documents.
224
- * [bulk_upsert](docs/sdks/docs/README.md#bulk_upsert) - Bulk upsert documents into an collection. Note that the maximum supported object size is 200MB.
225
- * [delete](docs/sdks/docs/README.md#delete) - Delete documents by document IDs or query filter from an collection.
226
- * [fetch](docs/sdks/docs/README.md#fetch) - Lookup and return documents by document IDs from an collection.
199
+ * [upsert](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/docs/README.md#upsert) - Upsert documents into an collection. Note that the maximum supported payload size is 6MB.
200
+ * [get_bulk_upsert](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/docs/README.md#get_bulk_upsert) - Request required info to upload documents.
201
+ * [bulk_upsert](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/docs/README.md#bulk_upsert) - Bulk upsert documents into an collection. Note that the maximum supported object size is 200MB.
202
+ * [delete](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/docs/README.md#delete) - Delete documents by document IDs or query filter from an collection.
203
+ * [fetch](https://github.com/lambdadb/lambdadb-python-client/blob/master/docs/sdks/docs/README.md#fetch) - Lookup and return documents by document IDs from an collection.
227
204
 
228
205
  </details>
229
206
  <!-- End Available Resources and Operations [operations] -->
@@ -235,15 +212,15 @@ Some of the endpoints in this SDK support retries. If you use the SDK without an
235
212
 
236
213
  To change the default retry strategy for a single API call, simply provide a `RetryConfig` object to the call:
237
214
  ```python
238
- from lambdadb import Lambdadb, models
215
+ from lambdadb import Lambdadb
239
216
  from lambdadb.utils import BackoffStrategy, RetryConfig
240
217
 
241
218
 
242
- with Lambdadb() as l_client:
219
+ with Lambdadb(
220
+ project_api_key="<YOUR_PROJECT_API_KEY>",
221
+ ) as l_client:
243
222
 
244
- res = l_client.projects.list(security=models.ListProjectsSecurity(
245
- admin_api_key="<YOUR_ADMIN_API_KEY>",
246
- ),
223
+ res = l_client.projects.collections.list(project_name="<value>",
247
224
  RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False))
248
225
 
249
226
  # Handle response
@@ -253,17 +230,16 @@ with Lambdadb() as l_client:
253
230
 
254
231
  If you'd like to override the default retry strategy for all operations that support retries, you can use the `retry_config` optional parameter when initializing the SDK:
255
232
  ```python
256
- from lambdadb import Lambdadb, models
233
+ from lambdadb import Lambdadb
257
234
  from lambdadb.utils import BackoffStrategy, RetryConfig
258
235
 
259
236
 
260
237
  with Lambdadb(
261
238
  retry_config=RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False),
239
+ project_api_key="<YOUR_PROJECT_API_KEY>",
262
240
  ) as l_client:
263
241
 
264
- res = l_client.projects.list(security=models.ListProjectsSecurity(
265
- admin_api_key="<YOUR_ADMIN_API_KEY>",
266
- ))
242
+ res = l_client.projects.collections.list(project_name="<value>")
267
243
 
268
244
  # Handle response
269
245
  print(res)
@@ -287,26 +263,27 @@ By default, an API error will raise a errors.APIError exception, which has the f
287
263
 
288
264
  When custom error responses are specified for an operation, the SDK may also raise their associated exceptions. You can refer to respective *Errors* tables in SDK docs for more details on possible exception types for each operation. For example, the `list_async` method may raise the following exceptions:
289
265
 
290
- | Error Type | Status Code | Content Type |
291
- | --------------------------- | ----------- | ---------------- |
292
- | errors.UnauthenticatedError | 401 | application/json |
293
- | errors.TooManyRequestsError | 429 | application/json |
294
- | errors.InternalServerError | 500 | application/json |
295
- | errors.APIError | 4XX, 5XX | \*/\* |
266
+ | Error Type | Status Code | Content Type |
267
+ | ---------------------------- | ----------- | ---------------- |
268
+ | errors.UnauthenticatedError | 401 | application/json |
269
+ | errors.ResourceNotFoundError | 404 | application/json |
270
+ | errors.TooManyRequestsError | 429 | application/json |
271
+ | errors.InternalServerError | 500 | application/json |
272
+ | errors.APIError | 4XX, 5XX | \*/\* |
296
273
 
297
274
  ### Example
298
275
 
299
276
  ```python
300
- from lambdadb import Lambdadb, errors, models
277
+ from lambdadb import Lambdadb, errors
301
278
 
302
279
 
303
- with Lambdadb() as l_client:
280
+ with Lambdadb(
281
+ project_api_key="<YOUR_PROJECT_API_KEY>",
282
+ ) as l_client:
304
283
  res = None
305
284
  try:
306
285
 
307
- res = l_client.projects.list(security=models.ListProjectsSecurity(
308
- admin_api_key="<YOUR_ADMIN_API_KEY>",
309
- ))
286
+ res = l_client.projects.collections.list(project_name="<value>")
310
287
 
311
288
  # Handle response
312
289
  print(res)
@@ -314,6 +291,9 @@ with Lambdadb() as l_client:
314
291
  except errors.UnauthenticatedError as e:
315
292
  # handle e.data: errors.UnauthenticatedErrorData
316
293
  raise(e)
294
+ except errors.ResourceNotFoundError as e:
295
+ # handle e.data: errors.ResourceNotFoundErrorData
296
+ raise(e)
317
297
  except errors.TooManyRequestsError as e:
318
298
  # handle e.data: errors.TooManyRequestsErrorData
319
299
  raise(e)
@@ -333,16 +313,15 @@ with Lambdadb() as l_client:
333
313
 
334
314
  The default server can be overridden globally by passing a URL to the `server_url: str` optional parameter when initializing the SDK client instance. For example:
335
315
  ```python
336
- from lambdadb import Lambdadb, models
316
+ from lambdadb import Lambdadb
337
317
 
338
318
 
339
319
  with Lambdadb(
340
320
  server_url="https://{baseUrl}",
321
+ project_api_key="<YOUR_PROJECT_API_KEY>",
341
322
  ) as l_client:
342
323
 
343
- res = l_client.projects.list(security=models.ListProjectsSecurity(
344
- admin_api_key="<YOUR_ADMIN_API_KEY>",
345
- ))
324
+ res = l_client.projects.collections.list(project_name="<value>")
346
325
 
347
326
  # Handle response
348
327
  print(res)
@@ -442,14 +421,18 @@ The `Lambdadb` class implements the context manager protocol and registers a fin
442
421
  from lambdadb import Lambdadb
443
422
  def main():
444
423
 
445
- with Lambdadb() as l_client:
424
+ with Lambdadb(
425
+ project_api_key="<YOUR_PROJECT_API_KEY>",
426
+ ) as l_client:
446
427
  # Rest of application here...
447
428
 
448
429
 
449
430
  # Or when using async:
450
431
  async def amain():
451
432
 
452
- async with Lambdadb() as l_client:
433
+ async with Lambdadb(
434
+ project_api_key="<YOUR_PROJECT_API_KEY>",
435
+ ) as l_client:
453
436
  # Rest of application here...
454
437
  ```
455
438
  <!-- End Resource Management [resource-management] -->
@@ -1,16 +1,18 @@
1
1
  [project]
2
2
  name = "lambdadb"
3
- version = "0.1.3"
3
+ version = "0.2.1"
4
4
  description = "Python Client SDK Generated by Speakeasy."
5
5
  authors = [{ name = "Speakeasy" },]
6
6
  readme = "README-PYPI.md"
7
7
  requires-python = ">=3.9.2"
8
8
  dependencies = [
9
+ "httpcore >=1.0.9",
9
10
  "httpx >=0.28.1",
10
11
  "pydantic >=2.11.2",
11
12
  ]
12
13
 
13
14
  [tool.poetry]
15
+ repository = "https://github.com/lambdadb/lambdadb-python-client.git"
14
16
  packages = [
15
17
  { include = "lambdadb", from = "src" }
16
18
  ]
@@ -36,6 +38,8 @@ pythonpath = ["src"]
36
38
 
37
39
  [tool.mypy]
38
40
  disable_error_code = "misc"
41
+ explicit_package_bases = true
42
+ mypy_path = "src"
39
43
 
40
44
  [[tool.mypy.overrides]]
41
45
  module = "typing_inspect"
@@ -2,4 +2,3 @@
2
2
 
3
3
  from .sdkhooks import *
4
4
  from .types import *
5
- from .registration import *
@@ -11,9 +11,8 @@ from .types import (
11
11
  AfterErrorHook,
12
12
  Hooks,
13
13
  )
14
- from .registration import init_hooks
15
14
  from typing import List, Optional, Tuple
16
- from lambdadb.httpclient import HttpClient
15
+ from lambdadb.sdkconfiguration import SDKConfiguration
17
16
 
18
17
 
19
18
  class SDKHooks(Hooks):
@@ -22,7 +21,6 @@ class SDKHooks(Hooks):
22
21
  self.before_request_hooks: List[BeforeRequestHook] = []
23
22
  self.after_success_hooks: List[AfterSuccessHook] = []
24
23
  self.after_error_hooks: List[AfterErrorHook] = []
25
- init_hooks(self)
26
24
 
27
25
  def register_sdk_init_hook(self, hook: SDKInitHook) -> None:
28
26
  self.sdk_init_hooks.append(hook)
@@ -36,10 +34,10 @@ class SDKHooks(Hooks):
36
34
  def register_after_error_hook(self, hook: AfterErrorHook) -> None:
37
35
  self.after_error_hooks.append(hook)
38
36
 
39
- def sdk_init(self, base_url: str, client: HttpClient) -> Tuple[str, HttpClient]:
37
+ def sdk_init(self, config: SDKConfiguration) -> SDKConfiguration:
40
38
  for hook in self.sdk_init_hooks:
41
- base_url, client = hook.sdk_init(base_url, client)
42
- return base_url, client
39
+ config = hook.sdk_init(config)
40
+ return config
43
41
 
44
42
  def before_request(
45
43
  self, hook_ctx: BeforeRequestContext, request: httpx.Request