Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: remove extra forbid constraint #48

Merged
merged 10 commits into from
Jan 21, 2025
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions src/datapilot/constants.py

This file was deleted.

27 changes: 0 additions & 27 deletions src/datapilot/core/platforms/dbt/schemas/catalog.py
Original file line number Diff line number Diff line change
@@ -5,17 +5,10 @@
from typing import Optional
from typing import Union

from pydantic import ConfigDict
from pydantic.main import BaseModel

from datapilot.constants import Extra


class AltimateCatalogMetadata(BaseModel):
model_config = ConfigDict(
extra=Extra.forbid,
)

dbt_schema_version: Optional[str] = "https://schemas.getdbt.com/dbt/catalog/v1.json"
dbt_version: Optional[str] = "0.19.0"
generated_at: Optional[datetime] = "2021-02-10T04:42:33.680487Z"
@@ -24,10 +17,6 @@ class AltimateCatalogMetadata(BaseModel):


class AltimateCatalogTableMetadata(BaseModel):
model_config = ConfigDict(
extra=Extra.forbid,
)

type: str
database: Optional[Optional[str]] = None
schema_name: str
@@ -37,21 +26,13 @@ class AltimateCatalogTableMetadata(BaseModel):


class AltimateCatalogColumnMetadata(BaseModel):
model_config = ConfigDict(
extra=Extra.forbid,
)

type: str
comment: Optional[Optional[str]] = None
index: int
name: str


class AltimateCatalogStatsItem(BaseModel):
model_config = ConfigDict(
extra=Extra.forbid,
)

id: str
label: str
value: Optional[Optional[Union[bool, str, float]]] = None
@@ -60,21 +41,13 @@ class AltimateCatalogStatsItem(BaseModel):


class AltimateCatalogTable(BaseModel):
model_config = ConfigDict(
extra=Extra.forbid,
)

metadata: AltimateCatalogTableMetadata
columns: Dict[str, AltimateCatalogColumnMetadata]
stats: Dict[str, AltimateCatalogStatsItem]
unique_id: Optional[Optional[str]] = None


class AltimateCatalogCatalogV1(BaseModel):
model_config = ConfigDict(
extra=Extra.forbid,
)

metadata: AltimateCatalogMetadata
nodes: Dict[str, AltimateCatalogTable]
sources: Dict[str, AltimateCatalogTable]
51 changes: 0 additions & 51 deletions src/datapilot/core/platforms/dbt/schemas/manifest.py
Original file line number Diff line number Diff line change
@@ -19,9 +19,6 @@
from dbt_artifacts_parser.parsers.manifest.manifest_v11 import ManifestV11
from dbt_artifacts_parser.parsers.manifest.manifest_v11 import SupportedLanguage
from pydantic import BaseModel
from pydantic import ConfigDict

from datapilot.constants import Extra


class DBTVersion(BaseModel):
@@ -48,10 +45,6 @@ class DBTVersion(BaseModel):


class AltimateDocs(BaseModel):
model_config = ConfigDict(
extra=Extra.forbid,
)

show: Optional[bool] = True
node_color: Optional[Optional[str]] = None

@@ -101,31 +94,19 @@ class AltimateAccess(Enum):


class AltimateDBTContract(BaseModel):
model_config = ConfigDict(
extra=Extra.forbid,
)

enforced: Optional[bool] = False
alias_types: Optional[bool] = True
checksum: Optional[Optional[str]] = None


class AltimateHook(BaseModel):
model_config = ConfigDict(
extra=Extra.forbid,
)

sql: str
transaction: Optional[bool] = True
index: Optional[Optional[int]] = None


# TODO: Need to add the rest of the fields
class AltimateNodeConfig(BaseModel):
model_config = ConfigDict(
extra=Extra.allow,
)

_extra: Optional[Dict[str, Any]] = None
enabled: Optional[bool] = True
alias: Optional[Optional[str]] = None
@@ -209,21 +190,13 @@ class AltimateSourceConfig(BaseModel):


class AltimateDeferRelation(BaseModel):
model_config = ConfigDict(
extra=Extra.forbid,
)

database: Optional[str]
schema_name: str
alias: str
relation_name: Optional[str]


class AltimateSeedConfig(BaseModel):
model_config = ConfigDict(
extra=Extra.allow,
)

_extra: Optional[Dict[str, Any]] = None
enabled: Optional[bool] = True
alias: Optional[Optional[str]] = None
@@ -322,10 +295,6 @@ class AltimateExposureType(Enum):


class AltimateOwner(BaseModel):
model_config = ConfigDict(
extra=Extra.allow,
)

_extra: Optional[Dict[str, Any]] = None
email: Optional[Optional[str]] = None
name: Optional[Optional[str]] = None
@@ -338,20 +307,12 @@ class AltimateMaturityEnum(Enum):


class AltimateRefArgs(BaseModel):
model_config = ConfigDict(
extra=Extra.forbid,
)

name: str
package: Optional[Optional[str]] = None
version: Optional[Optional[Union[str, float]]] = None


class AltimateExposureConfig(BaseModel):
model_config = ConfigDict(
extra=Extra.allow,
)

_extra: Optional[Dict[str, Any]] = None
enabled: Optional[bool] = True

@@ -382,20 +343,12 @@ class AltimateManifestExposureNode(BaseModel):


class AltimateTestMetadata(BaseModel):
model_config = ConfigDict(
extra=Extra.forbid,
)

name: str
kwargs: Optional[Dict[str, Any]] = None
namespace: Optional[Optional[str]] = None


class AltimateTestConfig(BaseModel):
model_config = ConfigDict(
extra=Extra.allow,
)

_extra: Optional[Dict[str, Any]] = None
enabled: Optional[bool] = True
alias: Optional[Optional[str]] = None
@@ -446,10 +399,6 @@ class AltimateManifestTestNode(BaseModel):


class AltimateMacroArgument(BaseModel):
model_config = ConfigDict(
extra=Extra.forbid,
)

name: str
type: Optional[Optional[str]] = None
description: Optional[Optional[str]] = ""
4 changes: 3 additions & 1 deletion tox.ini
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ envlist =
clean,
check,
docs,
{py38,py39,py310,py311,py312,pypy38,pypy39,pypy310}-{cover,nocov},
{py39,py310,py311,py312,pypy38,pypy39,pypy310}-{pydantic28,pydantic210}-{cover,nocov},
report
ignore_basepython_conflict = true

@@ -40,6 +40,8 @@ usedevelop =
deps =
pytest
cover: pytest-cov
pydantic28: pydantic>=2.8,<2.9
pydantic210: pydantic>=2.10,<2.11
commands =
nocov: {posargs:pytest -vv --ignore=src}
cover: {posargs:pytest --cov --cov-report=term-missing --cov-report=xml -vv}