Skip to content

Commit 462b05a

Browse files
committed
feat: Add Pydantic V1 compatibility layer for safe migration
Implement systematic V1 compatibility across core modules: - Replace 'from pydantic import' with 'from pydantic.v1 import' - Update core configuration, task execution, and OAuth components - Maintain all existing functionality without breaking changes Updated modules: - Core: Configuration models, dependency resolution, version handling - Tasks: Metadata ETL, bulk data operations, package management - OAuth: Authentication and client models - Utils: YAML parsing, options processing, parallel execution This approach is used by FastAPI and other major Python projects. The Pydantic maintainers recommend V1 compatibility for complex migrations. Enables gradual migration with minimal performance impact.
1 parent d7af7f3 commit 462b05a

17 files changed

Lines changed: 21 additions & 21 deletions

File tree

cumulusci/core/dependencies/dependencies.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
from typing import List, Optional
77
from zipfile import ZipFile
88

9-
import pydantic
9+
import pydantic.v1 as pydantic
1010
from github3.exceptions import NotFoundError
1111
from github3.repos.repo import Repository
12-
from pydantic.networks import AnyUrl
12+
from pydantic.v1.networks import AnyUrl
1313

1414
from cumulusci.core.config import OrgConfig
1515
from cumulusci.core.config.project_config import BaseProjectConfig

cumulusci/core/source_transforms/transforms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from zipfile import ZipFile
1111

1212
from lxml import etree as ET
13-
from pydantic import BaseModel, root_validator
13+
from pydantic.v1 import BaseModel, root_validator
1414

1515
from cumulusci.core.dependencies.utils import TaskContext
1616
from cumulusci.core.enums import StrEnum

cumulusci/core/versions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import re
22
from typing import Optional, Union
33

4-
from pydantic import BaseModel
4+
from pydantic.v1 import BaseModel
55

66
from cumulusci.core.enums import StrEnum
77

cumulusci/oauth/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from cryptography.hazmat.primitives import hashes, serialization
2020
from cryptography.hazmat.primitives.asymmetric import rsa
2121
from cryptography.x509.oid import NameOID
22-
from pydantic import BaseModel
22+
from pydantic.v1 import BaseModel
2323

2424
from cumulusci.core.exceptions import CumulusCIUsageError
2525
from cumulusci.oauth.exceptions import OAuth2Error

cumulusci/tasks/bulkdata/extract_dataset_utils/extract_yml.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import typing as T
33
from pathlib import Path
44

5-
from pydantic import Field, validator
5+
from pydantic.v1 import Field, validator
66

77
from cumulusci.core.enums import StrEnum
88
from cumulusci.tasks.bulkdata.utils import DataApi

cumulusci/tasks/bulkdata/extract_dataset_utils/synthesize_extract_declarations.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import re
33
import typing as T
44

5-
from pydantic import validator
5+
from pydantic.v1 import validator
66

77
from cumulusci.salesforce_api.org_schema import NOT_EXTRACTABLE, Field, Schema
88
from cumulusci.utils.iterators import partition

cumulusci/tasks/bulkdata/mapping_parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from pathlib import Path
88
from typing import IO, Any, Callable, Dict, List, Mapping, Optional, Tuple, Union
99

10-
from pydantic import Field, ValidationError, root_validator, validator
10+
from pydantic.v1 import Field, ValidationError, root_validator, validator
1111
from simple_salesforce import Salesforce
1212
from typing_extensions import Literal
1313

cumulusci/tasks/bulkdata/select_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import typing as T
55
from enum import Enum
66

7-
from pydantic import Field, root_validator, validator
7+
from pydantic.v1 import Field, root_validator, validator
88

99
from cumulusci.core.enums import StrEnum
1010
from cumulusci.tasks.bulkdata.utils import CaseInsensitiveDict

cumulusci/tasks/create_package_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import zipfile
66
from typing import List, Optional
77

8-
from pydantic import BaseModel, validator
8+
from pydantic.v1 import BaseModel, validator
99
from simple_salesforce.exceptions import SalesforceMalformedRequest
1010

1111
from cumulusci.core.config.util import get_devhub_config

cumulusci/tasks/datadictionary.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from zipfile import ZipFile
77

88
from github3.repos.repo import Repository
9-
from pydantic import BaseModel
9+
from pydantic.v1 import BaseModel
1010

1111
from cumulusci.core.dependencies.dependencies import (
1212
Dependency,

0 commit comments

Comments
 (0)