Migration Reference
This guide helps you move from the legacy Python package acceldata-sdk (import namespace acceldata_sdk, client TorchClient) to acceldata-sdk-python (import namespace acceldata, client AdocClient).
Legacy package notice
acceldata-sdk-python is the supported path for catalog, pipeline, policy, and tagging workflows against ADOC. acceldata-sdk is now in maintenance mode and is supported for up to three additional releases.
acceldata-sdk-python uses OpenAPI-generated models (Pydantic v2), typed resource wrappers, and a clearer separation between API transport errors and SDK workflow errors.
At a Glance
Topic | Legacy (acceldata-sdk) | New (acceldata-sdk-python) |
PyPI package | acceldata-sdk | acceldata-sdk-python |
Import root |
| acceldata |
Client class |
|
|
Python version | 3.7+ | 3.10+ |
Models | Hand-written classes / dataclasses | OpenAPI-generated Pydantic models + SDK resource wrappers |
|
|
|
Policy execution type param |
|
|
Incremental policy runs |
|
|
Job I/O references |
|
|
Job / pipeline metadata |
|
|
Policy status |
|
|
SDK usage errors |
|
|
Connection timeouts |
|
|
Prerequisites
- Upgrade Python to 3.10 or newer. The new SDK does not support Python 3.7–3.9.
- Align SDK and ADOC versions. Install an acceldata-sdk-python release that matches your ADOC deployment.
- Plan a dependency swap, not a side-by-side install. Both packages target overlapping functionality but use different import paths. Migrate imports and remove acceldata-sdk from
requirements.txtorpyproject.tomlwhen done.
Step 1: Change the Package
Before:
pip install acceldata-sdk
After:
pip uninstall acceldata-sdk # when you are ready to cut overpip install acceldata-sdk-python
Update dependency files:
- acceldata-sdk>=26.4.0+ acceldata-sdk-python>=<target-version>
Step 2: Update Imports and Client Construction
Client
Legacy | New |
|
|
|
|
|
|
|
|
| Removed — not supported |
Before:
from acceldata_sdk.torch_client import TorchClientclient = TorchClient( url="https://<your-adoc-url>", access_key="<access-key>", secret_key="<secret-key>", torch_connection_timeout_ms=10_000, torch_read_timeout_ms=20_000,)
After:
from acceldata.client.adoc_client import AdocClientclient = AdocClient( url="https://<your-adoc-url>", access_key="<access-key>", secret_key="<secret-key>", connection_timeout_ms=10_000, read_timeout_ms=20_000, # Optional: verify_ssl=False, or a path to a CA bundle for private TLS)
Constants
Legacy | New |
|
|
|
|
Environment Variables (Scripts / Operators)
If you configure the client from the environment (common in Airflow and CI), rename the timeout variables:
Legacy | New |
|
|
|
|
URL, ACCESS_KEY, and SECRET_KEY are unchanged.
Step 3: Error Handling
Before:
from acceldata_sdk.errors import APIError, TorchSdkException
After:
from acceldata.exceptions import APIError, ApiException, AcceldataSdkException
Legacy | New | When Raised |
|
| ADOC returned a non-2xx HTTP response. |
— |
| Network or transport failure before a response. |
|
| Invalid SDK usage or workflow failure (for example, a policy result with |
Step 4: Pipelines
The largest behavioral change is the resource wrapper pattern. Legacy TorchClient methods returned Pipeline / PipelineRun objects that carried a hidden client reference and exposed methods like create_job and create_span directly on the run.
The new SDK returns PipelineResource and PipelineRunResource wrappers around generated API models. Chaining is similar, but types and some method names differ.
Create a Pipeline
Legacy | New |
|
|
|
|
|
|
Before:
from acceldata_sdk.models.pipeline import CreatePipeline, PipelineMetadatapipeline = client.create_pipeline( CreatePipeline( uid="my_pipeline", name="My pipeline", meta=PipelineMetadata(owner="team-a", team="data", codeLocation="..."), ))
After:
from acceldata.models.api.pipeline.meta import Metafrom acceldata.models.sdk.pipeline.create_pipeline_input_request import CreatePipelineInputRequestpipeline = client.create_pipeline( CreatePipelineInputRequest( uid="my_pipeline", name="My pipeline", meta=Meta(owner="team-a", team="data", code_location="..."), ))# Inspect API-shaped data:print(pipeline.to_dict())
CreatePipelineInputRequest accepts both Meta with code_location and legacy-style objects that expose codeLocation; the SDK normalizes either form.
Load and List Pipelines
Legacy | New |
|
|
|
|
— |
|
— |
|
— |
|
— |
|
Pipeline Runs
Legacy | New |
|
|
| Same keyword-only lookup on |
|
|
|
|
|
|
— |
|
— |
|
Continuation IDs for multi-stage workflows are unchanged in semantics.
Jobs and Lineage References
Legacy | New |
|
|
|
|
| Meta |
Before:
from acceldata_sdk.models.job import CreateJob, Node, JobMetadatarun.create_job( CreateJob( uid="extract_job", name="Extract", inputs=[Node(asset_uid="WAREHOUSE.db.schema.table")], outputs=[Node(job_uid="transform_job")], meta=JobMetadata(owner="etl", team="data", codeLocation="..."), bounded_by_span=True, span_uid="extract_span", ))
After:
from acceldata.models.api.pipeline.meta import Metafrom acceldata.models.sdk.pipeline import CreateJobInput, JobInputOutputRefrun.create_job( CreateJobInput( uid="extract_job", name="Extract", inputs=[JobInputOutputRef(asset_uid="WAREHOUSE.db.schema.table")], outputs=[JobInputOutputRef(job_uid="transform_job")], meta=Meta(owner="etl", team="data", code_location="..."), bounded_by_span=True, span_uid="extract_span", ))
Spans and Events
Legacy | New |
|
|
|
|
|
|
Step 5: Catalog — Datasources, Assets, Profiling
Datasources
Legacy | New |
|
|
|
|
|
|
|
|
|
|
|
|
AssetSourceType moved to acceldata.models.sdk.catalog.asset_source_type.
Assets
Legacy | New |
|
|
|
|
|
|
|
|
— |
|
Step 6: Policies and Rule Execution
Most policy flows map one-to-one, but parameter names and execution scoping changed.
Fetch and List Policies
Legacy | New |
|
|
|
|
| Same; |
Import paths:
# Legacyfrom acceldata_sdk.constants import PolicyType, FailureStrategy, RuleExecutionStatusfrom acceldata_sdk.models.ruleExecutionResult import PolicyFilter, RuleType# Newfrom acceldata.models.sdk.catalog import PolicyType, PolicyFilter, RuleType, RuleExecutionStatusfrom acceldata.models.sdk.catalog.executor import FailureStrategy
RuleType in the new SDK uses enum member names (for example, RuleType.DATA_QUALITY) for query parameters; legacy used wire strings such as 'DATA-QUALITY'. PolicyType wire values (DATA-QUALITY, RECONCILIATION, DATA_CADENCE) are unchanged for get_policy.
Execute a Policy
Legacy | New |
|
|
|
|
|
|
Optional | Required |
Returns execution handle / result inline when | Returns |
Before (full run, synchronous):
from acceldata_sdk.constants import PolicyType, FailureStrategyresult = client.execute_policy( PolicyType.DATA_QUALITY, policy_id=123, sync=True, incremental=False, failure_strategy=FailureStrategy.FailOnError, pipeline_run_id=run_id,)
After (equivalent):
from acceldata.models.sdk.catalog import PolicyExecutionType, RuleTypefrom acceldata.models.sdk.catalog.policy_execution_request import PolicyExecutionInputfrom acceldata.models.sdk.catalog.executor import FailureStrategyexecutor = client.execute_policy( RuleType.DATA_QUALITY, 123, PolicyExecutionInput(executionType=PolicyExecutionType.FULL), sync=True, failure_strategy=FailureStrategy.FailOnError, pipeline_run_id=run_id,)# When sync=True, executor already holds the terminal result; you can also call:# result = executor.get_result()
Asynchronous execution:
executor = client.execute_policy( RuleType.DATA_QUALITY, 123, PolicyExecutionInput(executionType=PolicyExecutionType.FULL), sync=False,)status = executor.get_status()result = executor.get_result(failure_strategy=FailureStrategy.DoNotFail)
Status, Results, and Per-Type Helpers
Legacy | New |
|
|
|
|
| Same method names; return ExecutionResult (typed API models) |
| Still available on AdocClient; prefer unified execute_policy |
| Unchanged names |
Step 7: Pipeline Tags
Pipeline tag types moved to generated models:
from acceldata.models.api.pipeline.tag import TagTag(name="env:prod", displayName="Environment: Production")
Removed or Not Exposed on AdocClient
The following legacy TorchClient methods are not on AdocClient. Migrate only if you still depend on them.
Legacy Method | Notes |
| Removed. |
| Removed. |
| Removed. |
| Was unimplemented in the legacy SDK, and remains unimplemented here. |
| Not on the client; use asset or datasource type listing APIs. |
| Use asset tag APIs or pipeline tag replacement. |
| Available on |
| Available on |
| Deprecated; moved to the management service. |
Transient HTTP retries on policy executions are new in acceldata-sdk-python.
What's Next
After you complete this section, explore:
- Migration Reference – Review the support policy and the full migration checklist.
- acceldata-sdk-python Overview – Review installation, client setup, and error handling in the new SDK.

Have a suggestion?