Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit c3773b7

Browse files
authored
Conditional imports to support operating with pydantic>2 installed (#159)
* Conditional imports to support pydantic>2 * Using the new naming convention * Skipping integration tests if the required environment variables aren't set
1 parent e3f9db4 commit c3773b7

File tree

14 files changed

+94
-20
lines changed

14 files changed

+94
-20
lines changed

.github/workflows/tests.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
3232
- name: Run unit tests
3333
env:
34-
PREFECT_ORION_DATABASE_CONNECTION_URL: "sqlite+aiosqlite:///./orion-tests.db"
34+
PREFECT_API_DATABASE_CONNECTION_URL: "sqlite+aiosqlite:///./orion-tests.db"
3535
run: |
3636
coverage run --branch -m pytest tests -vv -m "not integration"
3737
coverage report
@@ -60,10 +60,12 @@ jobs:
6060
6161
- name: Run integration tests
6262
env:
63-
PREFECT_ORION_DATABASE_CONNECTION_URL: "sqlite+aiosqlite:///./orion-tests.db"
64-
DBT_CLOUD_JOB_ID: ${{ secrets.DBT_CLOUD_JOB_ID }}
65-
DBT_CLOUD_ACCOUNT_ID: ${{ secrets.DBT_CLOUD_ACCOUNT_ID }}
66-
DBT_CLOUD_API_KEY: ${{ secrets.DBT_CLOUD_API_KEY }}
63+
PREFECT_API_DATABASE_CONNECTION_URL: "sqlite+aiosqlite:///./orion-tests.db"
64+
# Note: our dbt Cloud test account has been cleared out, so we will need to
65+
# recreate that before we can run the integration tests against the real thing
66+
# DBT_CLOUD_JOB_ID: ${{ secrets.DBT_CLOUD_JOB_ID }}
67+
# DBT_CLOUD_ACCOUNT_ID: ${{ secrets.DBT_CLOUD_ACCOUNT_ID }}
68+
# DBT_CLOUD_API_KEY: ${{ secrets.DBT_CLOUD_API_KEY }}
6769
run: |
6870
pytest tests -vv -m integration
6971

prefect_dbt/cli/commands.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@
77
from prefect import get_run_logger, task
88
from prefect.utilities.filesystem import relative_path_to_current_platform
99
from prefect_shell.commands import ShellOperation, shell_run_command
10-
from pydantic import Field, validator
10+
from pydantic import VERSION as PYDANTIC_VERSION
11+
12+
if PYDANTIC_VERSION.startswith("2."):
13+
from pydantic.v1 import Field, validator
14+
else:
15+
from pydantic import Field, validator
1116

1217
from prefect_dbt.cli.credentials import DbtCliProfile
1318

prefect_dbt/cli/configs/base.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@
55
from typing import Any, Dict, Optional
66

77
from prefect.blocks.core import Block
8-
from pydantic import BaseModel, Field, SecretField
8+
from pydantic import VERSION as PYDANTIC_VERSION
9+
10+
if PYDANTIC_VERSION.startswith("2."):
11+
from pydantic.v1 import BaseModel, Field, SecretField
12+
else:
13+
from pydantic import BaseModel, Field, SecretField
914

1015

1116
class DbtConfigs(Block, abc.ABC):

prefect_dbt/cli/configs/bigquery.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,12 @@
88
except ImportError:
99
from typing_extensions import Literal
1010

11-
from pydantic import Field
11+
from pydantic import VERSION as PYDANTIC_VERSION
12+
13+
if PYDANTIC_VERSION.startswith("2."):
14+
from pydantic.v1 import Field
15+
else:
16+
from pydantic import Field
1217

1318
from prefect_dbt.cli.configs.base import BaseTargetConfigs, MissingExtrasRequireError
1419

prefect_dbt/cli/configs/postgres.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@
22
import warnings
33
from typing import Any, Dict, Union
44

5-
from pydantic import Field
5+
from pydantic import VERSION as PYDANTIC_VERSION
6+
7+
if PYDANTIC_VERSION.startswith("2."):
8+
from pydantic.v1 import Field
9+
else:
10+
from pydantic import Field
11+
612
from typing_extensions import Literal
713

814
from prefect_dbt.cli.configs.base import BaseTargetConfigs, MissingExtrasRequireError

prefect_dbt/cli/configs/snowflake.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,12 @@
66
except ImportError:
77
from typing_extensions import Literal
88

9-
from pydantic import Field
9+
from pydantic import VERSION as PYDANTIC_VERSION
10+
11+
if PYDANTIC_VERSION.startswith("2."):
12+
from pydantic.v1 import Field
13+
else:
14+
from pydantic import Field
1015

1116
from prefect_dbt.cli.configs.base import BaseTargetConfigs, MissingExtrasRequireError
1217

prefect_dbt/cli/credentials.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22
from typing import Any, Dict, Optional, Union
33

44
from prefect.blocks.core import Block
5-
from pydantic import Field
5+
from pydantic import VERSION as PYDANTIC_VERSION
6+
7+
if PYDANTIC_VERSION.startswith("2."):
8+
from pydantic.v1 import Field
9+
else:
10+
from pydantic import Field
611

712
from prefect_dbt.cli.configs import GlobalConfigs, TargetConfigs
813

prefect_dbt/cloud/credentials.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@
22
from typing import Union
33

44
from prefect.blocks.abstract import CredentialsBlock
5-
from pydantic import Field, SecretStr
5+
from pydantic import VERSION as PYDANTIC_VERSION
6+
7+
if PYDANTIC_VERSION.startswith("2."):
8+
from pydantic.v1 import Field, SecretStr
9+
else:
10+
from pydantic import Field, SecretStr
11+
612
from typing_extensions import Literal
713

814
from prefect_dbt.cloud.clients import (

prefect_dbt/cloud/jobs.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,13 @@
1010
from prefect.blocks.abstract import JobBlock, JobRun
1111
from prefect.context import FlowRunContext
1212
from prefect.utilities.asyncutils import sync_compatible
13-
from pydantic import Field
13+
from pydantic import VERSION as PYDANTIC_VERSION
14+
15+
if PYDANTIC_VERSION.startswith("2."):
16+
from pydantic.v1 import Field
17+
else:
18+
from pydantic import Field
19+
1420
from typing_extensions import Literal
1521

1622
from prefect_dbt.cloud.credentials import DbtCloudCredentials

prefect_dbt/cloud/models.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22
from typing import List, Optional
33

44
from prefect.context import FlowRunContext, TaskRunContext, get_run_context
5-
from pydantic import BaseModel, Field
5+
from pydantic import VERSION as PYDANTIC_VERSION
6+
7+
if PYDANTIC_VERSION.startswith("2."):
8+
from pydantic.v1 import BaseModel, Field
9+
else:
10+
from pydantic import BaseModel, Field
611

712

813
def default_cause_factory():

0 commit comments

Comments
 (0)