From c8c67008eba1661c4130ff19729552b5b216702a Mon Sep 17 00:00:00 2001 From: Ayush Kamat Date: Tue, 26 Dec 2023 12:04:38 -0800 Subject: [PATCH 1/3] allow traced validation of classes w/o a qualname Signed-off-by: Ayush Kamat --- latch_data_validation/data_validation.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/latch_data_validation/data_validation.py b/latch_data_validation/data_validation.py index 9319234..52b8ca4 100644 --- a/latch_data_validation/data_validation.py +++ b/latch_data_validation/data_validation.py @@ -9,6 +9,7 @@ Mapping, Sequence, TypeAlias, + TypedDict, TypeVar, Union, get_args, @@ -79,7 +80,7 @@ def explain(self, indent: str = ""): pretty_msg = prettify( self.msg, - add_colon=True + add_colon=True, # add_colon=len(self.children) > 0 or len(self.details) > 0 ) res = f"{indent}{pretty_msg}\n" @@ -312,7 +313,7 @@ def untraced_validate(x: JsonValue, cls: type[T]) -> T: return origin(res) - if issubclass(cls, dict): + if issubclass(cls, TypedDict): # TypedDict if not isinstance(x, dict): raise DataValidationError("expected an object", x, cls) @@ -405,6 +406,7 @@ def validate(x: JsonValue, cls: type[T]) -> T: "code.namespace": validate.__module__, }, ) as s: - s.set_attribute("validation.target", cls.__qualname__) + # ayush: union types dont have a `__qualname__` attr + s.set_attribute("validation.target", getattr(cls, "__qualname__", repr(cls))) return untraced_validate(x, cls) From 9e81819ba63ab2e8ff2ad0fd613dbdc2d52be7d7 Mon Sep 17 00:00:00 2001 From: Ayush Kamat Date: Sun, 7 Jan 2024 15:18:37 -0800 Subject: [PATCH 2/3] dont subclass typeddict Signed-off-by: Ayush Kamat --- .gitignore | 1 + latch_data_validation/data_validation.py | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 849ddff..4c1b4e6 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ dist/ +**/__pycache__ diff --git a/latch_data_validation/data_validation.py b/latch_data_validation/data_validation.py index 52b8ca4..e4dcc7d 100644 --- a/latch_data_validation/data_validation.py +++ b/latch_data_validation/data_validation.py @@ -9,7 +9,6 @@ Mapping, Sequence, TypeAlias, - TypedDict, TypeVar, Union, get_args, @@ -313,7 +312,7 @@ def untraced_validate(x: JsonValue, cls: type[T]) -> T: return origin(res) - if issubclass(cls, TypedDict): + if issubclass(cls, dict): # TypedDict if not isinstance(x, dict): raise DataValidationError("expected an object", x, cls) From bcd4c89e9b835b0d425a9b684124738a393d0145 Mon Sep 17 00:00:00 2001 From: Ayush Kamat Date: Fri, 12 Jan 2024 10:50:08 -0800 Subject: [PATCH 3/3] build system Signed-off-by: Ayush Kamat --- .gitignore | 1 + Justfile | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 4c1b4e6..d1584c7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ dist/ **/__pycache__ +credentials diff --git a/Justfile b/Justfile index c0c1b39..17da51f 100644 --- a/Justfile +++ b/Justfile @@ -8,6 +8,6 @@ build: poetry build publish: - poetry publish --build + poetry publish --build --username __token__ --password $(