Skip to content

Commit 5859f89

Browse files
committed
[change] Migrate TaskSearchRequest/FluentTasks, DataContractSpec yaml, test parity
- Add v9 TaskSearchRequest (msgspec.Struct) with json() method - Add v9 FluentTasks that produces v9 DSL and TaskSearchRequest - Add from_yaml()/to_yaml() to v9 DataContractSpec - Update test_task_client.py to use v9 models - Update open_lineage_test.py to use v9 FluentTasks - Update data_contract_test.py to use v9 DataContractSpec - Fix imports in atlan_fields_test, data_quality_rule_test, workflow_client - Document test_packages.py legacy Asset import (ClassVar fields) - Port v9 test files: credential, custom relationships, workflow, etc. - Client layer: validate_arguments migration, msgspec Struct support - Formatting changes All 7650 tests pass (1852 v9 + 5798 legacy)
1 parent 1132e18 commit 5859f89

100 files changed

Lines changed: 8945 additions & 185 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

pyatlan/client/admin.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# SPDX-License-Identifier: Apache-2.0
22
# Copyright 2025 Atlan Pte. Ltd.
33

4-
from pyatlan.validate import validate_arguments
5-
64
from pyatlan.client.common import AdminGetAdminEvents, AdminGetKeycloakEvents, ApiCaller
75
from pyatlan.errors import ErrorCode
86
from pyatlan.model.keycloak_events import (
@@ -11,6 +9,7 @@
119
KeycloakEventRequest,
1210
KeycloakEventResponse,
1311
)
12+
from pyatlan.validate import validate_arguments
1413

1514

1615
class AdminClient:

pyatlan/client/aio/admin.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# SPDX-License-Identifier: Apache-2.0
22
# Copyright 2025 Atlan Pte. Ltd.
33

4-
from pyatlan.validate import validate_arguments
5-
64
from pyatlan.client.common import (
75
AdminGetAdminEvents,
86
AdminGetKeycloakEvents,
@@ -14,6 +12,7 @@
1412
AsyncKeycloakEventResponse,
1513
)
1614
from pyatlan.model.keycloak_events import AdminEventRequest, KeycloakEventRequest
15+
from pyatlan.validate import validate_arguments
1716

1817

1918
class AsyncAdminClient:

pyatlan/client/aio/asset.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
)
1919

2020
from pydantic.v1 import StrictStr, constr
21-
22-
from pyatlan.validate import validate_arguments
2321
from tenacity import (
2422
retry,
2523
retry_if_exception_type,
@@ -86,6 +84,7 @@
8684
from pyatlan.model.fields.atlan_fields import AtlanField
8785
from pyatlan.model.response import AssetMutationResponse
8886
from pyatlan.model.search import IndexSearchRequest, Query
87+
from pyatlan.validate import validate_arguments
8988

9089
if TYPE_CHECKING:
9190
from pyatlan.model.search import IndexSearchRequest

pyatlan/client/aio/audit.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44

55
import logging
66

7-
from pyatlan.validate import validate_arguments
8-
97
from pyatlan.client.common import AsyncApiCaller, AuditSearch
108
from pyatlan.errors import ErrorCode
119
from pyatlan.model.aio.audit import AsyncAuditSearchResults
1210
from pyatlan.model.audit import AuditSearchRequest
11+
from pyatlan.validate import validate_arguments
1312

1413
LOGGER = logging.getLogger(__name__)
1514

pyatlan/client/aio/batch.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
from typing import TYPE_CHECKING, Dict, List, Optional, cast
66

7-
from pyatlan.validate import _is_model_instance, validate_arguments
8-
97
from pyatlan.client.asset import (
108
AssetCreationHandling,
119
AssetIdentity,
@@ -17,6 +15,7 @@
1715
from pyatlan.model.fluent_search import FluentSearch
1816
from pyatlan.model.response import AssetMutationResponse
1917
from pyatlan.model.search import DSL
18+
from pyatlan.validate import _is_model_instance, validate_arguments
2019

2120
if TYPE_CHECKING:
2221
from pyatlan.client.aio.client import AsyncAtlanClient

pyatlan/client/aio/client.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
CONNECTION_RETRY,
5858
VERSION,
5959
AtlanClient,
60+
_is_msgspec_struct,
6061
get_python_version,
6162
)
6263
from pyatlan.client.common import ImpersonateUser
@@ -488,6 +489,12 @@ async def _create_params(
488489
params["data"] = await async_request.json()
489490
elif api.consumes == APPLICATION_ENCODED_FORM:
490491
params["data"] = request_obj
492+
elif _is_msgspec_struct(request_obj):
493+
from pyatlan_v9.model.core import AtlanRequest as V9AtlanRequest
494+
495+
params["data"] = V9AtlanRequest(
496+
instance=request_obj, client=self
497+
).json()
491498
else:
492499
params["data"] = json.dumps(request_obj)
493500
return params

pyatlan/client/aio/contract.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44

55
from typing import Optional
66

7-
from pyatlan.validate import validate_arguments
8-
97
from pyatlan.client.common import AsyncApiCaller, ContractInit
108
from pyatlan.client.constants import CONTRACT_INIT_API
119
from pyatlan.errors import ErrorCode
1210
from pyatlan.model.assets import Asset
11+
from pyatlan.validate import validate_arguments
1312

1413

1514
class AsyncContractClient:

pyatlan/client/aio/credential.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
from typing import TYPE_CHECKING, Any, Dict, Optional
66

7-
from pyatlan.validate import validate_arguments
8-
97
from pyatlan.client.common import (
108
AsyncApiCaller,
119
CredentialCreate,
@@ -23,6 +21,7 @@
2321
CredentialResponse,
2422
CredentialTestResponse,
2523
)
24+
from pyatlan.validate import validate_arguments
2625

2726
if TYPE_CHECKING:
2827
pass

pyatlan/client/aio/file.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
# Copyright 2025 Atlan Pte. Ltd.
33
from __future__ import annotations
44

5-
from pyatlan.validate import validate_arguments
6-
75
from pyatlan.client.common import (
86
AsyncApiCaller,
97
FileDownload,
@@ -12,6 +10,7 @@
1210
)
1311
from pyatlan.errors import ErrorCode
1412
from pyatlan.model.file import PresignedURLRequest
13+
from pyatlan.validate import validate_arguments
1514

1615

1716
class AsyncFileClient:

pyatlan/client/aio/group.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66

77
from pydantic.v1 import parse_obj_as
88

9-
from pyatlan.validate import validate_arguments
10-
119
from pyatlan.client.common import (
1210
AsyncApiCaller,
1311
GroupCreate,
@@ -22,6 +20,7 @@
2220
from pyatlan.model.aio.user import AsyncUserResponse
2321
from pyatlan.model.group import AtlanGroup, CreateGroupResponse
2422
from pyatlan.model.user import UserRequest
23+
from pyatlan.validate import validate_arguments
2524

2625

2726
class AsyncGroupClient:

0 commit comments

Comments
 (0)