Highlights
A large release: a full migration toolkit (SharePoint / Outlook / Teams)
with SMAT-style pre-migration assessment, first-class parallel execution
(execute_batch / execute_query_parallel), a data pipeline
(CSV/JSON/NDJSON/Excel + optional pandas), and a set of long-standing
SharePoint/OneDrive fixes (#881, #988, #915, #884, #793, #875).
No breaking API changes - a drop-in upgrade from 3.0.0.
Added
- Migration toolkit - product-agnostic core plus
sharepoint,outlook
andteamsproducts: resumableMigrationJob/MigrationSessionwith
checkpoints, filesystem/SharePoint/JSON/Teams archive adapters, parallel
transfer, a server-side ingestion job, and summary/item/failure reports. - SMAT-style pre-migration assessment — modular scans/containers,
MigrationAssessor/MigrationTenantAssessor/MailboxAssessor, typed scan
reports (LargeSites,LockedSites,MailFolders) and CSV/JSON export. - Parallel execution -
execute_batch(concurrency=N)onClientContext
andGraphClient, plusexecute_query_parallel(concurrency=N)for
pipelined I/O over independent queries; both retry transient failures per
request honoringRetry-After. - Data pipeline - CSV/JSON/NDJSON/Excel import-export,
from_csv/from_json/from_records, dynamic list-item columns, and an
optional pandas bridge (to_dataframe/from_dataframe). - SharePoint - taxonomy term store (OData v2.1/V4) support, site
primitives, folder download with version history, zip ↔ folder primitives,
Web.ensure_list,DriveItem.ensure_folder, and typed field creators. - Generator - OData function/action method generation, a return-type
descriptor/resolver, and list-typed primitive collection parameters.
Changed
- Thread-safe auth and form-digest caches (single-flight refresh);
ClientContext.clonenow shares the auth context and transport. - First-class retry (exponential backoff + jitter) and throttling
(rate-limit/health headers) primitives;ClientQuerygenerics made
consistent. - Examples reorganized into product galleries and an SPMT-style migration flow
(assess/→migrate/→monitor/).
Fixed
- Long file paths in moves (#988) - body-based
File.move_by_path/
MoveCopyUtil.move_file_by_path; slashes are no longer percent-encoded
inside OData string literals. - Bulk OneDrive downloads (#881) -
download_folderpaginates children
instead of stopping at the first page. - SharePoint paging falls back to
$skipwhen no next link is returned
(#915), and custom headers are preserved across pages. - Apostrophes in file paths (#884), in-memory upload streams (#793),
sharing-token UTF-8/padding (#875). @odata.typecasting for directory collections (#921); principal path
precedence (#895); delta-token/custom query-param handling (#948);
malformed JSON surfaced asClientRequestException.