From e703857bdbfcfcd5f707ff73057fe927aa72d316 Mon Sep 17 00:00:00 2001 From: sebastianMindee <130448732+sebastianMindee@users.noreply.github.com> Date: Wed, 9 Jul 2025 17:30:15 +0200 Subject: [PATCH 1/4] :recycle: fix str representation of V2 objects --- mindee/parsing/v2/base_field.py | 37 +++++++++++++++++---------------- tests/test_code_samples.sh | 2 +- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/mindee/parsing/v2/base_field.py b/mindee/parsing/v2/base_field.py index ee75498c..7b1be15f 100644 --- a/mindee/parsing/v2/base_field.py +++ b/mindee/parsing/v2/base_field.py @@ -34,6 +34,7 @@ class InferenceFields(Dict[str, Union["SimpleField", "ObjectField", "ListField"] def __init__(self, raw_response: StringDict, indent_level: int = 0) -> None: super().__init__() + self._indent_level = indent_level for key, value in raw_response.items(): field_obj = BaseField.create_field(value, indent_level) self[key] = field_obj @@ -45,10 +46,23 @@ def __getattr__(self, item): raise AttributeError(item) from None def __str__(self) -> str: - str_fields = "" + out_str = "" for field_key, field_value in self.items(): - str_fields += f":{field_key}: {field_value}" - return str_fields + if isinstance(field_value, ListField): + value_str = " " * self._indent_level + if len(field_value.items) > 0: + value_str = ( + " " * self._indent_level + str(field_value) + if field_value + else "" + ) + out_str += f"{' ' * self._indent_level}:{field_key}: {value_str}" + elif isinstance(field_value, ObjectField): + out_str += f"{' ' * self._indent_level}:{field_key}: {field_value}" + else: + out_str += f"{' ' * self._indent_level}:{field_key}: {field_value if field_value else ''}" + out_str += "\n" + return out_str.rstrip() class ListField(BaseField): @@ -87,20 +101,7 @@ def __init__(self, raw_response: StringDict, indent_level: int = 0): self.fields = InferenceFields(inner_fields, self._indent_level + 1) def __str__(self) -> str: - out_str = "" - for field_key, field_value in self.fields.items(): - if isinstance(field_value, ListField): - value_str = "" - if len(field_value.items) > 0: - value_str = ( - " " * self._indent_level + str(field_value) - if field_value - else "" - ) - out_str += f"{' ' * self._indent_level}:{field_key}: {value_str}" - else: - out_str += f"{' ' * self._indent_level}:{field_key}: {field_value if field_value else ''}" - return out_str + return f"\n{self.fields}" class SimpleField(BaseField): @@ -113,4 +114,4 @@ def __init__(self, raw_response: StringDict, indent_level: int = 0): self.value = raw_response["value"] = raw_response.get("value", None) def __str__(self) -> str: - return f"{self.value}\n" if self.value else "\n" + return f"{self.value}" if self.value else "" diff --git a/tests/test_code_samples.sh b/tests/test_code_samples.sh index 81f7bf83..a805343b 100755 --- a/tests/test_code_samples.sh +++ b/tests/test_code_samples.sh @@ -8,7 +8,7 @@ API_KEY=$3 API_KEY_V2=$4 MODEL_ID=$5 -for f in $(find ./docs/extras/code_samples -maxdepth 1 -name "*.txt" -not -name "workflow_*.txt" | sort -h) +for f in $(find ./docs/extras/code_samples -maxdepth 1 -name "default_v2.txt" -not -name "workflow_*.txt" | sort -h) do if echo "${f}" | grep -q "default_v2.txt"; then if [ -z "${API_KEY_V2}" ] || [ -z "${MODEL_ID}" ]; then From 4b884a4abfc8980bbbbdeb434965ff74975f1bc4 Mon Sep 17 00:00:00 2001 From: sebastianMindee <130448732+sebastianMindee@users.noreply.github.com> Date: Wed, 9 Jul 2025 17:35:17 +0200 Subject: [PATCH 2/4] revert proper code sample tests --- tests/test_code_samples.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_code_samples.sh b/tests/test_code_samples.sh index a805343b..81f7bf83 100755 --- a/tests/test_code_samples.sh +++ b/tests/test_code_samples.sh @@ -8,7 +8,7 @@ API_KEY=$3 API_KEY_V2=$4 MODEL_ID=$5 -for f in $(find ./docs/extras/code_samples -maxdepth 1 -name "default_v2.txt" -not -name "workflow_*.txt" | sort -h) +for f in $(find ./docs/extras/code_samples -maxdepth 1 -name "*.txt" -not -name "workflow_*.txt" | sort -h) do if echo "${f}" | grep -q "default_v2.txt"; then if [ -z "${API_KEY_V2}" ] || [ -z "${MODEL_ID}" ]; then From f141bf0532e68644df7e632c294cf19281319359 Mon Sep 17 00:00:00 2001 From: sebastianMindee <130448732+sebastianMindee@users.noreply.github.com> Date: Fri, 11 Jul 2025 15:41:15 +0200 Subject: [PATCH 3/4] fix more display issues --- mindee/parsing/v2/base_field.py | 2 +- mindee/parsing/v2/inference.py | 7 +++---- mindee/parsing/v2/inference_file.py | 8 +++++++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/mindee/parsing/v2/base_field.py b/mindee/parsing/v2/base_field.py index 7b1be15f..e09e2fdf 100644 --- a/mindee/parsing/v2/base_field.py +++ b/mindee/parsing/v2/base_field.py @@ -84,7 +84,7 @@ def __init__(self, raw_response: StringDict, indent_level: int = 0): def __str__(self) -> str: out_str = "" for item in self.items: - out_str += f"* {str(item)[2:] if item else ''}" + out_str += f"*{str(item)[2:] if item else ''}" return "\n" + out_str if out_str else "" diff --git a/mindee/parsing/v2/inference.py b/mindee/parsing/v2/inference.py index 61e63c49..1c960adb 100644 --- a/mindee/parsing/v2/inference.py +++ b/mindee/parsing/v2/inference.py @@ -28,10 +28,9 @@ def __str__(self) -> str: return ( f"Inference\n" f"#########\n" - f":Model: {self.model.id}\n" - f":File:\n" - f" :Name: {self.file.name}\n" - f" :Alias: {self.file.alias}\n\n" + f":model: {self.model.id}\n" + ":file:\n" + f"{self.file.__str__(1)}" f"Result\n" f"======\n" f"{self.result}\n" diff --git a/mindee/parsing/v2/inference_file.py b/mindee/parsing/v2/inference_file.py index a23ad46c..3727e70b 100644 --- a/mindee/parsing/v2/inference_file.py +++ b/mindee/parsing/v2/inference_file.py @@ -1,3 +1,5 @@ +from typing import Optional + from mindee.parsing.common.string_dict import StringDict @@ -6,9 +8,13 @@ class InferenceFile: name: str """Name of the file.""" - alais: str + alias: Optional[str] """Alias of the file.""" def __init__(self, raw_response: StringDict) -> None: self.name = raw_response["name"] self.alias = raw_response["alias"] + + def __str__(self, indent: int = 0) -> str: + return f"{' ' * indent}:name: {self.name}\n"\ + f"{' ' * indent}:alias: {self.alias if self.alias else ''}\n" From 59aae403a41befa5e729d4e54aa2ba5892dd409b Mon Sep 17 00:00:00 2001 From: sebastianMindee <130448732+sebastianMindee@users.noreply.github.com> Date: Fri, 11 Jul 2025 16:16:21 +0200 Subject: [PATCH 4/4] fix lint (et tu, pre-commit hook?) --- mindee/parsing/v2/inference_file.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mindee/parsing/v2/inference_file.py b/mindee/parsing/v2/inference_file.py index 3727e70b..e592d558 100644 --- a/mindee/parsing/v2/inference_file.py +++ b/mindee/parsing/v2/inference_file.py @@ -16,5 +16,7 @@ def __init__(self, raw_response: StringDict) -> None: self.alias = raw_response["alias"] def __str__(self, indent: int = 0) -> str: - return f"{' ' * indent}:name: {self.name}\n"\ - f"{' ' * indent}:alias: {self.alias if self.alias else ''}\n" + return ( + f"{' ' * indent}:name: {self.name}\n" + f"{' ' * indent}:alias: {self.alias if self.alias else ''}\n" + )