Migration Reference
This guide helps you move from the legacy Python package (import namespace acceldata-sdk, client acceldata_sdk) to TorchClient (import namespace acceldata-sdk-python, client acceldata).AdocClient
Legacy package notice
-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
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
orrequirements.txtwhen done.pyproject.toml
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, and ACCESS_KEY are unchanged.SECRET_KEY
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
PipelineThe largest behavioral change is the resource wrapper pattern. Legacy methods returned TorchClient / Pipeline objects that carried a hidden client reference and exposed methods like PipelineRun and create_job directly on the run.create_span
The new SDK returns and PipelineResource wrappers around generated API models. Chaining is similar, but types and some method names differ.PipelineRunResource
Create a Pipeline
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())
accepts both CreatePipelineInputRequest with Meta and legacy-style objects that expose code_location; the SDK normalizes either form.codeLocation
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 |
| |
|
|
| |
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 |
|
|
|
|
| |
|
|
| |
| |
moved to AssetSourceType.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
in the new SDK uses enum member names (for example, RuleType) for query parameters; legacy used wire strings such as RuleType.DATA_QUALITY. 'DATA-QUALITY' wire values (PolicyType, DATA-QUALITY, RECONCILIATION) are unchanged for DATA_CADENCE.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 |
| Still available on |
| 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
AdocClient
The following legacy methods are not on AdocClient. Migrate only if you still depend on them.TorchClient
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?