kodexa 7.4.413041559723__py3-none-any.whl → 7.4.413042948012__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kodexa/dataclasses/__init__.py +15 -3
- {kodexa-7.4.413041559723.dist-info → kodexa-7.4.413042948012.dist-info}/METADATA +1 -1
- {kodexa-7.4.413041559723.dist-info → kodexa-7.4.413042948012.dist-info}/RECORD +5 -5
- {kodexa-7.4.413041559723.dist-info → kodexa-7.4.413042948012.dist-info}/LICENSE +0 -0
- {kodexa-7.4.413041559723.dist-info → kodexa-7.4.413042948012.dist-info}/WHEEL +0 -0
kodexa/dataclasses/__init__.py
CHANGED
@@ -171,12 +171,24 @@ class LLMDataObject(BaseModel):
|
|
171
171
|
result = {}
|
172
172
|
for field in self.__fields__:
|
173
173
|
value = getattr(self, field)
|
174
|
-
|
175
|
-
|
174
|
+
|
175
|
+
if isinstance(value, list) and len(value) > 0:
|
176
|
+
if isinstance(value[0], LLMDataObject):
|
177
|
+
# We need to find the first field of the object that is a LLMDataAttribute
|
178
|
+
# and use that to derive the taxon path of the LLMDataObject
|
179
|
+
value[0].__fields__.sort(key=lambda x: isinstance(getattr(value[0], x), LLMDataAttribute))
|
180
|
+
if isinstance(getattr(value[0], value[0].__fields__[0]), LLMDataAttribute):
|
181
|
+
# Get the basename of the taxon path (ie. if the taxon path is "a/b/c", get "a/b")
|
182
|
+
taxon_path = getattr(value[0], value[0].__fields__[0]).taxon_path.rsplit('/', 1)[0]
|
183
|
+
target_taxon = taxonomy.get_taxon_by_path(taxon_path)
|
184
|
+
if target_taxon is not None:
|
185
|
+
result[target_taxon.external_name] = [item.to_dict(taxonomy) for item in value if isinstance(item, (LLMDataObject, LLMDataAttribute))]
|
176
186
|
elif isinstance(value, LLMDataAttribute):
|
177
187
|
result.update(value.to_dict(taxonomy))
|
178
188
|
elif isinstance(value, LLMDataObject):
|
179
|
-
|
189
|
+
target_taxon = taxonomy.get_taxon_by_path(value.taxon_path)
|
190
|
+
if target_taxon is not None:
|
191
|
+
result[target_taxon.external_name] = value.to_dict(taxonomy)
|
180
192
|
return result
|
181
193
|
|
182
194
|
def to_review(self, page_number=None):
|
@@ -3,7 +3,7 @@ kodexa/assistant/__init__.py,sha256=nlXm_YnV_50hgn0TIT2Fkc2fQ-86OjmctY_j8My9nc4,
|
|
3
3
|
kodexa/assistant/assistant.py,sha256=5KFdbqFSLIZJyDRyZdpcfr448fT-CW4JhYu9A6B9DGY,14663
|
4
4
|
kodexa/connectors/__init__.py,sha256=WF6G_MUeU32TlKSUKkpNoNX7dq8iBPliFMep4E8BmZc,328
|
5
5
|
kodexa/connectors/connectors.py,sha256=FpUZDkSyHld2b9eYRuVOWzaFtuGoaRuPXXicJB7THbc,10413
|
6
|
-
kodexa/dataclasses/__init__.py,sha256=
|
6
|
+
kodexa/dataclasses/__init__.py,sha256=VL96Tgtic1qIh8KRZ-Z3gm9tWYW0ehjmCnlFhMKIYl8,20602
|
7
7
|
kodexa/dataclasses/templates/llm_data_class.j2,sha256=YWjStW136chV_59JM3AYis3i-0jdrqDvLXsISUW9zDU,660
|
8
8
|
kodexa/model/__init__.py,sha256=rtLXYJBxB-rnukhslN9rlqoB3--1H3253HyHGbD_Gc8,796
|
9
9
|
kodexa/model/base.py,sha256=CaZK8nMhT1LdCpt4aLhebJGcorjq9qRID1FjnXnP14M,521
|
@@ -44,7 +44,7 @@ kodexa/testing/test_utils.py,sha256=v44p__gE7ia67W7WeHN2HBFCWSCUrCZt7G4xBNCmwf8,
|
|
44
44
|
kodexa/training/__init__.py,sha256=xs2L62YpRkIRfslQwtQZ5Yxjhm7sLzX2TrVX6EuBnZQ,52
|
45
45
|
kodexa/training/train_utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
46
46
|
kodexa/utils/__init__.py,sha256=Pnim1o9_db5YEnNvDTxpM7HG-qTlL6n8JwFwOafU9wo,5928
|
47
|
-
kodexa-7.4.
|
48
|
-
kodexa-7.4.
|
49
|
-
kodexa-7.4.
|
50
|
-
kodexa-7.4.
|
47
|
+
kodexa-7.4.413042948012.dist-info/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
|
48
|
+
kodexa-7.4.413042948012.dist-info/METADATA,sha256=Uz7QTYXZdvdom-RsCcvJjJM1UmefkmscF_W9Yg_n25M,3528
|
49
|
+
kodexa-7.4.413042948012.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
50
|
+
kodexa-7.4.413042948012.dist-info/RECORD,,
|
File without changes
|
File without changes
|