You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Bulk create — Pass a list of records to `create(...)` to invoke the bound `CreateMultiple` action; returns `list[str]` of GUIDs. If any payload omits `@odata.type` the SDK resolves and stamps it (cached).
8
8
- Bulk update — Provide a list of IDs with a single patch (broadcast) or a list of per‑record patches to `update(...)`; internally uses the bound `UpdateMultiple` action; returns nothing. Each record must include the primary key attribute when sent to UpdateMultiple.
9
9
- Retrieve multiple (paging) — Generator-based `get_multiple(...)` that yields pages, supports `$top` and Prefer: `odata.maxpagesize` (`page_size`).
10
-
- Upload files — Call `upload_file(entity_set, ...)` and a upload method will be auto picked (user can also overwrite the upload mode). See https://learn.microsoft.com/en-us/power-apps/developer/data-platform/file-column-data?tabs=sdk#upload-files
10
+
- Upload files — Call `upload_file(logical_name, ...)` and an upload method will be auto picked (you can override the mode). See https://learn.microsoft.com/en-us/power-apps/developer/data-platform/file-column-data?tabs=sdk#upload-files
@@ -17,8 +17,8 @@ A minimal Python SDK to use Microsoft Dataverse as a database for Azure AI Found
17
17
- Simple `DataverseClient` facade for CRUD, SQL (read-only), and table metadata.
18
18
- SQL-over-API: Constrained SQL (single SELECT with limited WHERE/TOP/ORDER BY) via native Web API `?sql=` parameter.
19
19
- Table metadata ops: create simple custom tables with primitive columns (string/int/decimal/float/datetime/bool) and delete them.
20
-
- Bulk create via `CreateMultiple` (collection-bound) by passing `list[dict]` to `create(entity_set, payloads)`; returns list of created IDs.
21
-
- Bulk update via `UpdateMultiple` (invoked internally) by calling unified `update(entity_set, ids, patch|patches)`; returns nothing.
20
+
- Bulk create via `CreateMultiple` (collection-bound) by passing `list[dict]` to `create(logical_name, payloads)`; returns list of created IDs.
21
+
- Bulk update via `UpdateMultiple` (invoked internally) by calling unified `update(logical_name, ids, patch|patches)`; returns nothing.
22
22
- Retrieve multiple with server-driven paging: `get_multiple(...)` yields lists (pages) following `@odata.nextLink`. Control total via `$top` and per-page via `page_size` (Prefer: `odata.maxpagesize`).
23
23
- Upload files, using either a single request (supports file size up to 128 MB) or chunk upload under the hood
24
24
- Optional pandas integration (`PandasODataClient`) for DataFrame based create / get / query.
Use `get_multiple(entity_set, ...)` to stream results page-by-page. You can cap total results with `$top` and hint the per-page size with `page_size` (sets Prefer: `odata.maxpagesize`).
219
+
Use `get_multiple(logical_name, ...)` to stream results page-by-page. You can cap total results with `$top` and hint the per-page size with `page_size` (sets Prefer: `odata.maxpagesize`).
220
220
221
221
```python
222
-
# Iterate pages of accounts ordered by name, selecting a few columns
223
222
pages = client.get_multiple(
224
-
"accounts",
223
+
"account",
225
224
select=["accountid", "name", "createdon"],
226
225
orderby=["name asc"],
227
226
top=10, # stop after 10 total rows (optional)
@@ -235,8 +234,8 @@ for page in pages: # each page is a list[dict]
235
234
print({"total_rows": total})
236
235
```
237
236
238
-
Parameters (all optional except `entity_set`)
239
-
-`entity_set`: str — Entity set (plural logical name), e.g., `"accounts"`.
client.delete(entity_set, rec[id_attr])# delete record
317
-
client.delete_table("SampleItem") # delete the table
314
+
client.delete(logical, rec_id) # delete record
315
+
client.delete_table("SampleItem") # delete table (friendly name or explicit schema new_SampleItem)
318
316
```
319
317
320
318
Notes:
@@ -327,7 +325,7 @@ Notes:
327
325
328
326
### Pandas helpers
329
327
330
-
See `examples/quickstart_pandas.py` for a DataFrame workflow via `PandasODataClient`.
328
+
`PandasODataClient` is a thin wrapper around the low-level client. All methods accept logical (singular) names (e.g. `account`, `new_sampleitem`), not entity set (plural) names. See `examples/quickstart_pandas.py` for a DataFrame workflow.
331
329
332
330
VS Code Tasks
333
331
- Install deps: `Install deps (pip)`
@@ -337,7 +335,6 @@ VS Code Tasks
337
335
- No general-purpose OData batching, upsert, or association operations yet.
338
336
-`DeleteMultiple` not yet exposed.
339
337
- Minimal retry policy in library (network-error only); examples include additional backoff for transient Dataverse consistency.
340
-
- Entity naming conventions in Dataverse: for bulk create the SDK resolves logical names from entity set metadata.
0 commit comments