Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
DataSourceDocumentItem,
DataSystemDocument,
)
from allotropy.allotrope.models.shared.definitions.definitions import TQuantityValue
from allotropy.allotrope.models.shared.definitions.quantity_values import (
TQuantityValueDegreeCelsius,
TQuantityValueMicroliterPerMinute,
Expand All @@ -46,6 +45,9 @@
from allotropy.parsers.utils.calculated_data_documents.definition import (
CalculatedDocument,
)
from allotropy.parsers.utils.calculated_data_documents.mapping import (
map_calculated_data_documents,
)
from allotropy.parsers.utils.values import assert_not_none, quantity_or_none
from allotropy.types import DictType

Expand Down Expand Up @@ -392,29 +394,10 @@ def _get_surface_plasmon_resonance_measurement_document(
def _get_calculated_data_aggregate_document(
self, calculated_data_items: list[CalculatedDocument] | None
) -> CalculatedDataAggregateDocument | None:
if not calculated_data_items:
return None

return CalculatedDataAggregateDocument(
calculated_data_document=[
CalculatedDataDocumentItem(
calculated_data_identifier=calculated_data_item.uuid,
calculated_data_name=calculated_data_item.name,
calculation_description=calculated_data_item.description,
calculated_result=TQuantityValue(
value=calculated_data_item.value,
unit=assert_not_none(calculated_data_item.unit),
),
data_source_aggregate_document=DataSourceAggregateDocument(
data_source_document=[
DataSourceDocumentItem(
data_source_identifier=item.reference.uuid,
data_source_feature=item.feature,
)
for item in calculated_data_item.data_sources
]
),
)
for calculated_data_item in calculated_data_items
]
return map_calculated_data_documents( # type: ignore[no-any-return]
calculated_data_items,
CalculatedDataAggregateDocument,
CalculatedDataDocumentItem,
DataSourceAggregateDocument,
DataSourceDocumentItem,
)
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,6 @@
ImageAggregateDocument,
ImageDocumentItem,
)
from allotropy.allotrope.models.shared.definitions.definitions import (
JsonFloat,
TQuantityValue,
)
from allotropy.allotrope.models.shared.definitions.quantity_values import (
TQuantityValueCell,
TQuantityValueMicroliter,
Expand All @@ -41,7 +37,12 @@
)
from allotropy.allotrope.schema_mappers.schema_mapper import SchemaMapper
from allotropy.constants import ASM_CONVERTER_VERSION
from allotropy.parsers.utils.calculated_data_documents.definition import DataSource
from allotropy.parsers.utils.calculated_data_documents.definition import (
CalculatedDocument,
)
from allotropy.parsers.utils.calculated_data_documents.mapping import (
map_calculated_data_documents,
)
from allotropy.parsers.utils.values import quantity_or_none


Expand Down Expand Up @@ -145,20 +146,10 @@ class Metadata:


@dataclass(frozen=True)
class CalculatedDataItem:
identifier: str
name: str
value: JsonFloat
unit: str
data_sources: list[DataSource]
description: str | None = None


@dataclass
class Data:
metadata: Metadata
measurement_groups: list[MeasurementGroup]
calculated_data: list[CalculatedDataItem] | None = None
calculated_data: list[CalculatedDocument] | None = None


def has_value(model: object) -> bool:
Expand Down Expand Up @@ -210,7 +201,7 @@ def _get_technique_document(
self,
measurement_group: MeasurementGroup,
metadata: Metadata,
calculated_data: list[CalculatedDataItem] | None = None,
calculated_data: list[CalculatedDocument] | None = None,
) -> CellCountingDocumentItem:
return CellCountingDocumentItem(
analyst=measurement_group.analyst,
Expand Down Expand Up @@ -418,30 +409,12 @@ def _get_error_aggregate_document(
)

def _get_calculated_data_aggregate_document(
self, calculated_data_items: list[CalculatedDataItem] | None
self, calculated_data_items: list[CalculatedDocument] | None
) -> CalculatedDataAggregateDocument | None:
if not calculated_data_items:
return None

return CalculatedDataAggregateDocument(
calculated_data_document=[
CalculatedDataDocumentItem(
calculated_data_identifier=calculated_data_item.identifier,
calculated_data_name=calculated_data_item.name,
calculated_result=TQuantityValue(
value=calculated_data_item.value,
unit=calculated_data_item.unit,
),
data_source_aggregate_document=DataSourceAggregateDocument(
data_source_document=[
DataSourceDocumentItem(
data_source_identifier=item.reference.uuid,
data_source_feature=item.feature,
)
for item in calculated_data_item.data_sources
]
),
)
for calculated_data_item in calculated_data_items
]
return map_calculated_data_documents( # type: ignore[no-any-return]
calculated_data_items,
CalculatedDataAggregateDocument,
CalculatedDataDocumentItem,
DataSourceAggregateDocument,
DataSourceDocumentItem,
)
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,7 @@
ProcessedDataDocumentItem,
SampleDocument,
)
from allotropy.allotrope.models.shared.definitions.definitions import (
JsonFloat,
TQuantityValue,
)
from allotropy.allotrope.models.shared.definitions.definitions import JsonFloat
from allotropy.allotrope.models.shared.definitions.quantity_values import (
TQuantityValueDegreeCelsius,
TQuantityValuePercent,
Expand All @@ -38,6 +35,12 @@
)
from allotropy.allotrope.schema_mappers.schema_mapper import SchemaMapper
from allotropy.constants import ASM_CONVERTER_VERSION
from allotropy.parsers.utils.calculated_data_documents.definition import (
CalculatedDocument,
)
from allotropy.parsers.utils.calculated_data_documents.mapping import (
map_calculated_data_documents,
)
from allotropy.parsers.utils.values import (
quantity_or_none,
quantity_or_none_from_unit,
Expand Down Expand Up @@ -67,21 +70,6 @@ class ProcessedData:
data_regions: list[ProcessedDataFeature]


@dataclass(frozen=True)
class DataSource:
identifier: str
feature: str


@dataclass(frozen=True)
class CalculatedDataItem:
identifier: str
name: str
value: float
unit: str
data_sources: list[DataSource]


@dataclass(frozen=True)
class Error:
error: str
Expand All @@ -106,7 +94,7 @@ class Measurement:
compartment_temperature: float | None = None

# Optional processed data
calculated_data: list[CalculatedDataItem] | None = None
calculated_data: list[CalculatedDocument] | None = None

# Errors
errors: list[Error] | None = None
Expand Down Expand Up @@ -146,7 +134,7 @@ class Metadata:
class Data:
metadata: Metadata
measurement_groups: list[MeasurementGroup]
calculated_data: list[CalculatedDataItem] | None = None
calculated_data: list[CalculatedDocument] | None = None


class Mapper(SchemaMapper[Data, Model]):
Expand Down Expand Up @@ -309,32 +297,14 @@ def _get_data_region_agg_document(
)

def _get_calculated_data_aggregate_document(
self, calculated_data_items: list[CalculatedDataItem] | None
self, calculated_data_items: list[CalculatedDocument] | None
) -> CalculatedDataAggregateDocument | None:
if not calculated_data_items:
return None

return CalculatedDataAggregateDocument(
calculated_data_document=[
CalculatedDataDocumentItem(
calculated_data_identifier=calculated_data_item.identifier,
calculated_data_name=calculated_data_item.name,
calculated_result=TQuantityValue(
value=calculated_data_item.value,
unit=calculated_data_item.unit,
),
data_source_aggregate_document=DataSourceAggregateDocument(
data_source_document=[
DataSourceDocumentItem(
data_source_identifier=item.identifier,
data_source_feature=item.feature,
)
for item in calculated_data_item.data_sources
]
),
)
for calculated_data_item in calculated_data_items
]
return map_calculated_data_documents( # type: ignore[no-any-return]
calculated_data_items,
CalculatedDataAggregateDocument,
CalculatedDataDocumentItem,
DataSourceAggregateDocument,
DataSourceDocumentItem,
)

def _get_error_aggregate_document(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@
from allotropy.parsers.utils.calculated_data_documents.definition import (
CalculatedDocument,
)
from allotropy.parsers.utils.calculated_data_documents.mapping import (
map_calculated_data_documents,
)
from allotropy.parsers.utils.values import quantity_or_none


Expand Down Expand Up @@ -350,29 +353,11 @@ def _get_error_aggregate_document(
def _get_calculated_data_aggregate_document(
self, calculated_data_items: list[CalculatedDocument] | None
) -> CalculatedDataAggregateDocument | None:
if not calculated_data_items:
return None

return CalculatedDataAggregateDocument(
calculated_data_document=[
CalculatedDataDocumentItem(
calculated_data_identifier=calculated_data_item.uuid,
calculated_data_name=calculated_data_item.name,
calculation_description=calculated_data_item.description,
calculated_result=TQuantityValue(
value=calculated_data_item.value,
unit=calculated_data_item.unit or Unitless.unit,
),
data_source_aggregate_document=DataSourceAggregateDocument(
data_source_document=[
DataSourceDocumentItem(
data_source_identifier=item.reference.uuid,
data_source_feature=item.feature,
)
for item in calculated_data_item.data_sources
]
),
)
for calculated_data_item in calculated_data_items
]
return map_calculated_data_documents( # type: ignore[no-any-return]
calculated_data_items,
CalculatedDataAggregateDocument,
CalculatedDataDocumentItem,
DataSourceAggregateDocument,
DataSourceDocumentItem,
unit_fallback=Unitless.unit,
)
Loading
Loading