From a36b236edc3ddfd874bfe3cbeb163239c911991d Mon Sep 17 00:00:00 2001 From: MartinBelthle <102529366+MartinBelthle@users.noreply.github.com> Date: Thu, 14 Mar 2024 22:58:01 +0100 Subject: [PATCH] feat(backend): support v8.7's upgrader, clusters and binding constraints (#1818) ANT-902 --- antarest/core/exceptions.py | 10 + antarest/matrixstore/service.py | 50 +- .../business/areas/thermal_management.py | 8 +- .../business/binding_constraint_management.py | 432 ++++++++--- .../study/business/table_mode_management.py | 9 +- antarest/study/model.py | 3 +- antarest/study/storage/rawstudy/ini_writer.py | 1 - .../filesystem/common/area_matrix_list.py | 38 +- .../model/filesystem/config/thermal.py | 87 ++- .../bindingconstraints/bindingcontraints.py | 65 +- .../simulation/ts_numbers/ts_numbers.py | 14 + .../study/storage/study_upgrader/__init__.py | 8 +- .../storage/study_upgrader/upgrader_860.py | 10 + .../storage/study_upgrader/upgrader_870.py | 59 ++ .../variantstudy/business/command_reverter.py | 34 +- .../binding_constraint/__init__.py | 2 +- .../binding_constraint/series_after_v87.py | 7 + .../{series.py => series_before_v87.py} | 0 .../business/matrix_constants_generator.py | 50 +- .../storage/variantstudy/business/utils.py | 14 +- .../business/utils_binding_constraint.py | 36 +- .../storage/variantstudy/command_factory.py | 11 +- .../command/create_binding_constraint.py | 246 ++++-- .../variantstudy/model/command/remove_area.py | 55 +- .../command/remove_binding_constraint.py | 6 +- .../command/update_binding_constraint.py | 45 +- .../storage/variantstudy/model/dbmodel.py | 2 +- .../variantstudy/variant_study_service.py | 10 +- antarest/study/web/study_data_blueprint.py | 25 +- resources/empty_study_870.zip | Bin 0 -> 64653 bytes .../test_synthesis/raw_study.synthesis.json | 180 ++++- .../variant_study.synthesis.json | 180 ++++- .../test_binding_constraints.py | 719 +++++++++++++----- .../study_data_blueprint/test_thermal.py | 206 ++--- tests/integration/test_integration.py | 3 + .../business/assets/little_study_700.zip | Bin 260020 -> 131440 bytes .../business/test_study_version_upgrader.py | 45 +- .../filesystem/config/test_config_files.py | 23 +- .../study_upgrader/test_upgrade_870.py | 31 + .../little_study_860.expected.zip | Bin 0 -> 124012 bytes .../little_study_860.zip | Bin 0 -> 123446 bytes .../little_study_860.expected.zip | Bin 0 -> 126978 bytes .../nominal_case/little_study_860.zip | Bin 0 -> 126416 bytes .../business/areas/test_thermal_management.py | 48 ++ .../test_matrix_constants_generator.py | 19 +- .../variantstudy/model/test_dbmodel.py | 2 +- tests/variantstudy/conftest.py | 12 + .../test_manage_binding_constraints.py | 7 +- tests/variantstudy/test_command_factory.py | 19 +- 49 files changed, 2029 insertions(+), 802 deletions(-) create mode 100644 antarest/study/storage/study_upgrader/upgrader_870.py create mode 100644 antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series_after_v87.py rename antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/{series.py => series_before_v87.py} (100%) create mode 100644 resources/empty_study_870.zip create mode 100644 tests/storage/study_upgrader/test_upgrade_870.py create mode 100644 tests/storage/study_upgrader/upgrade_870/empty_binding_constraints/little_study_860.expected.zip create mode 100644 tests/storage/study_upgrader/upgrade_870/empty_binding_constraints/little_study_860.zip create mode 100644 tests/storage/study_upgrader/upgrade_870/nominal_case/little_study_860.expected.zip create mode 100644 tests/storage/study_upgrader/upgrade_870/nominal_case/little_study_860.zip diff --git a/antarest/core/exceptions.py b/antarest/core/exceptions.py index 361ba53644..dd9cd45a5e 100644 --- a/antarest/core/exceptions.py +++ b/antarest/core/exceptions.py @@ -221,6 +221,16 @@ def __init__(self, message: str) -> None: super().__init__(HTTPStatus.BAD_REQUEST, message) +class InvalidFieldForVersionError(HTTPException): + def __init__(self, message: str) -> None: + super().__init__(HTTPStatus.UNPROCESSABLE_ENTITY, message) + + +class IncoherenceBetweenMatricesLength(HTTPException): + def __init__(self, message: str) -> None: + super().__init__(HTTPStatus.UNPROCESSABLE_ENTITY, message) + + class MissingDataError(HTTPException): def __init__(self, message: str) -> None: super().__init__(HTTPStatus.NOT_FOUND, message) diff --git a/antarest/matrixstore/service.py b/antarest/matrixstore/service.py index c0a9d91788..732216c4b3 100644 --- a/antarest/matrixstore/service.py +++ b/antarest/matrixstore/service.py @@ -3,11 +3,11 @@ import json import logging import tempfile +import typing as t import zipfile from abc import ABC, abstractmethod from datetime import datetime from pathlib import Path -from typing import List, Optional, Sequence, Tuple, Union import numpy as np import py7zr @@ -58,11 +58,11 @@ def __init__(self, matrix_content_repository: MatrixContentRepository) -> None: self.matrix_content_repository = matrix_content_repository @abstractmethod - def create(self, data: Union[List[List[MatrixData]], npt.NDArray[np.float64]]) -> str: + def create(self, data: t.Union[t.List[t.List[MatrixData]], npt.NDArray[np.float64]]) -> str: raise NotImplementedError() @abstractmethod - def get(self, matrix_id: str) -> Optional[MatrixDTO]: + def get(self, matrix_id: str) -> t.Optional[MatrixDTO]: raise NotImplementedError() @abstractmethod @@ -73,12 +73,32 @@ def exists(self, matrix_id: str) -> bool: def delete(self, matrix_id: str) -> None: raise NotImplementedError() + def get_matrix_id(self, matrix: t.Union[t.List[t.List[float]], str]) -> str: + """ + Get the matrix ID from a matrix or a matrix link. + + Args: + matrix: The matrix or matrix link to get the ID from. + + Returns: + The matrix ID. + + Raises: + TypeError: If the provided matrix is neither a matrix nor a link to a matrix. + """ + if isinstance(matrix, str): + return matrix.lstrip("matrix://") + elif isinstance(matrix, list): + return self.create(matrix) + else: + raise TypeError(f"Invalid type for matrix: {type(matrix)}") + class SimpleMatrixService(ISimpleMatrixService): def __init__(self, matrix_content_repository: MatrixContentRepository): super().__init__(matrix_content_repository=matrix_content_repository) - def create(self, data: Union[List[List[MatrixData]], npt.NDArray[np.float64]]) -> str: + def create(self, data: t.Union[t.List[t.List[MatrixData]], npt.NDArray[np.float64]]) -> str: return self.matrix_content_repository.save(data) def get(self, matrix_id: str) -> MatrixDTO: @@ -119,7 +139,7 @@ def __init__( self.config = config @staticmethod - def _from_dto(dto: MatrixDTO) -> Tuple[Matrix, MatrixContent]: + def _from_dto(dto: MatrixDTO) -> t.Tuple[Matrix, MatrixContent]: matrix = Matrix( id=dto.id, width=dto.width, @@ -131,7 +151,7 @@ def _from_dto(dto: MatrixDTO) -> Tuple[Matrix, MatrixContent]: return matrix, content - def create(self, data: Union[List[List[MatrixData]], npt.NDArray[np.float64]]) -> str: + def create(self, data: t.Union[t.List[t.List[MatrixData]], npt.NDArray[np.float64]]) -> str: """ Creates a new matrix object with the specified data. @@ -168,7 +188,7 @@ def create(self, data: Union[List[List[MatrixData]], npt.NDArray[np.float64]]) - self.repo.save(matrix) return matrix_id - def create_by_importation(self, file: UploadFile, is_json: bool = False) -> List[MatrixInfoDTO]: + def create_by_importation(self, file: UploadFile, is_json: bool = False) -> t.List[MatrixInfoDTO]: """ Imports a matrix from a TSV or JSON file or a collection of matrices from a ZIP file. @@ -191,7 +211,7 @@ def create_by_importation(self, file: UploadFile, is_json: bool = False) -> List if file.content_type == "application/zip": with contextlib.closing(f): buffer = io.BytesIO(f.read()) - matrix_info: List[MatrixInfoDTO] = [] + matrix_info: t.List[MatrixInfoDTO] = [] if file.filename.endswith("zip"): with zipfile.ZipFile(buffer) as zf: for info in zf.infolist(): @@ -237,7 +257,7 @@ def get_dataset( self, id: str, params: RequestParameters, - ) -> Optional[MatrixDataSet]: + ) -> t.Optional[MatrixDataSet]: if not params.user: raise UserHasNotPermissionError() dataset = self.repo_dataset.get(id) @@ -250,7 +270,7 @@ def get_dataset( def create_dataset( self, dataset_info: MatrixDataSetUpdateDTO, - matrices: List[MatrixInfoDTO], + matrices: t.List[MatrixInfoDTO], params: RequestParameters, ) -> MatrixDataSet: if not params.user: @@ -296,10 +316,10 @@ def update_dataset( def list( self, - dataset_name: Optional[str], + dataset_name: t.Optional[str], filter_own: bool, params: RequestParameters, - ) -> List[MatrixDataSetDTO]: + ) -> t.List[MatrixDataSetDTO]: """ List matrix user metadata @@ -337,7 +357,7 @@ def delete_dataset(self, id: str, params: RequestParameters) -> str: self.repo_dataset.delete(id) return id - def get(self, matrix_id: str) -> Optional[MatrixDTO]: + def get(self, matrix_id: str) -> t.Optional[MatrixDTO]: """ Get a matrix object from the database and the matrix content repository. @@ -414,7 +434,7 @@ def check_access_permission( raise UserHasNotPermissionError() return access - def create_matrix_files(self, matrix_ids: Sequence[str], export_path: Path) -> str: + def create_matrix_files(self, matrix_ids: t.Sequence[str], export_path: Path) -> str: with tempfile.TemporaryDirectory(dir=self.config.storage.tmp_dir) as tmpdir: stopwatch = StopWatch() for mid in matrix_ids: @@ -461,7 +481,7 @@ def download_dataset( def download_matrix_list( self, - matrix_list: Sequence[str], + matrix_list: t.Sequence[str], dataset_name: str, params: RequestParameters, ) -> FileDownloadTaskDTO: diff --git a/antarest/study/business/areas/thermal_management.py b/antarest/study/business/areas/thermal_management.py index f44ad7ba10..5a106e7fa7 100644 --- a/antarest/study/business/areas/thermal_management.py +++ b/antarest/study/business/areas/thermal_management.py @@ -8,8 +8,8 @@ from antarest.study.model import Study from antarest.study.storage.rawstudy.model.filesystem.config.model import transform_name_to_id from antarest.study.storage.rawstudy.model.filesystem.config.thermal import ( - Thermal860Config, - Thermal860Properties, + Thermal870Config, + Thermal870Properties, ThermalConfigType, create_thermal_config, ) @@ -32,7 +32,7 @@ @camel_case_model -class ThermalClusterInput(Thermal860Properties, metaclass=AllOptionalMetaclass, use_none=True): +class ThermalClusterInput(Thermal870Properties, metaclass=AllOptionalMetaclass, use_none=True): """ Model representing the data structure required to edit an existing thermal cluster within a study. """ @@ -72,7 +72,7 @@ def to_config(self, study_version: t.Union[str, int]) -> ThermalConfigType: @camel_case_model -class ThermalClusterOutput(Thermal860Config, metaclass=AllOptionalMetaclass, use_none=True): +class ThermalClusterOutput(Thermal870Config, metaclass=AllOptionalMetaclass, use_none=True): """ Model representing the output data structure to display the details of a thermal cluster within a study. """ diff --git a/antarest/study/business/binding_constraint_management.py b/antarest/study/business/binding_constraint_management.py index 55112da1da..910c30dc51 100644 --- a/antarest/study/business/binding_constraint_management.py +++ b/antarest/study/business/binding_constraint_management.py @@ -1,32 +1,46 @@ -from typing import Any, Dict, List, Optional, Union +from typing import Any, Dict, List, Optional, Union, cast from pydantic import BaseModel, validator from antarest.core.exceptions import ( BindingConstraintNotFoundError, + CommandApplicationError, ConstraintAlreadyExistError, ConstraintIdNotFoundError, DuplicateConstraintName, + IncoherenceBetweenMatricesLength, InvalidConstraintName, + InvalidFieldForVersionError, MissingDataError, NoConstraintError, ) -from antarest.matrixstore.model import MatrixData from antarest.study.business.utils import execute_or_add_commands from antarest.study.model import Study from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import BindingConstraintFrequency from antarest.study.storage.rawstudy.model.filesystem.config.model import transform_name_to_id +from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.storage_service import StudyStorageService -from antarest.study.storage.variantstudy.business.matrix_constants.binding_constraint.series import ( - default_bc_hourly, - default_bc_weekly_daily, +from antarest.study.storage.variantstudy.business.matrix_constants.binding_constraint.series_after_v87 import ( + default_bc_hourly as default_bc_hourly_87, +) +from antarest.study.storage.variantstudy.business.matrix_constants.binding_constraint.series_after_v87 import ( + default_bc_weekly_daily as default_bc_weekly_daily_87, +) +from antarest.study.storage.variantstudy.business.matrix_constants.binding_constraint.series_before_v87 import ( + default_bc_hourly as default_bc_hourly_86, +) +from antarest.study.storage.variantstudy.business.matrix_constants.binding_constraint.series_before_v87 import ( + default_bc_weekly_daily as default_bc_weekly_daily_86, ) -from antarest.study.storage.variantstudy.model.command.common import BindingConstraintOperator from antarest.study.storage.variantstudy.model.command.create_binding_constraint import ( + BindingConstraintMatrices, BindingConstraintProperties, + BindingConstraintProperties870, CreateBindingConstraint, ) +from antarest.study.storage.variantstudy.model.command.remove_binding_constraint import RemoveBindingConstraint from antarest.study.storage.variantstudy.model.command.update_binding_constraint import UpdateBindingConstraint +from antarest.study.storage.variantstudy.model.dbmodel import VariantStudy class AreaLinkDTO(BaseModel): @@ -102,23 +116,24 @@ class UpdateBindingConstProps(BaseModel): value: Any -class BindingConstraintPropertiesWithName(BindingConstraintProperties): +class BindingConstraintCreation(BindingConstraintMatrices, BindingConstraintProperties870): name: str + coeffs: Dict[str, List[float]] -class BindingConstraintDTO(BaseModel): +class BindingConstraintConfig(BindingConstraintProperties): id: str name: str - enabled: bool = True - time_step: BindingConstraintFrequency - operator: BindingConstraintOperator - values: Optional[Union[List[List[MatrixData]], str]] = None - comments: Optional[str] = None - filter_year_by_year: Optional[str] = None - filter_synthesis: Optional[str] = None constraints: Optional[List[ConstraintTermDTO]] +class BindingConstraintConfig870(BindingConstraintConfig): + group: Optional[str] = None + + +BindingConstraintConfigType = Union[BindingConstraintConfig870, BindingConstraintConfig] + + class BindingConstraintManager: def __init__( self, @@ -127,7 +142,7 @@ def __init__( self.storage_service = storage_service @staticmethod - def parse_constraint(key: str, value: str, char: str, new_config: BindingConstraintDTO) -> bool: + def parse_constraint(key: str, value: str, char: str, new_config: BindingConstraintConfigType) -> bool: split = key.split(char) if len(split) == 2: value1 = split[0] @@ -163,20 +178,24 @@ def parse_constraint(key: str, value: str, char: str, new_config: BindingConstra return False @staticmethod - def process_constraint( - constraint_value: Dict[str, Any], - ) -> BindingConstraintDTO: - new_config: BindingConstraintDTO = BindingConstraintDTO( - id=constraint_value["id"], - name=constraint_value["name"], - enabled=constraint_value["enabled"], - time_step=constraint_value["type"], - operator=constraint_value["operator"], - comments=constraint_value.get("comments", None), - filter_year_by_year=constraint_value.get("filter-year-by-year", ""), - filter_synthesis=constraint_value.get("filter-synthesis", ""), - constraints=None, - ) + def process_constraint(constraint_value: Dict[str, Any], version: int) -> BindingConstraintConfigType: + args = { + "id": constraint_value["id"], + "name": constraint_value["name"], + "enabled": constraint_value["enabled"], + "time_step": constraint_value["type"], + "operator": constraint_value["operator"], + "comments": constraint_value.get("comments", None), + "filter_year_by_year": constraint_value.get("filter-year-by-year", ""), + "filter_synthesis": constraint_value.get("filter-synthesis", ""), + "constraints": None, + } + if version < 870: + new_config: BindingConstraintConfigType = BindingConstraintConfig(**args) + else: + args["group"] = constraint_value.get("group") + new_config = BindingConstraintConfig870(**args) + for key, value in constraint_value.items(): if BindingConstraintManager.parse_constraint(key, value, "%", new_config): continue @@ -186,7 +205,7 @@ def process_constraint( @staticmethod def constraints_to_coeffs( - constraint: BindingConstraintDTO, + constraint: BindingConstraintConfigType, ) -> Dict[str, List[float]]: coeffs: Dict[str, List[float]] = {} if constraint.constraints is not None: @@ -200,42 +219,57 @@ def constraints_to_coeffs( def get_binding_constraint( self, study: Study, constraint_id: Optional[str] - ) -> Union[BindingConstraintDTO, List[BindingConstraintDTO], None]: + ) -> Union[BindingConstraintConfigType, List[BindingConstraintConfigType], None]: storage_service = self.storage_service.get_storage(study) file_study = storage_service.get_raw(study) config = file_study.tree.get(["input", "bindingconstraints", "bindingconstraints"]) config_values = list(config.values()) + study_version = int(study.version) if constraint_id: try: index = [value["id"] for value in config_values].index(constraint_id) config_value = config_values[index] - return BindingConstraintManager.process_constraint(config_value) + return BindingConstraintManager.process_constraint(config_value, study_version) except ValueError: return None binding_constraint = [] for config_value in config_values: - new_config = BindingConstraintManager.process_constraint(config_value) + new_config = BindingConstraintManager.process_constraint(config_value, study_version) binding_constraint.append(new_config) return binding_constraint def create_binding_constraint( self, study: Study, - data: BindingConstraintPropertiesWithName, + data: BindingConstraintCreation, ) -> None: bc_id = transform_name_to_id(data.name) + version = int(study.version) if not bc_id: raise InvalidConstraintName(f"Invalid binding constraint name: {data.name}.") - file_study = self.storage_service.get_storage(study).get_raw(study) - binding_constraints = self.get_binding_constraint(study, None) - existing_ids = {bc.id for bc in binding_constraints} # type: ignore - - if bc_id in existing_ids: + if bc_id in {bc.id for bc in self.get_binding_constraint(study, None)}: # type: ignore raise DuplicateConstraintName(f"A binding constraint with the same name already exists: {bc_id}.") + if data.group and version < 870: + raise InvalidFieldForVersionError( + f"You cannot specify a group as your study version is older than v8.7: {data.group}" + ) + + if version >= 870 and not data.group: + data.group = "default" + + matrix_terms_list = {"eq": data.equal_term_matrix, "lt": data.less_term_matrix, "gt": data.greater_term_matrix} + file_study = self.storage_service.get_storage(study).get_raw(study) + if version >= 870: + if data.values is not None: + raise InvalidFieldForVersionError("You cannot fill 'values' as it refers to the matrix before v8.7") + check_matrices_coherence(file_study, data.group or "default", bc_id, matrix_terms_list, {}) + elif any(matrix_terms_list.values()): + raise InvalidFieldForVersionError("You cannot fill a 'matrix_term' as these values refer to v8.7+ studies") + command = CreateBindingConstraint( name=data.name, enabled=data.enabled, @@ -243,11 +277,20 @@ def create_binding_constraint( operator=data.operator, coeffs=data.coeffs, values=data.values, + less_term_matrix=data.less_term_matrix, + equal_term_matrix=data.equal_term_matrix, + greater_term_matrix=data.greater_term_matrix, filter_year_by_year=data.filter_year_by_year, filter_synthesis=data.filter_synthesis, comments=data.comments or "", + group=data.group, command_context=self.storage_service.variant_study_service.command_factory.command_context, ) + + # Validates the matrices. Needed when the study is a variant because we only append the command to the list + if isinstance(study, VariantStudy): + command.validates_and_fills_matrices(specific_matrices=None, version=version, create=True) + execute_or_add_commands(study, file_study, [command], self.storage_service) def update_binding_constraint( @@ -258,87 +301,55 @@ def update_binding_constraint( ) -> None: file_study = self.storage_service.get_storage(study).get_raw(study) constraint = self.get_binding_constraint(study, binding_constraint_id) - if not isinstance(constraint, BindingConstraintDTO): + study_version = int(study.version) + if not isinstance(constraint, BindingConstraintConfig) and not isinstance( + constraint, BindingConstraintConfig870 + ): raise BindingConstraintNotFoundError(study.id) - if data.key == "time_step" and data.value != constraint.time_step: - # The user changed the time step, we need to update the matrix accordingly - matrix = { - BindingConstraintFrequency.HOURLY.value: default_bc_hourly, - BindingConstraintFrequency.DAILY.value: default_bc_weekly_daily, - BindingConstraintFrequency.WEEKLY.value: default_bc_weekly_daily, - }[data.value].tolist() - else: - # The user changed another property, we keep the matrix as it is - matrix = constraint.values + if study_version >= 870: + validates_matrices_coherence(file_study, binding_constraint_id, constraint.group or "default", data) # type: ignore - command = UpdateBindingConstraint( - id=constraint.id, - enabled=data.value if data.key == "enabled" else constraint.enabled, - time_step=data.value if data.key == "time_step" else constraint.time_step, - operator=data.value if data.key == "operator" else constraint.operator, - coeffs=BindingConstraintManager.constraints_to_coeffs(constraint), - values=matrix, - filter_year_by_year=data.value if data.key == "filterByYear" else constraint.filter_year_by_year, - filter_synthesis=data.value if data.key == "filterSynthesis" else constraint.filter_synthesis, - comments=data.value if data.key == "comments" else constraint.comments, - command_context=self.storage_service.variant_study_service.command_factory.command_context, - ) - execute_or_add_commands(study, file_study, [command], self.storage_service) + args = { + "id": binding_constraint_id, + "enabled": data.value if data.key == "enabled" else constraint.enabled, + "time_step": data.value if data.key == "time_step" else constraint.time_step, + "operator": data.value if data.key == "operator" else constraint.operator, + "coeffs": BindingConstraintManager.constraints_to_coeffs(constraint), + "filter_year_by_year": data.value if data.key == "filterByYear" else constraint.filter_year_by_year, + "filter_synthesis": data.value if data.key == "filterSynthesis" else constraint.filter_synthesis, + "comments": data.value if data.key == "comments" else constraint.comments, + "command_context": self.storage_service.variant_study_service.command_factory.command_context, + } - @staticmethod - def find_constraint_term_id(constraints_term: List[ConstraintTermDTO], constraint_term_id: str) -> int: - try: - index = [elm.id for elm in constraints_term].index(constraint_term_id) - return index - except ValueError: - return -1 + args = _fill_group_value(data, constraint, study_version, args) + args = _fill_matrices_according_to_version(data, study_version, args) - def add_new_constraint_term( - self, - study: Study, - binding_constraint_id: str, - constraint_term: ConstraintTermDTO, - ) -> None: - file_study = self.storage_service.get_storage(study).get_raw(study) - constraint = self.get_binding_constraint(study, binding_constraint_id) - if not isinstance(constraint, BindingConstraintDTO): - raise BindingConstraintNotFoundError(study.id) - - if constraint_term.data is None: - raise MissingDataError("Add new constraint term : data is missing") + if data.key == "time_step" and data.value != constraint.time_step: + # The user changed the time step, we need to update the matrix accordingly + args = _replace_matrices_according_to_frequency_and_version(data, study_version, args) - constraint_id = constraint_term.data.generate_id() - constraints_term = constraint.constraints or [] - if BindingConstraintManager.find_constraint_term_id(constraints_term, constraint_id) >= 0: - raise ConstraintAlreadyExistError(study.id) + command = UpdateBindingConstraint(**args) + # Validates the matrices. Needed when the study is a variant because we only append the command to the list + if isinstance(study, VariantStudy): + updated_matrix = None + if data.key in ["less_term_matrix", "equal_term_matrix", "greater_term_matrix"]: + updated_matrix = [data.key] + command.validates_and_fills_matrices(specific_matrices=updated_matrix, version=study_version, create=False) - constraints_term.append( - ConstraintTermDTO( - id=constraint_id, - weight=constraint_term.weight if constraint_term.weight is not None else 0.0, - offset=constraint_term.offset, - data=constraint_term.data, - ) - ) - coeffs = {} - for term in constraints_term: - coeffs[term.id] = [term.weight] - if term.offset is not None: - coeffs[term.id].append(term.offset) + execute_or_add_commands(study, file_study, [command], self.storage_service) - command = UpdateBindingConstraint( - id=constraint.id, - enabled=constraint.enabled, - time_step=constraint.time_step, - operator=constraint.operator, - coeffs=coeffs, - values=constraint.values, - comments=constraint.comments, - filter_year_by_year=constraint.filter_year_by_year, - filter_synthesis=constraint.filter_synthesis, + def remove_binding_constraint(self, study: Study, binding_constraint_id: str) -> None: + command = RemoveBindingConstraint( + id=binding_constraint_id, command_context=self.storage_service.variant_study_service.command_factory.command_context, ) + file_study = self.storage_service.get_storage(study).get_raw(study) + + # Needed when the study is a variant because we only append the command to the list + if isinstance(study, VariantStudy) and not self.get_binding_constraint(study, binding_constraint_id): + raise CommandApplicationError("Binding constraint not found") + execute_or_add_commands(study, file_study, [command], self.storage_service) def update_constraint_term( @@ -350,7 +361,7 @@ def update_constraint_term( file_study = self.storage_service.get_storage(study).get_raw(study) constraint = self.get_binding_constraint(study, binding_constraint_id) - if not isinstance(constraint, BindingConstraintDTO): + if not isinstance(constraint, BindingConstraintConfig) and not isinstance(constraint, BindingConstraintConfig): raise BindingConstraintNotFoundError(study.id) constraint_terms = constraint.constraints # existing constraint terms @@ -361,7 +372,7 @@ def update_constraint_term( if term_id is None: raise ConstraintIdNotFoundError(study.id) - term_id_index = BindingConstraintManager.find_constraint_term_id(constraint_terms, term_id) + term_id_index = find_constraint_term_id(constraint_terms, term_id) if term_id_index < 0: raise ConstraintIdNotFoundError(study.id) @@ -386,7 +397,6 @@ def update_constraint_term( time_step=constraint.time_step, operator=constraint.operator, coeffs=coeffs, - values=constraint.values, filter_year_by_year=constraint.filter_year_by_year, filter_synthesis=constraint.filter_synthesis, comments=constraint.comments, @@ -394,6 +404,52 @@ def update_constraint_term( ) execute_or_add_commands(study, file_study, [command], self.storage_service) + def add_new_constraint_term( + self, + study: Study, + binding_constraint_id: str, + constraint_term: ConstraintTermDTO, + ) -> None: + file_study = self.storage_service.get_storage(study).get_raw(study) + constraint = self.get_binding_constraint(study, binding_constraint_id) + if not isinstance(constraint, BindingConstraintConfig) and not isinstance(constraint, BindingConstraintConfig): + raise BindingConstraintNotFoundError(study.id) + + if constraint_term.data is None: + raise MissingDataError("Add new constraint term : data is missing") + + constraint_id = constraint_term.data.generate_id() + constraints_term = constraint.constraints or [] + if find_constraint_term_id(constraints_term, constraint_id) >= 0: + raise ConstraintAlreadyExistError(study.id) + + constraints_term.append( + ConstraintTermDTO( + id=constraint_id, + weight=constraint_term.weight if constraint_term.weight is not None else 0.0, + offset=constraint_term.offset, + data=constraint_term.data, + ) + ) + coeffs = {} + for term in constraints_term: + coeffs[term.id] = [term.weight] + if term.offset is not None: + coeffs[term.id].append(term.offset) + + command = UpdateBindingConstraint( + id=constraint.id, + enabled=constraint.enabled, + time_step=constraint.time_step, + operator=constraint.operator, + coeffs=coeffs, + comments=constraint.comments, + filter_year_by_year=constraint.filter_year_by_year, + filter_synthesis=constraint.filter_synthesis, + command_context=self.storage_service.variant_study_service.command_factory.command_context, + ) + execute_or_add_commands(study, file_study, [command], self.storage_service) + # FIXME create a dedicated delete service def remove_constraint_term( self, @@ -402,3 +458,151 @@ def remove_constraint_term( term_id: str, ) -> None: return self.update_constraint_term(study, binding_constraint_id, term_id) + + +def _fill_group_value( + data: UpdateBindingConstProps, constraint: BindingConstraintConfigType, version: int, args: Dict[str, Any] +) -> Dict[str, Any]: + if version < 870: + if data.key == "group": + raise InvalidFieldForVersionError( + f"You cannot specify a group as your study version is older than v8.7: {data.value}" + ) + else: + # cast to 870 to use the attribute group + constraint = cast(BindingConstraintConfig870, constraint) + args["group"] = data.value if data.key == "group" else constraint.group + return args + + +def _fill_matrices_according_to_version( + data: UpdateBindingConstProps, version: int, args: Dict[str, Any] +) -> Dict[str, Any]: + if data.key == "values": + if version >= 870: + raise InvalidFieldForVersionError("You cannot fill 'values' as it refers to the matrix before v8.7") + args["values"] = data.value + return args + for matrix in ["less_term_matrix", "equal_term_matrix", "greater_term_matrix"]: + if data.key == matrix: + if version < 870: + raise InvalidFieldForVersionError( + "You cannot fill a 'matrix_term' as these values refer to v8.7+ studies" + ) + args[matrix] = data.value + return args + return args + + +def _replace_matrices_according_to_frequency_and_version( + data: UpdateBindingConstProps, version: int, args: Dict[str, Any] +) -> Dict[str, Any]: + if version < 870: + matrix = { + BindingConstraintFrequency.HOURLY.value: default_bc_hourly_86, + BindingConstraintFrequency.DAILY.value: default_bc_weekly_daily_86, + BindingConstraintFrequency.WEEKLY.value: default_bc_weekly_daily_86, + }[data.value].tolist() + args["values"] = matrix + else: + matrix = { + BindingConstraintFrequency.HOURLY.value: default_bc_hourly_87, + BindingConstraintFrequency.DAILY.value: default_bc_weekly_daily_87, + BindingConstraintFrequency.WEEKLY.value: default_bc_weekly_daily_87, + }[data.value].tolist() + args["less_term_matrix"] = matrix + args["equal_term_matrix"] = matrix + args["greater_term_matrix"] = matrix + return args + + +def find_constraint_term_id(constraints_term: List[ConstraintTermDTO], constraint_term_id: str) -> int: + try: + index = [elm.id for elm in constraints_term].index(constraint_term_id) + return index + except ValueError: + return -1 + + +def get_binding_constraint_of_a_given_group(file_study: FileStudy, group_id: str) -> List[str]: + config = file_study.tree.get(["input", "bindingconstraints", "bindingconstraints"]) + config_values = list(config.values()) + return [bd["id"] for bd in config_values if bd["group"] == group_id] + + +def check_matrices_coherence( + file_study: FileStudy, + group_id: str, + binding_constraint_id: str, + matrix_terms: Dict[str, Any], + matrix_to_avoid: Dict[str, str], +) -> None: + given_number_of_cols = set() + for term_str, term_data in matrix_terms.items(): + if term_data: + nb_cols = len(term_data[0]) + if nb_cols > 1: + given_number_of_cols.add(nb_cols) + if len(given_number_of_cols) > 1: + raise IncoherenceBetweenMatricesLength( + f"The matrices of {binding_constraint_id} must have the same number of columns, currently {given_number_of_cols}" + ) + if len(given_number_of_cols) == 1: + given_size = list(given_number_of_cols)[0] + for bd_id in get_binding_constraint_of_a_given_group(file_study, group_id): + for term in list(matrix_terms.keys()): + if ( + bd_id not in matrix_to_avoid or matrix_to_avoid[bd_id] != term + ): # avoids to check the matrix that will be replaced + matrix_file = file_study.tree.get(url=["input", "bindingconstraints", f"{bd_id}_{term}"]) + column_size = len(matrix_file["data"][0]) + if column_size > 1 and column_size != given_size: + raise IncoherenceBetweenMatricesLength( + f"The matrices of the group {group_id} do not have the same number of columns" + ) + + +def validates_matrices_coherence( + file_study: FileStudy, binding_constraint_id: str, group: str, data: UpdateBindingConstProps +) -> None: + if data.key == "group": + matrix_terms = { + "eq": get_matrix_data(file_study, binding_constraint_id, "eq"), + "lt": get_matrix_data(file_study, binding_constraint_id, "lt"), + "gt": get_matrix_data(file_study, binding_constraint_id, "gt"), + } + check_matrices_coherence(file_study, data.value, binding_constraint_id, matrix_terms, {}) + + if data.key in ["less_term_matrix", "equal_term_matrix", "greater_term_matrix"]: + if isinstance(data.value, str): + raise NotImplementedError( + f"We do not currently handle binding constraint update for {data.key} with a string value. Please provide a matrix" + ) + if data.key == "less_term_matrix": + term_to_avoid = "lt" + matrix_terms = { + "lt": data.value, + "eq": get_matrix_data(file_study, binding_constraint_id, "eq"), + "gt": get_matrix_data(file_study, binding_constraint_id, "gt"), + } + elif data.key == "greater_term_matrix": + term_to_avoid = "gt" + matrix_terms = { + "gt": data.value, + "eq": get_matrix_data(file_study, binding_constraint_id, "eq"), + "lt": get_matrix_data(file_study, binding_constraint_id, "lt"), + } + else: + term_to_avoid = "eq" + matrix_terms = { + "eq": data.value, + "gt": get_matrix_data(file_study, binding_constraint_id, "gt"), + "lt": get_matrix_data(file_study, binding_constraint_id, "lt"), + } + check_matrices_coherence( + file_study, group, binding_constraint_id, matrix_terms, {binding_constraint_id: term_to_avoid} + ) + + +def get_matrix_data(file_study: FileStudy, binding_constraint_id: str, keyword: str) -> List[Any]: + return file_study.tree.get(url=["input", "bindingconstraints", f"{binding_constraint_id}_{keyword}"])["data"] # type: ignore diff --git a/antarest/study/business/table_mode_management.py b/antarest/study/business/table_mode_management.py index 43808e8248..260d258a12 100644 --- a/antarest/study/business/table_mode_management.py +++ b/antarest/study/business/table_mode_management.py @@ -112,6 +112,7 @@ class BindingConstraintColumns(FormFieldsBaseModel): type: Optional[BindingConstraintFrequency] operator: Optional[BindingConstraintOperator] enabled: Optional[StrictBool] + group: Optional[StrictStr] class ColumnInfo(TypedDict): @@ -342,6 +343,10 @@ class PathVars(TypedDict, total=False): "path": f"{BINDING_CONSTRAINT_PATH}/enabled", "default_value": True, }, + "group": { + "path": f"{BINDING_CONSTRAINT_PATH}/group", + "default_value": None, + }, }, } @@ -477,7 +482,9 @@ def set_table_data( if current_binding: col_values = columns.dict(exclude_none=True) - current_binding_dto = BindingConstraintManager.process_constraint(current_binding) + current_binding_dto = BindingConstraintManager.process_constraint( + current_binding, int(study.version) + ) commands.append( UpdateBindingConstraint( diff --git a/antarest/study/model.py b/antarest/study/model.py index e4e5e8ba42..40737debad 100644 --- a/antarest/study/model.py +++ b/antarest/study/model.py @@ -45,9 +45,10 @@ "840": "empty_study_840.zip", "850": "empty_study_850.zip", "860": "empty_study_860.zip", + "870": "empty_study_870.zip", } -NEW_DEFAULT_STUDY_VERSION: str = "860" +NEW_DEFAULT_STUDY_VERSION: str = "870" class StudyGroup(Base): # type:ignore diff --git a/antarest/study/storage/rawstudy/ini_writer.py b/antarest/study/storage/rawstudy/ini_writer.py index 9b348f1b27..3a5c1198d6 100644 --- a/antarest/study/storage/rawstudy/ini_writer.py +++ b/antarest/study/storage/rawstudy/ini_writer.py @@ -27,7 +27,6 @@ def _write_line( # type:ignore self, section_name, key, value ) if value is not None or not self._allow_no_value: # type:ignore - # value = IniConfigParser.format_value(value) value = delimiter + str(value).replace("\n", "\n\t") else: value = "" diff --git a/antarest/study/storage/rawstudy/model/filesystem/common/area_matrix_list.py b/antarest/study/storage/rawstudy/model/filesystem/common/area_matrix_list.py index 1d39a72a66..0191b866d1 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/common/area_matrix_list.py +++ b/antarest/study/storage/rawstudy/model/filesystem/common/area_matrix_list.py @@ -1,4 +1,4 @@ -from typing import Any, Callable, Dict, Optional +import typing as t from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer @@ -44,8 +44,8 @@ def __init__( config: FileStudyTreeConfig, *, prefix: str = "", - matrix_class: Callable[..., INode[Any, Any, Any]] = InputSeriesMatrix, - additional_matrix_params: Optional[Dict[str, Any]] = None, + matrix_class: t.Callable[..., INode[t.Any, t.Any, t.Any]] = InputSeriesMatrix, + additional_matrix_params: t.Optional[t.Dict[str, t.Any]] = None, ): super().__init__(context, config) self.prefix = prefix @@ -77,7 +77,7 @@ def __init__( context: ContextServer, config: FileStudyTreeConfig, area: str, - matrix_class: Callable[[ContextServer, FileStudyTreeConfig], INode[Any, Any, Any]], + matrix_class: t.Callable[[ContextServer, FileStudyTreeConfig], INode[t.Any, t.Any, t.Any]], ): super().__init__(context, config) self.area = area @@ -91,13 +91,31 @@ def build(self) -> TREE: return children +class BindingConstraintMatrixList(FolderNode): + def __init__( + self, + context: ContextServer, + config: FileStudyTreeConfig, + matrix_class: t.Callable[[ContextServer, FileStudyTreeConfig], INode[t.Any, t.Any, t.Any]], + ): + super().__init__(context, config) + self.matrix_class = matrix_class + + def build(self) -> TREE: + """Builds the folder structure and creates child nodes representing each matrix file.""" + return { + file.stem: self.matrix_class(self.context, self.config.next_file(file.name)) + for file in self.config.path.glob("*.txt") + } + + class ThermalMatrixList(FolderNode): def __init__( self, context: ContextServer, config: FileStudyTreeConfig, area: str, - matrix_class: Callable[[ContextServer, FileStudyTreeConfig], INode[Any, Any, Any]], + matrix_class: t.Callable[[ContextServer, FileStudyTreeConfig], INode[t.Any, t.Any, t.Any]], ): super().__init__(context, config) self.area = area @@ -119,19 +137,19 @@ def __init__( self, context: ContextServer, config: FileStudyTreeConfig, - klass: Callable[ + klass: t.Callable[ [ ContextServer, FileStudyTreeConfig, str, - Callable[ + t.Callable[ [ContextServer, FileStudyTreeConfig], - INode[Any, Any, Any], + INode[t.Any, t.Any, t.Any], ], ], - INode[Any, Any, Any], + INode[t.Any, t.Any, t.Any], ], - matrix_class: Callable[[ContextServer, FileStudyTreeConfig], INode[Any, Any, Any]], + matrix_class: t.Callable[[ContextServer, FileStudyTreeConfig], INode[t.Any, t.Any, t.Any]], ): super().__init__(context, config) self.klass = klass diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/thermal.py b/antarest/study/storage/rawstudy/model/filesystem/config/thermal.py index e9a663e9ac..f2a810025a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/thermal.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/thermal.py @@ -7,14 +7,16 @@ from antarest.study.storage.rawstudy.model.filesystem.config.identifier import IgnoreCaseIdentifier __all__ = ( - "LocalTSGenerationBehavior", "LawOption", + "LocalTSGenerationBehavior", + "Thermal860Config", + "Thermal870Config", + "Thermal870Properties", "ThermalClusterGroup", - "ThermalProperties", - "Thermal860Properties", "ThermalConfig", - "Thermal860Config", "ThermalConfigType", + "ThermalCostGeneration", + "ThermalProperties", "create_thermal_config", ) @@ -34,7 +36,7 @@ class LocalTSGenerationBehavior(EnumIgnoreCase): FORCE_NO_GENERATION = "force no generation" FORCE_GENERATION = "force generation" - def __repr__(self) -> str: + def __repr__(self) -> str: # pragma: no cover return f"{self.__class__.__name__}.{self.name}" @@ -47,7 +49,7 @@ class LawOption(EnumIgnoreCase): UNIFORM = "uniform" GEOMETRIC = "geometric" - def __repr__(self) -> str: + def __repr__(self) -> str: # pragma: no cover return f"{self.__class__.__name__}.{self.name}" @@ -68,7 +70,7 @@ class ThermalClusterGroup(EnumIgnoreCase): OTHER3 = "Other 3" OTHER4 = "Other 4" - def __repr__(self) -> str: + def __repr__(self) -> str: # pragma: no cover return f"{self.__class__.__name__}.{self.name}" @classmethod @@ -87,6 +89,16 @@ def _missing_(cls, value: object) -> t.Optional["ThermalClusterGroup"]: return t.cast(t.Optional["ThermalClusterGroup"], super()._missing_(value)) +class ThermalCostGeneration(EnumIgnoreCase): + """ + Specifies how to generate thermal cluster cost. + The value `SetManually` is used by default. + """ + + SET_MANUALLY = "SetManually" + USE_COST_TIME_SERIES = "useCostTimeseries" + + class ThermalProperties(ClusterProperties): """ Thermal cluster configuration model. @@ -262,6 +274,31 @@ class Thermal860Properties(ThermalProperties): ) +# noinspection SpellCheckingInspection +class Thermal870Properties(Thermal860Properties): + """ + Thermal cluster configuration model for study in version 8.7 or above. + """ + + cost_generation: ThermalCostGeneration = Field( + default=ThermalCostGeneration.SET_MANUALLY, + alias="costgeneration", + description="Cost generation option", + ) + efficiency: float = Field( + default=100.0, + ge=0, + le=100, + description="Efficiency (%)", + ) + # Even if `variableomcost` is a cost it could be negative. + variable_o_m_cost: float = Field( + default=0.0, + description="Operating and Maintenance Cost (€/MWh)", + alias="variableomcost", + ) + + class ThermalConfig(ThermalProperties, IgnoreCaseIdentifier): """ Thermal properties with section ID. @@ -285,7 +322,7 @@ class ThermalConfig(ThermalProperties, IgnoreCaseIdentifier): class Thermal860Config(Thermal860Properties, IgnoreCaseIdentifier): """ - Thermal properties for study in version 8.6 or above. + Thermal properties for study in version 860 Usage: @@ -305,9 +342,37 @@ class Thermal860Config(Thermal860Properties, IgnoreCaseIdentifier): """ +class Thermal870Config(Thermal870Properties, IgnoreCaseIdentifier): + """ + Thermal properties for study in version 8.7 or above. + + Usage: + + >>> from antarest.study.storage.rawstudy.model.filesystem.config.thermal import Thermal870Config + + >>> cl = Thermal870Config(name="cluster 01!", group="Nuclear", co2=123, nh3=456, efficiency=97) + >>> cl.id + 'cluster 01' + >>> cl.group == ThermalClusterGroup.NUCLEAR + True + >>> cl.co2 + 123.0 + >>> cl.nh3 + 456.0 + >>> cl.op1 + 0.0 + >>> cl.efficiency + 97.0 + >>> cl.variable_o_m_cost + 0.0 + >>> cl.cost_generation == ThermalCostGeneration.SET_MANUALLY + True + """ + + # NOTE: In the following Union, it is important to place the most specific type first, # because the type matching generally occurs sequentially from left to right within the union. -ThermalConfigType = t.Union[Thermal860Config, ThermalConfig] +ThermalConfigType = t.Union[Thermal870Config, Thermal860Config, ThermalConfig] def create_thermal_config(study_version: t.Union[str, int], **kwargs: t.Any) -> ThermalConfigType: @@ -325,7 +390,9 @@ def create_thermal_config(study_version: t.Union[str, int], **kwargs: t.Any) -> ValueError: If the study version is not supported. """ version = int(study_version) - if version >= 860: + if version >= 870: + return Thermal870Config(**kwargs) + elif version == 860: return Thermal860Config(**kwargs) else: return ThermalConfig(**kwargs) diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/bindingcontraints.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/bindingcontraints.py index 69fe669183..8ef625200c 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/bindingcontraints.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/bindingcontraints.py @@ -6,9 +6,17 @@ from antarest.study.storage.rawstudy.model.filesystem.root.input.bindingconstraints.bindingconstraints_ini import ( BindingConstraintsIni, ) -from antarest.study.storage.variantstudy.business.matrix_constants.binding_constraint.series import ( - default_bc_hourly, - default_bc_weekly_daily, +from antarest.study.storage.variantstudy.business.matrix_constants.binding_constraint.series_after_v87 import ( + default_bc_hourly as default_bc_hourly_87, +) +from antarest.study.storage.variantstudy.business.matrix_constants.binding_constraint.series_after_v87 import ( + default_bc_weekly_daily as default_bc_weekly_daily_87, +) +from antarest.study.storage.variantstudy.business.matrix_constants.binding_constraint.series_before_v87 import ( + default_bc_hourly as default_bc_hourly_86, +) +from antarest.study.storage.variantstudy.business.matrix_constants.binding_constraint.series_before_v87 import ( + default_bc_weekly_daily as default_bc_weekly_daily_86, ) @@ -19,23 +27,40 @@ class BindingConstraints(FolderNode): """ def build(self) -> TREE: - default_matrices = { - BindingConstraintFrequency.HOURLY: default_bc_hourly, - BindingConstraintFrequency.DAILY: default_bc_weekly_daily, - BindingConstraintFrequency.WEEKLY: default_bc_weekly_daily, - } - children: TREE = { - binding.id: InputSeriesMatrix( - self.context, - self.config.next_file(f"{binding.id}.txt"), - freq=MatrixFrequency(binding.time_step), - nb_columns=3, - default_empty=default_matrices[binding.time_step], - ) - for binding in self.config.bindings - } - - # noinspection SpellCheckingInspection + cfg = self.config + if cfg.version < 870: + default_matrices = { + BindingConstraintFrequency.HOURLY: default_bc_hourly_86, + BindingConstraintFrequency.DAILY: default_bc_weekly_daily_86, + BindingConstraintFrequency.WEEKLY: default_bc_weekly_daily_86, + } + children: TREE = { + binding.id: InputSeriesMatrix( + self.context, + self.config.next_file(f"{binding.id}.txt"), + freq=MatrixFrequency(binding.time_step), + nb_columns=3, + default_empty=default_matrices[binding.time_step], + ) + for binding in self.config.bindings + } + else: + default_matrices = { + BindingConstraintFrequency.HOURLY: default_bc_hourly_87, + BindingConstraintFrequency.DAILY: default_bc_weekly_daily_87, + BindingConstraintFrequency.WEEKLY: default_bc_weekly_daily_87, + } + children = {} + for binding in self.config.bindings: + for term in ["lt", "gt", "eq"]: + matrix_id = f"{binding.id}_{term}" + children[matrix_id] = InputSeriesMatrix( + self.context, + self.config.next_file(f"{matrix_id}.txt"), + freq=MatrixFrequency(binding.time_step), + nb_columns=1 if term in ["lt", "gt"] else None, + default_empty=default_matrices[binding.time_step], + ) children["bindingconstraints"] = BindingConstraintsIni( self.context, self.config.next_file("bindingconstraints.ini") ) diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/ts_numbers.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/ts_numbers.py index 5c977c1dd4..2a74e256f9 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/ts_numbers.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/ts_numbers.py @@ -1,6 +1,7 @@ from antarest.study.storage.rawstudy.model.filesystem.common.area_matrix_list import ( AreaMatrixList, AreaMultipleMatrixList, + BindingConstraintMatrixList, ThermalMatrixList, ) from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode @@ -10,17 +11,24 @@ ) +# noinspection SpellCheckingInspection class OutputSimulationTsNumbers(FolderNode): """ Represents a folder structure, which contains several time series folders (one for each generator type: "hydro", "load", "solar" and "wind") and a specific folder structure for the thermal clusters (one for each area). + Since v8.7, it also contains a folder for the binding constraints. + Example of tree structure: .. code-block:: text output/20230323-1540adq/ts-numbers/ + ├── bindingconstraints + │ ├── group_1.txt + │ ├── group_2.txt + │ └── [...] ├── hydro │ ├── at.txt │ ├── ch.txt @@ -77,4 +85,10 @@ def build(self) -> TREE: TsNumbersVector, ), } + if self.config.version >= 870: + children["bindingconstraints"] = BindingConstraintMatrixList( + self.context, + self.config.next_file("bindingconstraints"), + matrix_class=TsNumbersVector, + ) return children diff --git a/antarest/study/storage/study_upgrader/__init__.py b/antarest/study/storage/study_upgrader/__init__.py index 3f53def629..1ff75f64be 100644 --- a/antarest/study/storage/study_upgrader/__init__.py +++ b/antarest/study/storage/study_upgrader/__init__.py @@ -7,6 +7,7 @@ from http import HTTPStatus from http.client import HTTPException from pathlib import Path +from typing import Callable, List, NamedTuple from antarest.core.exceptions import StudyValidationError @@ -19,6 +20,7 @@ from .upgrader_840 import upgrade_840 from .upgrader_850 import upgrade_850 from .upgrader_860 import upgrade_860 +from .upgrader_870 import upgrade_870 logger = logging.getLogger(__name__) @@ -44,6 +46,7 @@ class UpgradeMethod(t.NamedTuple): UpgradeMethod("830", "840", upgrade_840, [_GENERAL_DATA_PATH]), UpgradeMethod("840", "850", upgrade_850, [_GENERAL_DATA_PATH]), UpgradeMethod("850", "860", upgrade_860, [Path("input"), _GENERAL_DATA_PATH]), + UpgradeMethod("860", "870", upgrade_870, [Path("input/thermal"), Path("input/bindingconstraints")]), ] @@ -273,6 +276,5 @@ def should_study_be_denormalized(src_version: str, target_version: str) -> bool: if curr_version == old and curr_version != target_version: list_of_upgrades.append(new) curr_version = new - # For now, the only upgrade that impacts study matrices is the upgrade from v8.1 to v8.2 - # In a near future, the upgrade from v8.6 to v8.7 will also require denormalization - return "820" in list_of_upgrades + # These upgrades alter matrices so the study needs to be denormalized + return "820" in list_of_upgrades or "870" in list_of_upgrades diff --git a/antarest/study/storage/study_upgrader/upgrader_860.py b/antarest/study/storage/study_upgrader/upgrader_860.py index 23ea05f178..4d6f873f0d 100644 --- a/antarest/study/storage/study_upgrader/upgrader_860.py +++ b/antarest/study/storage/study_upgrader/upgrader_860.py @@ -10,6 +10,16 @@ def upgrade_860(study_path: Path) -> None: + """ + Upgrade the study configuration to version 860. + + NOTE: + The file `study.antares` is not upgraded here. + + Args: + study_path: path to the study directory. + """ + reader = IniReader(DUPLICATE_KEYS) data = reader.read(study_path / GENERAL_DATA_PATH) data["adequacy patch"]["enable-first-step "] = True diff --git a/antarest/study/storage/study_upgrader/upgrader_870.py b/antarest/study/storage/study_upgrader/upgrader_870.py new file mode 100644 index 0000000000..a2afc4bd1f --- /dev/null +++ b/antarest/study/storage/study_upgrader/upgrader_870.py @@ -0,0 +1,59 @@ +import typing as t +from pathlib import Path + +import numpy as np +import numpy.typing as npt +import pandas as pd + +from antarest.study.storage.rawstudy.ini_reader import IniReader +from antarest.study.storage.rawstudy.ini_writer import IniWriter + + +# noinspection SpellCheckingInspection +def upgrade_870(study_path: Path) -> None: + """ + Upgrade the study configuration to version 870. + + NOTE: + The file `study.antares` is not upgraded here. + + Args: + study_path: path to the study directory. + """ + + # Split existing binding constraints in 3 different files + binding_constraints_path = study_path / "input" / "bindingconstraints" + binding_constraints_files = binding_constraints_path.glob("*.txt") + for file in binding_constraints_files: + name = file.stem + if file.stat().st_size == 0: + lt, gt, eq = pd.Series(), pd.Series(), pd.Series() + else: + df = pd.read_csv(file, sep="\t", header=None) + lt, gt, eq = df.iloc[:, 0], df.iloc[:, 1], df.iloc[:, 2] + for term, suffix in zip([lt, gt, eq], ["lt", "gt", "eq"]): + # noinspection PyTypeChecker + np.savetxt( + binding_constraints_path / f"{name}_{suffix}.txt", + t.cast(npt.NDArray[np.float64], term.values), + delimiter="\t", + fmt="%.6f", + ) + file.unlink() + + # Add property group for every section in .ini file + ini_file_path = binding_constraints_path / "bindingconstraints.ini" + data = IniReader().read(ini_file_path) + for section in data: + data[section]["group"] = "default" + IniWriter().write(data, ini_file_path) + + # Add properties for thermal clusters in .ini file + ini_files = study_path.glob("input/thermal/clusters/*/list.ini") + for ini_file_path in ini_files: + data = IniReader().read(ini_file_path) + for section in data: + data[section]["costgeneration"] = "SetManually" + data[section]["efficiency"] = 100 + data[section]["variableomcost"] = 0 + IniWriter().write(data, ini_file_path) diff --git a/antarest/study/storage/variantstudy/business/command_reverter.py b/antarest/study/storage/variantstudy/business/command_reverter.py index 1ac83c2704..fa4de66c06 100644 --- a/antarest/study/storage/variantstudy/business/command_reverter.py +++ b/antarest/study/storage/variantstudy/business/command_reverter.py @@ -5,7 +5,6 @@ from antarest.study.storage.rawstudy.model.filesystem.config.model import transform_name_to_id from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.rawstudy.model.filesystem.folder_node import ChildNotFoundError -from antarest.study.storage.variantstudy.business.utils import strip_matrix_protocol from antarest.study.storage.variantstudy.model.command.common import CommandName from antarest.study.storage.variantstudy.model.command.create_area import CreateArea from antarest.study.storage.variantstudy.model.command.create_binding_constraint import CreateBindingConstraint @@ -100,20 +99,25 @@ def _revert_update_binding_constraint( if isinstance(command, UpdateBindingConstraint) and command.id == base_command.id: return [command] elif isinstance(command, CreateBindingConstraint) and transform_name_to_id(command.name) == base_command.id: - return [ - UpdateBindingConstraint( - id=base_command.id, - enabled=command.enabled, - time_step=command.time_step, - operator=command.operator, - coeffs=command.coeffs, - values=strip_matrix_protocol(command.values), - filter_year_by_year=command.filter_year_by_year, - filter_synthesis=command.filter_synthesis, - comments=command.comments, - command_context=command.command_context, - ) - ] + args = { + "id": base_command.id, + "enabled": command.enabled, + "time_step": command.time_step, + "operator": command.operator, + "coeffs": command.coeffs, + "filter_year_by_year": command.filter_year_by_year, + "filter_synthesis": command.filter_synthesis, + "comments": command.comments, + "command_context": command.command_context, + } + + matrix_service = command.command_context.matrix_service + for matrix_name in ["values", "less_term_matrix", "equal_term_matrix", "greater_term_matrix"]: + matrix = command.__getattribute__(matrix_name) + if matrix is not None: + args[matrix_name] = matrix_service.get_matrix_id(matrix) + + return [UpdateBindingConstraint(**args)] return base_command.get_command_extractor().extract_binding_constraint(base, base_command.id) diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/__init__.py b/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/__init__.py index 0a1b9046e5..679232c20b 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/__init__.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/__init__.py @@ -1 +1 @@ -from . import series +from . import series_after_v87, series_before_v87 # noqa: F401 diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series_after_v87.py b/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series_after_v87.py new file mode 100644 index 0000000000..30c23a7dfe --- /dev/null +++ b/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series_after_v87.py @@ -0,0 +1,7 @@ +import numpy as np + +default_bc_hourly = np.zeros((8784, 1), dtype=np.float64) +default_bc_hourly.flags.writeable = False + +default_bc_weekly_daily = np.zeros((366, 1), dtype=np.float64) +default_bc_weekly_daily.flags.writeable = False diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series.py b/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series_before_v87.py similarity index 100% rename from antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series.py rename to antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series_before_v87.py diff --git a/antarest/study/storage/variantstudy/business/matrix_constants_generator.py b/antarest/study/storage/variantstudy/business/matrix_constants_generator.py index 6a4dc233d4..4c75f6a6eb 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants_generator.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants_generator.py @@ -35,11 +35,11 @@ ONES_SCENARIO_MATRIX = "ones_scenario_matrix" # Binding constraint aliases -BINDING_CONSTRAINT_HOURLY = "empty_2nd_member_hourly" -"""2D-matrix of shape (8784, 3), filled-in with zeros for hourly binding constraints.""" +BINDING_CONSTRAINT_HOURLY_v86 = "empty_2nd_member_hourly_v86" +BINDING_CONSTRAINT_DAILY_WEEKLY_v86 = "empty_2nd_member_daily_or_weekly_v86" -BINDING_CONSTRAINT_WEEKLY_DAILY = "empty_2nd_member_weekly_daily" -"""2D-matrix of shape (366, 3), filled-in with zeros for weekly/daily binding constraints.""" +BINDING_CONSTRAINT_HOURLY_v87 = "empty_2nd_member_hourly_v87" +BINDING_CONSTRAINT_DAILY_WEEKLY_v87 = "empty_2nd_member_daily_or_weekly_v87" # Short-term storage aliases ST_STORAGE_PMAX_INJECTION = ONES_SCENARIO_MATRIX @@ -95,15 +95,23 @@ def init_constant_matrices( self.hashes[RESERVES_TS] = self.matrix_service.create(FIXED_4_COLUMNS) self.hashes[MISCGEN_TS] = self.matrix_service.create(FIXED_8_COLUMNS) - # Binding constraint matrices - series = matrix_constants.binding_constraint.series - self.hashes[BINDING_CONSTRAINT_HOURLY] = self.matrix_service.create(series.default_bc_hourly) - self.hashes[BINDING_CONSTRAINT_WEEKLY_DAILY] = self.matrix_service.create(series.default_bc_weekly_daily) + # Binding constraint matrices + series_before_87 = matrix_constants.binding_constraint.series_before_v87 + self.hashes[BINDING_CONSTRAINT_HOURLY_v86] = self.matrix_service.create(series_before_87.default_bc_hourly) + self.hashes[BINDING_CONSTRAINT_DAILY_WEEKLY_v86] = self.matrix_service.create( + series_before_87.default_bc_weekly_daily + ) - # Some short-term storage matrices use np.ones((8760, 1)) - self.hashes[ONES_SCENARIO_MATRIX] = self.matrix_service.create( - matrix_constants.st_storage.series.pmax_injection - ) + series_after_87 = matrix_constants.binding_constraint.series_after_v87 + self.hashes[BINDING_CONSTRAINT_HOURLY_v87] = self.matrix_service.create(series_after_87.default_bc_hourly) + self.hashes[BINDING_CONSTRAINT_DAILY_WEEKLY_v87] = self.matrix_service.create( + series_after_87.default_bc_weekly_daily + ) + + # Some short-term storage matrices use np.ones((8760, 1)) + self.hashes[ONES_SCENARIO_MATRIX] = self.matrix_service.create( + matrix_constants.st_storage.series.pmax_injection + ) def get_hydro_max_power(self, version: int) -> str: if version > 650: @@ -157,17 +165,21 @@ def get_default_reserves(self) -> str: def get_default_miscgen(self) -> str: return MATRIX_PROTOCOL_PREFIX + self.hashes[MISCGEN_TS] - def get_binding_constraint_hourly(self) -> str: + def get_binding_constraint_hourly_86(self) -> str: """2D-matrix of shape (8784, 3), filled-in with zeros.""" - return MATRIX_PROTOCOL_PREFIX + self.hashes[BINDING_CONSTRAINT_HOURLY] + return MATRIX_PROTOCOL_PREFIX + self.hashes[BINDING_CONSTRAINT_HOURLY_v86] - def get_binding_constraint_daily(self) -> str: + def get_binding_constraint_daily_weekly_86(self) -> str: """2D-matrix of shape (366, 3), filled-in with zeros.""" - return MATRIX_PROTOCOL_PREFIX + self.hashes[BINDING_CONSTRAINT_WEEKLY_DAILY] + return MATRIX_PROTOCOL_PREFIX + self.hashes[BINDING_CONSTRAINT_DAILY_WEEKLY_v86] + + def get_binding_constraint_hourly_87(self) -> str: + """2D-matrix of shape (8784, 1), filled-in with zeros.""" + return MATRIX_PROTOCOL_PREFIX + self.hashes[BINDING_CONSTRAINT_HOURLY_v87] - def get_binding_constraint_weekly(self) -> str: - """2D-matrix of shape (366, 3), filled-in with zeros, same as daily.""" - return MATRIX_PROTOCOL_PREFIX + self.hashes[BINDING_CONSTRAINT_WEEKLY_DAILY] + def get_binding_constraint_daily_weekly_87(self) -> str: + """2D-matrix of shape (8784, 1), filled-in with zeros.""" + return MATRIX_PROTOCOL_PREFIX + self.hashes[BINDING_CONSTRAINT_DAILY_WEEKLY_v87] def get_st_storage_pmax_injection(self) -> str: """2D-matrix of shape (8760, 1), filled-in with ones.""" diff --git a/antarest/study/storage/variantstudy/business/utils.py b/antarest/study/storage/variantstudy/business/utils.py index 933c72bed7..75396ccbc6 100644 --- a/antarest/study/storage/variantstudy/business/utils.py +++ b/antarest/study/storage/variantstudy/business/utils.py @@ -1,4 +1,4 @@ -from typing import Any, Dict, List, Optional, Sequence, Union +import typing as t from antarest.core.model import JSON from antarest.matrixstore.model import MatrixData @@ -9,7 +9,7 @@ from antarest.study.storage.variantstudy.model.model import CommandDTO -def validate_matrix(matrix: Union[List[List[MatrixData]], str], values: Dict[str, Any]) -> str: +def validate_matrix(matrix: t.Union[t.List[t.List[MatrixData]], str], values: t.Dict[str, t.Any]) -> str: """ Validates the matrix, stores the matrix array in the matrices repository, and returns a reference to the stored array. @@ -62,7 +62,7 @@ def remove_none_args(command_dto: CommandDTO) -> CommandDTO: return command_dto -def strip_matrix_protocol(matrix_uri: Union[List[List[float]], str, None]) -> str: +def strip_matrix_protocol(matrix_uri: t.Union[t.List[t.List[float]], str, None]) -> str: assert isinstance(matrix_uri, str) if matrix_uri.startswith(MATRIX_PROTOCOL_PREFIX): return matrix_uri[len(MATRIX_PROTOCOL_PREFIX) :] @@ -89,13 +89,13 @@ def decode(alias: str, study: FileStudy) -> str: def transform_command_to_dto( - commands: Sequence[ICommand], - ref_commands: Optional[Sequence[CommandDTO]] = None, + commands: t.Sequence[ICommand], + ref_commands: t.Optional[t.Sequence[CommandDTO]] = None, force_aggregate: bool = False, -) -> List[CommandDTO]: +) -> t.List[CommandDTO]: if len(commands) <= 1: return [command.to_dto() for command in commands] - commands_dto: List[CommandDTO] = [] + commands_dto: t.List[CommandDTO] = [] ref_commands_dto = ref_commands if ref_commands is not None else [command.to_dto() for command in commands] prev_command = commands[0] cur_dto_index = 0 diff --git a/antarest/study/storage/variantstudy/business/utils_binding_constraint.py b/antarest/study/storage/variantstudy/business/utils_binding_constraint.py index f1ef937cdf..0779f7e048 100644 --- a/antarest/study/storage/variantstudy/business/utils_binding_constraint.py +++ b/antarest/study/storage/variantstudy/business/utils_binding_constraint.py @@ -1,4 +1,4 @@ -from typing import Dict, List, Literal, Mapping, Optional, Sequence, Union +import typing as t from antarest.core.model import JSON from antarest.matrixstore.model import MatrixData @@ -17,15 +17,20 @@ def apply_binding_constraint( new_key: str, bd_id: str, name: str, - comments: Optional[str], + comments: t.Optional[str], enabled: bool, freq: BindingConstraintFrequency, operator: BindingConstraintOperator, - coeffs: Dict[str, List[float]], - values: Optional[Union[List[List[MatrixData]], str]], - filter_year_by_year: Optional[str] = None, - filter_synthesis: Optional[str] = None, + coeffs: t.Dict[str, t.List[float]], + values: t.Union[t.List[t.List[MatrixData]], str, None], + less_term_matrix: t.Union[t.List[t.List[MatrixData]], str, None], + greater_term_matrix: t.Union[t.List[t.List[MatrixData]], str, None], + equal_term_matrix: t.Union[t.List[t.List[MatrixData]], str, None], + filter_year_by_year: t.Optional[str] = None, + filter_synthesis: t.Optional[str] = None, + group: t.Optional[str] = None, ) -> CommandOutput: + version = study_data.config.version binding_constraints[new_key] = { "name": name, "id": bd_id, @@ -33,7 +38,9 @@ def apply_binding_constraint( "type": freq.value, "operator": operator.value, } - if study_data.config.version >= 830: + if group: + binding_constraints[new_key]["group"] = group + if version >= 830: if filter_year_by_year: binding_constraints[new_key]["filter-year-by-year"] = filter_year_by_year if filter_synthesis: @@ -76,14 +83,25 @@ def apply_binding_constraint( if values: if not isinstance(values, str): # pragma: no cover raise TypeError(repr(values)) - study_data.tree.save(values, ["input", "bindingconstraints", bd_id]) + if version < 870: + study_data.tree.save(values, ["input", "bindingconstraints", bd_id]) + for matrix_term, matrix_name, matrix_alias in zip( + [less_term_matrix, greater_term_matrix, equal_term_matrix], + ["less_term_matrix", "greater_term_matrix", "equal_term_matrix"], + ["lt", "gt", "eq"], + ): + if matrix_term: + if not isinstance(matrix_term, str): # pragma: no cover + raise TypeError(repr(matrix_term)) + if version >= 870: + study_data.tree.save(matrix_term, ["input", "bindingconstraints", f"{bd_id}_{matrix_alias}"]) return CommandOutput(status=True) def parse_bindings_coeffs_and_save_into_config( bd_id: str, study_data_config: FileStudyTreeConfig, - coeffs: Mapping[str, Union[Literal["hourly", "daily", "weekly"], Sequence[float]]], + coeffs: t.Mapping[str, t.Union[t.Literal["hourly", "daily", "weekly"], t.Sequence[float]]], ) -> None: if bd_id not in [bind.id for bind in study_data_config.bindings]: areas_set = set() diff --git a/antarest/study/storage/variantstudy/command_factory.py b/antarest/study/storage/variantstudy/command_factory.py index 5fe5c7d9cb..5cf298b15e 100644 --- a/antarest/study/storage/variantstudy/command_factory.py +++ b/antarest/study/storage/variantstudy/command_factory.py @@ -74,14 +74,11 @@ def __init__( patch_service=patch_service, ) - def _to_single_command(self, action: str, args: JSON) -> ICommand: + def _to_single_command(self, action: str, args: JSON, version: int) -> ICommand: """Convert a single CommandDTO to ICommand.""" if action in COMMAND_MAPPING: command_class = COMMAND_MAPPING[action] - return command_class( - **args, - command_context=self.command_context, - ) # type: ignore + return command_class(**args, command_context=self.command_context, version=version) # type: ignore raise NotImplementedError(action) def to_command(self, command_dto: CommandDTO) -> List[ICommand]: @@ -99,9 +96,9 @@ def to_command(self, command_dto: CommandDTO) -> List[ICommand]: """ args = command_dto.args if isinstance(args, dict): - return [self._to_single_command(command_dto.action, args)] + return [self._to_single_command(command_dto.action, args, command_dto.version)] elif isinstance(args, list): - return [self._to_single_command(command_dto.action, argument) for argument in args] + return [self._to_single_command(command_dto.action, argument, command_dto.version) for argument in args] raise NotImplementedError() def to_commands(self, cmd_dto_list: List[CommandDTO]) -> List[ICommand]: diff --git a/antarest/study/storage/variantstudy/model/command/create_binding_constraint.py b/antarest/study/storage/variantstudy/model/command/create_binding_constraint.py index 79783e1bc9..495b48e557 100644 --- a/antarest/study/storage/variantstudy/model/command/create_binding_constraint.py +++ b/antarest/study/storage/variantstudy/model/command/create_binding_constraint.py @@ -1,15 +1,15 @@ +import typing as t from abc import ABCMeta -from typing import Any, Dict, List, Optional, Tuple, Union, cast import numpy as np -from pydantic import BaseModel, Field, validator +from pydantic import BaseModel, Extra, Field, root_validator from antarest.matrixstore.model import MatrixData from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import BindingConstraintFrequency from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig, transform_name_to_id from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.variantstudy.business.matrix_constants_generator import GeneratorMatrixConstants -from antarest.study.storage.variantstudy.business.utils import strip_matrix_protocol, validate_matrix +from antarest.study.storage.variantstudy.business.utils import validate_matrix from antarest.study.storage.variantstudy.business.utils_binding_constraint import ( apply_binding_constraint, parse_bindings_coeffs_and_save_into_config, @@ -27,25 +27,28 @@ "CreateBindingConstraint", "check_matrix_values", "BindingConstraintProperties", + "BindingConstraintProperties870", + "BindingConstraintMatrices", ) -MatrixType = List[List[MatrixData]] +MatrixType = t.List[t.List[MatrixData]] -def check_matrix_values(time_step: BindingConstraintFrequency, values: MatrixType) -> None: +def check_matrix_values(time_step: BindingConstraintFrequency, values: MatrixType, version: int) -> None: """ Check the binding constraint's matrix values for the specified time step. Args: time_step: The frequency of the binding constraint: "hourly", "daily" or "weekly". values: The binding constraint's 2nd member matrix. + version: Study version. Raises: ValueError: If the matrix shape does not match the expected shape for the given time step. If the matrix values contain NaN (Not-a-Number). """ - # Matrice shapes for binding constraints are different from usual shapes, + # Matrix shapes for binding constraints are different from usual shapes, # because we need to take leap years into account, which contains 366 days and 8784 hours. # Also, we use the same matrices for "weekly" and "daily" frequencies, # because the solver calculates the weekly matrix from the daily matrix. @@ -57,30 +60,77 @@ def check_matrix_values(time_step: BindingConstraintFrequency, values: MatrixTyp } # Check the matrix values and create the corresponding matrix link array = np.array(values, dtype=np.float64) - if array.shape != shapes[time_step]: - raise ValueError(f"Invalid matrix shape {array.shape}, expected {shapes[time_step]}") + expected_shape = shapes[time_step] + actual_shape = array.shape + if version < 870: + if actual_shape != expected_shape: + raise ValueError(f"Invalid matrix shape {actual_shape}, expected {expected_shape}") + elif actual_shape[0] != expected_shape[0]: + raise ValueError(f"Invalid matrix length {actual_shape[0]}, expected {expected_shape[0]}") if np.isnan(array).any(): raise ValueError("Matrix values cannot contain NaN") -class BindingConstraintProperties(BaseModel): - # todo: add the `name` attribute because it should also be updated - # It would lead to an API change as update_binding_constraint currently does not have it +class BindingConstraintProperties(BaseModel, extra=Extra.forbid): enabled: bool = True time_step: BindingConstraintFrequency operator: BindingConstraintOperator - coeffs: Dict[str, List[float]] - values: Optional[Union[MatrixType, str]] = Field(None, description="2nd member matrix") - filter_year_by_year: Optional[str] = None - filter_synthesis: Optional[str] = None - comments: Optional[str] = None + filter_year_by_year: t.Optional[str] = None + filter_synthesis: t.Optional[str] = None + comments: t.Optional[str] = None -class AbstractBindingConstraintCommand(BindingConstraintProperties, ICommand, metaclass=ABCMeta): +class BindingConstraintProperties870(BindingConstraintProperties): + group: t.Optional[str] = None + + +class BindingConstraintMatrices(BaseModel, extra=Extra.forbid): + """ + Class used to store the matrices of a binding constraint. + """ + + values: t.Optional[t.Union[MatrixType, str]] = Field( + None, + description="2nd member matrix for studies before v8.7", + ) + less_term_matrix: t.Optional[t.Union[MatrixType, str]] = Field( + None, + description="less term matrix for v8.7+ studies", + ) + greater_term_matrix: t.Optional[t.Union[MatrixType, str]] = Field( + None, + description="greater term matrix for v8.7+ studies", + ) + equal_term_matrix: t.Optional[t.Union[MatrixType, str]] = Field( + None, + description="equal term matrix for v8.7+ studies", + ) + + @root_validator(pre=True) + def check_matrices( + cls, values: t.Dict[str, t.Optional[t.Union[MatrixType, str]]] + ) -> t.Dict[str, t.Optional[t.Union[MatrixType, str]]]: + values_matrix = values.get("values") or None + less_term_matrix = values.get("less_term_matrix") or None + greater_term_matrix = values.get("greater_term_matrix") or None + equal_term_matrix = values.get("equal_term_matrix") or None + if values_matrix and (less_term_matrix or greater_term_matrix or equal_term_matrix): + raise ValueError( + "You cannot fill 'values' (matrix before v8.7) and a matrix term:" + " 'less_term_matrix', 'greater_term_matrix' or 'equal_term_matrix' (matrices since v8.7)" + ) + return values + + +class AbstractBindingConstraintCommand( + BindingConstraintProperties870, BindingConstraintMatrices, ICommand, metaclass=ABCMeta +): """ Abstract class for binding constraint commands. """ + coeffs: t.Dict[str, t.List[float]] + def to_dto(self) -> CommandDTO: args = { "enabled": self.enabled, @@ -91,61 +141,93 @@ def to_dto(self) -> CommandDTO: "filter_year_by_year": self.filter_year_by_year, "filter_synthesis": self.filter_synthesis, } - if self.values is not None: - args["values"] = strip_matrix_protocol(self.values) - return CommandDTO( - action=self.command_name.value, - args=args, - ) - def get_inner_matrices(self) -> List[str]: - if self.values is not None: - if not isinstance(self.values, str): # pragma: no cover - raise TypeError(repr(self.values)) - return [strip_matrix_protocol(self.values)] - return [] + # The `group` attribute is only available for studies since v8.7 + if self.group: + args["group"] = self.group + matrix_service = self.command_context.matrix_service + for matrix_name in ["values", "less_term_matrix", "greater_term_matrix", "equal_term_matrix"]: + matrix_attr = getattr(self, matrix_name, None) + if matrix_attr is not None: + args[matrix_name] = matrix_service.get_matrix_id(matrix_attr) -class CreateBindingConstraint(AbstractBindingConstraintCommand): - """ - Command used to create a binding constraint. - """ - - command_name = CommandName.CREATE_BINDING_CONSTRAINT - version: int = 1 + return CommandDTO(action=self.command_name.value, args=args, version=self.version) - # Properties of the `CREATE_BINDING_CONSTRAINT` command: - name: str + def get_inner_matrices(self) -> t.List[str]: + matrix_service = self.command_context.matrix_service + return [ + matrix_service.get_matrix_id(matrix) + for matrix in [ + self.values, + self.less_term_matrix, + self.greater_term_matrix, + self.equal_term_matrix, + ] + if matrix is not None + ] - @validator("values", always=True) - def validate_series( - cls, - v: Optional[Union[MatrixType, str]], - values: Dict[str, Any], - ) -> Optional[Union[MatrixType, str]]: + def get_corresponding_matrices( + self, v: t.Optional[t.Union[MatrixType, str]], version: int, create: bool + ) -> t.Optional[str]: constants: GeneratorMatrixConstants - constants = values["command_context"].generator_matrix_constants - time_step = values["time_step"] + constants = self.command_context.generator_matrix_constants + time_step = self.time_step + if v is None: - # Use an already-registered default matrix + if not create: + # The matrix is not updated + return None + # Use already-registered default matrix methods = { - BindingConstraintFrequency.HOURLY: constants.get_binding_constraint_hourly, - BindingConstraintFrequency.DAILY: constants.get_binding_constraint_daily, - BindingConstraintFrequency.WEEKLY: constants.get_binding_constraint_weekly, + "before_v87": { + BindingConstraintFrequency.HOURLY: constants.get_binding_constraint_hourly_86, + BindingConstraintFrequency.DAILY: constants.get_binding_constraint_daily_weekly_86, + BindingConstraintFrequency.WEEKLY: constants.get_binding_constraint_daily_weekly_86, + }, + "after_v87": { + BindingConstraintFrequency.HOURLY: constants.get_binding_constraint_hourly_87, + BindingConstraintFrequency.DAILY: constants.get_binding_constraint_daily_weekly_87, + BindingConstraintFrequency.WEEKLY: constants.get_binding_constraint_daily_weekly_87, + }, } - method = methods[time_step] - return method() + return methods["before_v87"][time_step]() if version < 870 else methods["after_v87"][time_step]() if isinstance(v, str): # Check the matrix link - return validate_matrix(v, values) + return validate_matrix(v, {"command_context": self.command_context}) if isinstance(v, list): - check_matrix_values(time_step, v) - return validate_matrix(v, values) + check_matrix_values(time_step, v, version) + return validate_matrix(v, {"command_context": self.command_context}) # Invalid datatype # pragma: no cover raise TypeError(repr(v)) - def _apply_config(self, study_data_config: FileStudyTreeConfig) -> Tuple[CommandOutput, Dict[str, Any]]: + def validates_and_fills_matrices( + self, *, specific_matrices: t.Optional[t.List[str]], version: int, create: bool + ) -> None: + if version < 870: + self.values = self.get_corresponding_matrices(self.values, version, create) + elif specific_matrices: + for matrix in specific_matrices: + setattr(self, matrix, self.get_corresponding_matrices(getattr(self, matrix), version, create)) + else: + self.less_term_matrix = self.get_corresponding_matrices(self.less_term_matrix, version, create) + self.greater_term_matrix = self.get_corresponding_matrices(self.greater_term_matrix, version, create) + self.equal_term_matrix = self.get_corresponding_matrices(self.equal_term_matrix, version, create) + + +class CreateBindingConstraint(AbstractBindingConstraintCommand): + """ + Command used to create a binding constraint. + """ + + command_name = CommandName.CREATE_BINDING_CONSTRAINT + version: int = 1 + + # Properties of the `CREATE_BINDING_CONSTRAINT` command: + name: str + + def _apply_config(self, study_data_config: FileStudyTreeConfig) -> t.Tuple[CommandOutput, t.Dict[str, t.Any]]: bd_id = transform_name_to_id(self.name) parse_bindings_coeffs_and_save_into_config(bd_id, study_data_config, self.coeffs) return CommandOutput(status=True), {} @@ -154,6 +236,8 @@ def _apply(self, study_data: FileStudy) -> CommandOutput: binding_constraints = study_data.tree.get(["input", "bindingconstraints", "bindingconstraints"]) new_key = len(binding_constraints) bd_id = transform_name_to_id(self.name) + self.validates_and_fills_matrices(specific_matrices=None, version=study_data.config.version, create=True) + return apply_binding_constraint( study_data, binding_constraints, @@ -166,8 +250,12 @@ def _apply(self, study_data: FileStudy) -> CommandOutput: self.operator, self.coeffs, self.values, + self.less_term_matrix, + self.greater_term_matrix, + self.equal_term_matrix, self.filter_year_by_year, self.filter_synthesis, + self.group, ) def to_dto(self) -> CommandDTO: @@ -192,24 +280,38 @@ def match(self, other: ICommand, equal: bool = False) -> bool: and self.coeffs == other.coeffs and self.values == other.values and self.comments == other.comments + and self.less_term_matrix == other.less_term_matrix + and self.greater_term_matrix == other.greater_term_matrix + and self.equal_term_matrix == other.equal_term_matrix + and self.group == other.group + and self.filter_synthesis == other.filter_synthesis + and self.filter_year_by_year == other.filter_year_by_year ) - def _create_diff(self, other: "ICommand") -> List["ICommand"]: - other = cast(CreateBindingConstraint, other) + def _create_diff(self, other: "ICommand") -> t.List["ICommand"]: from antarest.study.storage.variantstudy.model.command.update_binding_constraint import UpdateBindingConstraint + other = t.cast(CreateBindingConstraint, other) bd_id = transform_name_to_id(self.name) - return [ - UpdateBindingConstraint( - id=bd_id, - enabled=other.enabled, - time_step=other.time_step, - operator=other.operator, - coeffs=other.coeffs, - values=strip_matrix_protocol(other.values) if self.values != other.values else None, - filter_year_by_year=other.filter_year_by_year, - filter_synthesis=other.filter_synthesis, - comments=other.comments, - command_context=other.command_context, - ) - ] + + args = { + "id": bd_id, + "enabled": other.enabled, + "time_step": other.time_step, + "operator": other.operator, + "coeffs": other.coeffs, + "filter_year_by_year": other.filter_year_by_year, + "filter_synthesis": other.filter_synthesis, + "comments": other.comments, + "command_context": other.command_context, + "group": other.group, + } + + matrix_service = self.command_context.matrix_service + for matrix_name in ["values", "less_term_matrix", "equal_term_matrix", "greater_term_matrix"]: + self_matrix = getattr(self, matrix_name) + other_matrix = getattr(other, matrix_name) + if self_matrix != other_matrix: + args[matrix_name] = matrix_service.get_matrix_id(other_matrix) + + return [UpdateBindingConstraint(**args)] diff --git a/antarest/study/storage/variantstudy/model/command/remove_area.py b/antarest/study/storage/variantstudy/model/command/remove_area.py index a7914c627e..a93c3bcd84 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_area.py +++ b/antarest/study/storage/variantstudy/model/command/remove_area.py @@ -38,11 +38,11 @@ def _remove_area_from_links_in_config(self, study_data_config: FileStudyTreeConf del study_data_config.areas[area_name].links[link] def _remove_area_from_sets_in_config(self, study_data_config: FileStudyTreeConfig) -> None: - for id, set in study_data_config.sets.items(): - if set.areas and self.id in set.areas: + for id_, set_ in study_data_config.sets.items(): + if set_.areas and self.id in set_.areas: with contextlib.suppress(ValueError): - set.areas.remove(self.id) - study_data_config.sets[id] = set + set_.areas.remove(self.id) + study_data_config.sets[id_] = set_ def _apply_config(self, study_data_config: FileStudyTreeConfig) -> Tuple[CommandOutput, Dict[str, Any]]: del study_data_config.areas[self.id] @@ -78,15 +78,50 @@ def _remove_area_from_links(self, study_data: FileStudy) -> None: ) def _remove_area_from_binding_constraints(self, study_data: FileStudy) -> None: - binding_constraints = study_data.tree.get(["input", "bindingconstraints", "bindingconstraints"]) + """ + Remove the binding constraints that are related to the area. - id_to_remove = {bc_id for bc_id, bc in binding_constraints.items() for key in bc if self.id in key} + Notes: + A binding constraint has properties, a list of terms (which form a linear equation) and + a right-hand side (which is the matrix of the binding constraint). + The terms are of the form `area1%area2` or `area.cluster` where `area` is the ID of the area + and `cluster` is the ID of the cluster. - for bc_id in id_to_remove: - study_data.tree.delete(["input", "bindingconstraints", binding_constraints[bc_id]["id"]]) - del binding_constraints[bc_id] + When an area is removed, it has an impact on the terms of the binding constraints. + At first, we could decide to remove the terms that are related to the area. + However, this would lead to a linear equation that is not valid anymore. - study_data.tree.save(binding_constraints, ["input", "bindingconstraints", "bindingconstraints"]) + Instead, we decide to remove the binding constraints that are related to the area. + """ + # noinspection SpellCheckingInspection + url = ["input", "bindingconstraints", "bindingconstraints"] + binding_constraints = study_data.tree.get(url) + + # Collect the binding constraints that are related to the area to remove + # by searching the terms that contain the ID of the area. + bc_to_remove = {} + for bc_index, bc in list(binding_constraints.items()): + for key in bc: + # Term IDs are in the form `area1%area2` or `area.cluster` + if "%" in key: + related_areas = key.split("%") + elif "." in key: + related_areas = key.split(".")[:-1] + else: + # This key belongs to the set of properties, it isn't a term ID, so we skip it + continue + if self.id.lower() in related_areas: + bc_to_remove[bc_index] = binding_constraints.pop(bc_index) + break + + matrix_suffixes = ["_lt", "_gt", "_eq"] if study_data.config.version >= 870 else [""] + + for bc_index, bc in bc_to_remove.items(): + for suffix in matrix_suffixes: + # noinspection SpellCheckingInspection + study_data.tree.delete(["input", "bindingconstraints", f"{bc['id']}{suffix}"]) + + study_data.tree.save(binding_constraints, url) def _remove_area_from_hydro_allocation(self, study_data: FileStudy) -> None: """ diff --git a/antarest/study/storage/variantstudy/model/command/remove_binding_constraint.py b/antarest/study/storage/variantstudy/model/command/remove_binding_constraint.py index 961e878443..2bd52825c6 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_binding_constraint.py +++ b/antarest/study/storage/variantstudy/model/command/remove_binding_constraint.py @@ -43,7 +43,11 @@ def _apply(self, study_data: FileStudy) -> CommandOutput: new_binding_constraints, ["input", "bindingconstraints", "bindingconstraints"], ) - study_data.tree.delete(["input", "bindingconstraints", self.id]) + if study_data.config.version < 870: + study_data.tree.delete(["input", "bindingconstraints", self.id]) + else: + for term in ["lt", "gt", "eq"]: + study_data.tree.delete(["input", "bindingconstraints", f"{self.id}_{term}"]) output, _ = self._apply_config(study_data.config) return output diff --git a/antarest/study/storage/variantstudy/model/command/update_binding_constraint.py b/antarest/study/storage/variantstudy/model/command/update_binding_constraint.py index ea52dca4c4..70ad16702f 100644 --- a/antarest/study/storage/variantstudy/model/command/update_binding_constraint.py +++ b/antarest/study/storage/variantstudy/model/command/update_binding_constraint.py @@ -1,18 +1,12 @@ -from typing import Any, Dict, List, Optional, Tuple, Union - -from pydantic import validator +from typing import Any, Dict, List, Optional, Tuple from antarest.core.model import JSON from antarest.matrixstore.model import MatrixData from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy -from antarest.study.storage.variantstudy.business.utils import validate_matrix from antarest.study.storage.variantstudy.business.utils_binding_constraint import apply_binding_constraint from antarest.study.storage.variantstudy.model.command.common import CommandName, CommandOutput -from antarest.study.storage.variantstudy.model.command.create_binding_constraint import ( - AbstractBindingConstraintCommand, - check_matrix_values, -) +from antarest.study.storage.variantstudy.model.command.create_binding_constraint import AbstractBindingConstraintCommand from antarest.study.storage.variantstudy.model.command.icommand import MATCH_SIGNATURE_SEPARATOR, ICommand from antarest.study.storage.variantstudy.model.model import CommandDTO @@ -38,26 +32,6 @@ class UpdateBindingConstraint(AbstractBindingConstraintCommand): # Properties of the `UPDATE_BINDING_CONSTRAINT` command: id: str - @validator("values", always=True) - def validate_series( - cls, - v: Optional[Union[MatrixType, str]], - values: Dict[str, Any], - ) -> Optional[Union[MatrixType, str]]: - time_step = values["time_step"] - if v is None: - # The matrix is not updated - return None - if isinstance(v, str): - # Check the matrix link - return validate_matrix(v, values) - if isinstance(v, list): - check_matrix_values(time_step, v) - return validate_matrix(v, values) - # Invalid datatype - # pragma: no cover - raise TypeError(repr(v)) - def _apply_config(self, study_data: FileStudyTreeConfig) -> Tuple[CommandOutput, Dict[str, Any]]: return CommandOutput(status=True), {} @@ -77,6 +51,11 @@ def _apply(self, study_data: FileStudy) -> CommandOutput: message="Failed to retrieve existing binding constraint", ) + # fmt: off + updated_matrices = [term for term in ["less_term_matrix", "equal_term_matrix", "greater_term_matrix"] if self.__getattribute__(term)] + self.validates_and_fills_matrices(specific_matrices=updated_matrices or None, version=study_data.config.version, create=False) + # fmt: on + return apply_binding_constraint( study_data, binding_constraints, @@ -89,8 +68,12 @@ def _apply(self, study_data: FileStudy) -> CommandOutput: self.operator, self.coeffs, self.values, + self.less_term_matrix, + self.greater_term_matrix, + self.equal_term_matrix, self.filter_year_by_year, self.filter_synthesis, + self.group, ) def to_dto(self) -> CommandDTO: @@ -114,7 +97,13 @@ def match(self, other: ICommand, equal: bool = False) -> bool: and self.operator == other.operator and self.coeffs == other.coeffs and self.values == other.values + and self.less_term_matrix == other.less_term_matrix + and self.greater_term_matrix == other.greater_term_matrix + and self.equal_term_matrix == other.equal_term_matrix and self.comments == other.comments + and self.group == other.group + and self.filter_synthesis == other.filter_synthesis + and self.filter_year_by_year == other.filter_year_by_year ) def _create_diff(self, other: "ICommand") -> List["ICommand"]: diff --git a/antarest/study/storage/variantstudy/model/dbmodel.py b/antarest/study/storage/variantstudy/model/dbmodel.py index 08635253e7..f6874a5495 100644 --- a/antarest/study/storage/variantstudy/model/dbmodel.py +++ b/antarest/study/storage/variantstudy/model/dbmodel.py @@ -55,7 +55,7 @@ class CommandBlock(Base): # type: ignore args: str = Column(String()) def to_dto(self) -> CommandDTO: - return CommandDTO(id=self.id, action=self.command, args=json.loads(self.args)) + return CommandDTO(id=self.id, action=self.command, args=json.loads(self.args), version=self.version) def __str__(self) -> str: return ( diff --git a/antarest/study/storage/variantstudy/variant_study_service.py b/antarest/study/storage/variantstudy/variant_study_service.py index 582e251013..f4b342ad7b 100644 --- a/antarest/study/storage/variantstudy/variant_study_service.py +++ b/antarest/study/storage/variantstudy/variant_study_service.py @@ -176,9 +176,7 @@ def append_commands( # noinspection PyArgumentList new_commands = [ CommandBlock( - command=command.action, - args=json.dumps(command.args), - index=(first_index + i), + command=command.action, args=json.dumps(command.args), index=(first_index + i), version=command.version ) for i, command in enumerate(validated_commands) ] @@ -213,11 +211,7 @@ def replace_commands( validated_commands = transform_command_to_dto(command_objs, commands) # noinspection PyArgumentList study.commands = [ - CommandBlock( - command=command.action, - args=json.dumps(command.args), - index=i, - ) + CommandBlock(command=command.action, args=json.dumps(command.args), index=i, version=command.version) for i, command in enumerate(validated_commands) ] self.invalidate_cache(study, invalidate_self_snapshot=True) diff --git a/antarest/study/web/study_data_blueprint.py b/antarest/study/web/study_data_blueprint.py index bc667f45d5..34067cefcb 100644 --- a/antarest/study/web/study_data_blueprint.py +++ b/antarest/study/web/study_data_blueprint.py @@ -42,7 +42,7 @@ ThermalManager, ) from antarest.study.business.binding_constraint_management import ( - BindingConstraintPropertiesWithName, + BindingConstraintCreation, ConstraintTermDTO, UpdateBindingConstProps, ) @@ -944,7 +944,7 @@ def update_binding_constraint( response_model=None, ) def create_binding_constraint( - uuid: str, data: BindingConstraintPropertiesWithName, current_user: JWTUser = Depends(auth.get_current_user) + uuid: str, data: BindingConstraintCreation, current_user: JWTUser = Depends(auth.get_current_user) ) -> None: logger.info( f"Creating a new binding constraint for study {uuid}", @@ -954,6 +954,23 @@ def create_binding_constraint( study = study_service.check_study_access(uuid, StudyPermissionType.READ, params) return study_service.binding_constraint_manager.create_binding_constraint(study, data) + @bp.delete( + "/studies/{uuid}/bindingconstraints/{binding_constraint_id}", + tags=[APITag.study_data], + summary="Delete a binding constraint", + response_model=None, + ) + def delete_binding_constraint( + uuid: str, binding_constraint_id: str, current_user: JWTUser = Depends(auth.get_current_user) + ) -> None: + logger.info( + f"Deleting the binding constraint {binding_constraint_id} for study {uuid}", + extra={"user": current_user.id}, + ) + params = RequestParameters(user=current_user) + study = study_service.check_study_access(uuid, StudyPermissionType.WRITE, params) + return study_service.binding_constraint_manager.remove_binding_constraint(study, binding_constraint_id) + @bp.post( "/studies/{uuid}/bindingconstraints/{binding_constraint_id}/term", tags=[APITag.study_data], @@ -1457,7 +1474,7 @@ def create_renewable_cluster( - `cluster_data`: the properties used for creation: "name" and "group". - Returns: The properties of the newly-created renewable clusters. + Returns: The properties of the newly-created renewable cluster. """ logger.info( f"Creating renewable cluster for study '{uuid}' and area '{area_id}'", @@ -1631,7 +1648,7 @@ def create_thermal_cluster( - `cluster_data`: the properties used for creation: "name" and "group". - Returns: The properties of the newly-created thermal clusters. + Returns: The properties of the newly-created thermal cluster. """ logger.info( f"Creating thermal cluster for study '{uuid}' and area '{area_id}'", diff --git a/resources/empty_study_870.zip b/resources/empty_study_870.zip new file mode 100644 index 0000000000000000000000000000000000000000..78381529946171a8e3ac0b1be0c8c301d0b8aeaa GIT binary patch literal 64653 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 ubCjt^V? literal 0 HcmV?d00001 diff --git a/tests/integration/studies_blueprint/assets/test_synthesis/raw_study.synthesis.json b/tests/integration/studies_blueprint/assets/test_synthesis/raw_study.synthesis.json index 1bf6d17f97..04ce3ddbec 100644 --- a/tests/integration/studies_blueprint/assets/test_synthesis/raw_study.synthesis.json +++ b/tests/integration/studies_blueprint/assets/test_synthesis/raw_study.synthesis.json @@ -50,7 +50,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "02_wind_on", @@ -86,7 +89,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "03_wind_off", @@ -122,7 +128,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "04_res", @@ -158,7 +167,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "05_nuclear", @@ -194,7 +206,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "06_coal", @@ -230,7 +245,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "07_gas", @@ -266,7 +284,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "08_non-res", @@ -302,7 +323,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "09_hydro_pump", @@ -338,7 +362,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 } ], "renewables": [], @@ -398,7 +425,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "02_wind_on", @@ -434,7 +464,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "03_wind_off", @@ -470,7 +503,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "04_res", @@ -506,7 +542,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "05_nuclear", @@ -542,7 +581,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "06_coal", @@ -578,7 +620,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "07_gas", @@ -614,7 +659,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "08_non-res", @@ -650,7 +698,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "09_hydro_pump", @@ -686,7 +737,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 } ], "renewables": [], @@ -746,7 +800,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "02_wind_on", @@ -782,7 +839,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "03_wind_off", @@ -818,7 +878,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "04_res", @@ -854,7 +917,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "05_nuclear", @@ -890,7 +956,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "06_coal", @@ -926,7 +995,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "07_gas", @@ -962,7 +1034,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "08_non-res", @@ -998,7 +1073,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "09_hydro_pump", @@ -1034,7 +1112,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 } ], "renewables": [], @@ -1082,7 +1163,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "02_wind_on", @@ -1118,7 +1202,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "03_wind_off", @@ -1154,7 +1241,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "04_res", @@ -1190,7 +1280,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "05_nuclear", @@ -1226,7 +1319,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "06_coal", @@ -1262,7 +1358,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "07_gas", @@ -1298,7 +1397,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "08_non-res", @@ -1334,7 +1436,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "09_hydro_pump", @@ -1370,7 +1475,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 } ], "renewables": [], diff --git a/tests/integration/studies_blueprint/assets/test_synthesis/variant_study.synthesis.json b/tests/integration/studies_blueprint/assets/test_synthesis/variant_study.synthesis.json index 4ef1428925..a77fa18a58 100644 --- a/tests/integration/studies_blueprint/assets/test_synthesis/variant_study.synthesis.json +++ b/tests/integration/studies_blueprint/assets/test_synthesis/variant_study.synthesis.json @@ -50,7 +50,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "02_wind_on", @@ -86,7 +89,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "03_wind_off", @@ -122,7 +128,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "04_res", @@ -158,7 +167,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "05_nuclear", @@ -194,7 +206,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "06_coal", @@ -230,7 +245,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "07_gas", @@ -266,7 +284,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "08_non-res", @@ -302,7 +323,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "09_hydro_pump", @@ -338,7 +362,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 } ], "renewables": [], @@ -398,7 +425,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "02_wind_on", @@ -434,7 +464,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "03_wind_off", @@ -470,7 +503,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "04_res", @@ -506,7 +542,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "05_nuclear", @@ -542,7 +581,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "06_coal", @@ -578,7 +620,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "07_gas", @@ -614,7 +659,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "08_non-res", @@ -650,7 +698,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "09_hydro_pump", @@ -686,7 +737,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 } ], "renewables": [], @@ -746,7 +800,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "02_wind_on", @@ -782,7 +839,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "03_wind_off", @@ -818,7 +878,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "04_res", @@ -854,7 +917,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "05_nuclear", @@ -890,7 +956,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "06_coal", @@ -926,7 +995,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "07_gas", @@ -962,7 +1034,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "08_non-res", @@ -998,7 +1073,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "09_hydro_pump", @@ -1034,7 +1112,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 } ], "renewables": [], @@ -1082,7 +1163,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "02_wind_on", @@ -1118,7 +1202,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "03_wind_off", @@ -1154,7 +1241,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "04_res", @@ -1190,7 +1280,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "05_nuclear", @@ -1226,7 +1319,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "06_coal", @@ -1262,7 +1358,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "07_gas", @@ -1298,7 +1397,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "08_non-res", @@ -1334,7 +1436,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 }, { "id": "09_hydro_pump", @@ -1370,7 +1475,10 @@ "op2": 0.0, "op3": 0.0, "op4": 0.0, - "op5": 0.0 + "op5": 0.0, + "costgeneration": "SetManually", + "efficiency": 100.0, + "variableomcost": 0.0 } ], "renewables": [], diff --git a/tests/integration/study_data_blueprint/test_binding_constraints.py b/tests/integration/study_data_blueprint/test_binding_constraints.py index 93b5237f7f..1597eb3c7d 100644 --- a/tests/integration/study_data_blueprint/test_binding_constraints.py +++ b/tests/integration/study_data_blueprint/test_binding_constraints.py @@ -1,3 +1,4 @@ +import numpy as np import pytest from starlette.testclient import TestClient @@ -67,14 +68,19 @@ class TestBindingConstraints: Test the end points related to binding constraints. """ - def test_lifecycle__nominal(self, client: TestClient, user_access_token: str) -> None: + @pytest.mark.parametrize("study_type", ["raw", "variant"]) + def test_lifecycle__nominal(self, client: TestClient, user_access_token: str, study_type: str) -> None: user_headers = {"Authorization": f"Bearer {user_access_token}"} + # ============================= + # STUDY PREPARATION + # ============================= + # Create a Study res = client.post( "/v1/studies", headers=user_headers, - params={"name": "foo"}, + params={"name": "foo", "version": "860"}, ) assert res.status_code == 201, res.json() study_id = res.json() @@ -137,81 +143,123 @@ def test_lifecycle__nominal(self, client: TestClient, user_access_token: str) -> assert clusters_list[0]["name"] == "Cluster 1" assert clusters_list[0]["group"] == "Nuclear" - # Create Binding Constraints + if study_type == "variant": + # Create Variant + res = client.post( + f"/v1/studies/{study_id}/variants", + headers=user_headers, + params={"name": "Variant 1"}, + ) + assert res.status_code in {200, 201}, res.json() + study_id = res.json() + + # ============================= + # CREATION + # ============================= + + # Create Binding constraints res = client.post( - f"/v1/studies/{study_id}/bindingconstraints", - json={ - "name": "Binding Constraint 1", - "enabled": True, - "time_step": "hourly", - "operator": "less", - "coeffs": {}, - "comments": "", - }, + f"/v1/studies/{study_id}/commands", + json=[ + { + "action": "create_binding_constraint", + "args": { + "name": "binding_constraint_1", + "enabled": True, + "time_step": "hourly", + "operator": "less", + "coeffs": {}, + "comments": "", + }, + } + ], headers=user_headers, ) - assert res.status_code == 200, res.json() + assert res.status_code in {200, 201}, res.json() res = client.post( - f"/v1/studies/{study_id}/bindingconstraints", - json={ - "name": "Binding Constraint 2", - "enabled": True, - "time_step": "hourly", - "operator": "less", - "coeffs": {}, - "comments": "", - }, + f"/v1/studies/{study_id}/commands", + json=[ + { + "action": "create_binding_constraint", + "args": { + "name": "binding_constraint_2", + "enabled": True, + "time_step": "hourly", + "operator": "less", + "coeffs": {}, + "comments": "", + }, + } + ], headers=user_headers, ) - assert res.status_code == 200, res.json() + assert res.status_code in {200, 201}, res.json() - # Asserts that creating 2 binding constraints with the same name raises an Exception + # Creates a binding constraint with the new API res = client.post( f"/v1/studies/{study_id}/bindingconstraints", json={ - "name": "Binding Constraint 1", + "name": "binding_constraint_3", "enabled": True, "time_step": "hourly", "operator": "less", "coeffs": {}, - "comments": "", + "comments": "New API", }, headers=user_headers, ) - assert res.status_code == 409, res.json() + assert res.status_code in {200, 201}, res.json() - # Get Binding Constraint list to check created binding constraints + # Get Binding Constraint list res = client.get(f"/v1/studies/{study_id}/bindingconstraints", headers=user_headers) binding_constraints_list = res.json() + assert res.status_code == 200, res.json() + assert len(binding_constraints_list) == 3 + # Group section should not exist as the study version is prior to 8.7 + assert "group" not in binding_constraints_list[0] + # check whole structure expected = [ { - "id": "binding constraint 1", - "name": "Binding Constraint 1", + "comments": "", + "constraints": None, "enabled": True, - "time_step": "hourly", - "operator": "less", - "constraints": None, # terms - "values": None, - "filter_year_by_year": "", "filter_synthesis": "", - "comments": "", + "filter_year_by_year": "", + "id": "binding_constraint_1", + "name": "binding_constraint_1", + "operator": "less", + "time_step": "hourly", }, { - "id": "binding constraint 2", - "name": "Binding Constraint 2", + "comments": "", + "constraints": None, "enabled": True, - "time_step": "hourly", - "operator": "less", - "constraints": None, # terms - "values": None, + "filter_synthesis": "", "filter_year_by_year": "", + "id": "binding_constraint_2", + "name": "binding_constraint_2", + "operator": "less", + "time_step": "hourly", + }, + { + "comments": "New API", + "constraints": None, + "enabled": True, "filter_synthesis": "", - "comments": "", + "filter_year_by_year": "", + "id": "binding_constraint_3", + "name": "binding_constraint_3", + "operator": "less", + "time_step": "hourly", }, ] assert binding_constraints_list == expected + # ============================= + # CONSTRAINT TERM MANAGEMENT + # ============================= + bc_id = binding_constraints_list[0]["id"] # Add binding constraint link term @@ -235,7 +283,8 @@ def test_lifecycle__nominal(self, client: TestClient, user_access_token: str) -> "data": { "area": area1_id, "cluster": cluster_id, - }, # NOTE: cluster_id in term data can be uppercase, but it must be lowercase in the returned ini configuration file + }, + # NOTE: cluster_id in term data can be uppercase, but it must be lowercase in the returned ini configuration file }, headers=user_headers, ) @@ -331,68 +380,21 @@ def test_lifecycle__nominal(self, client: TestClient, user_access_token: str) -> "exception": "RequestValidationError", } - # Create Variant - res = client.post( - f"/v1/studies/{study_id}/variants", - headers=user_headers, - params={"name": "Variant 1"}, - ) - assert res.status_code == 200, res.json() - variant_id = res.json() - - # Create Binding constraints - res = client.post( - f"/v1/studies/{variant_id}/commands", - json=[ - { - "action": "create_binding_constraint", - "args": { - "name": "binding_constraint_3", - "enabled": True, - "time_step": "hourly", - "operator": "less", - "coeffs": {}, - "comments": "", - }, - } - ], - headers=user_headers, - ) - assert res.status_code == 200, res.json() - - res = client.post( - f"/v1/studies/{variant_id}/commands", - json=[ - { - "action": "create_binding_constraint", - "args": { - "name": "binding_constraint_4", - "enabled": True, - "time_step": "hourly", - "operator": "less", - "coeffs": {}, - "comments": "", - }, - } - ], + # Remove Constraint term + res = client.delete( + f"/v1/studies/{study_id}/bindingconstraints/{bc_id}/term/{area1_id}%{area2_id}", headers=user_headers, ) assert res.status_code == 200, res.json() - # Get Binding Constraint list - res = client.get(f"/v1/studies/{variant_id}/bindingconstraints", headers=user_headers) - binding_constraints_list = res.json() - assert res.status_code == 200, res.json() - assert len(binding_constraints_list) == 4 - assert binding_constraints_list[2]["id"] == "binding_constraint_3" - assert binding_constraints_list[3]["id"] == "binding_constraint_4" - - bc_id = binding_constraints_list[2]["id"] + # ============================= + # GENERAL EDITION + # ============================= # Update element of Binding constraint new_comment = "We made it !" res = client.put( - f"v1/studies/{variant_id}/bindingconstraints/{bc_id}", + f"v1/studies/{study_id}/bindingconstraints/{bc_id}", json={"key": "comments", "value": new_comment}, headers=user_headers, ) @@ -400,7 +402,7 @@ def test_lifecycle__nominal(self, client: TestClient, user_access_token: str) -> # Get Binding Constraint res = client.get( - f"/v1/studies/{variant_id}/bindingconstraints/{bc_id}", + f"/v1/studies/{study_id}/bindingconstraints/{bc_id}", headers=user_headers, ) binding_constraint = res.json() @@ -408,84 +410,62 @@ def test_lifecycle__nominal(self, client: TestClient, user_access_token: str) -> assert res.status_code == 200, res.json() assert comments == new_comment - # Add Binding Constraint term - - res = client.post( - f"/v1/studies/{variant_id}/bindingconstraints/{bc_id}/term", - json={ - "weight": 1, - "offset": 2, - "data": {"area1": area1_id, "area2": area2_id}, - }, - headers=user_headers, - ) - assert res.status_code == 200, res.json() - - # Get Binding Constraint - res = client.get( - f"/v1/studies/{variant_id}/bindingconstraints/{bc_id}", - headers=user_headers, - ) - binding_constraint = res.json() - constraints = binding_constraint["constraints"] - assert res.status_code == 200, res.json() - assert binding_constraint["id"] == bc_id - assert len(constraints) == 1 - assert constraints[0]["id"] == f"{area1_id}%{area2_id}" - assert constraints[0]["weight"] == 1 - assert constraints[0]["offset"] == 2 - assert constraints[0]["data"]["area1"] == area1_id - assert constraints[0]["data"]["area2"] == area2_id - - # Update Constraint term + # The user change the time_step to daily instead of hourly. + # We must check that the matrix is a daily/weekly matrix. res = client.put( - f"/v1/studies/{variant_id}/bindingconstraints/{bc_id}/term", - json={ - "id": f"{area1_id}%{area2_id}", - "weight": 3, - }, + f"/v1/studies/{study_id}/bindingconstraints/{bc_id}", + json={"key": "time_step", "value": "daily"}, headers=user_headers, ) assert res.status_code == 200, res.json() - # Get Binding Constraint + # Check the last command is a change time_step + if study_type == "variant": + res = client.get(f"/v1/studies/{study_id}/commands", headers=user_headers) + commands = res.json() + args = commands[-1]["args"] + assert args["time_step"] == "daily" + assert args["values"] is not None, "We should have a matrix ID (sha256)" + + # Check that the matrix is a daily/weekly matrix res = client.get( - f"/v1/studies/{variant_id}/bindingconstraints/{bc_id}", + f"/v1/studies/{study_id}/raw", + params={"path": f"input/bindingconstraints/{bc_id}", "depth": 1, "formatted": True}, headers=user_headers, ) - binding_constraint = res.json() - constraints = binding_constraint["constraints"] assert res.status_code == 200, res.json() - assert binding_constraint["id"] == bc_id - assert len(constraints) == 1 - assert constraints[0]["id"] == f"{area1_id}%{area2_id}" - assert constraints[0]["weight"] == 3 - assert constraints[0]["offset"] is None - assert constraints[0]["data"]["area1"] == area1_id - assert constraints[0]["data"]["area2"] == area2_id + dataframe = res.json() + assert len(dataframe["index"]) == 366 + assert len(dataframe["columns"]) == 3 # less, equal, greater - # Remove Constraint term - res = client.delete( - f"/v1/studies/{variant_id}/bindingconstraints/{bc_id}/term/{area1_id}%{area2_id}", - headers=user_headers, - ) - assert res.status_code == 200, res.json() + # ============================= + # ERRORS + # ============================= - # Get Binding Constraint - res = client.get( - f"/v1/studies/{variant_id}/bindingconstraints/{bc_id}", + # Assert empty name + res = client.post( + f"/v1/studies/{study_id}/bindingconstraints", + json={ + "name": " ", + "enabled": True, + "time_step": "hourly", + "operator": "less", + "coeffs": {}, + "comments": "New API", + }, headers=user_headers, ) - binding_constraint = res.json() - constraints = binding_constraint["constraints"] - assert res.status_code == 200, res.json() - assert constraints is None + assert res.status_code == 400, res.json() + assert res.json() == { + "description": "Invalid binding constraint name: .", + "exception": "InvalidConstraintName", + } - # Creates a binding constraint with the new API + # Assert invalid special characters res = client.post( - f"/v1/studies/{variant_id}/bindingconstraints", + f"/v1/studies/{study_id}/bindingconstraints", json={ - "name": "binding_constraint_5", + "name": "%%**", "enabled": True, "time_step": "hourly", "operator": "less", @@ -494,93 +474,418 @@ def test_lifecycle__nominal(self, client: TestClient, user_access_token: str) -> }, headers=user_headers, ) - assert res.status_code == 200, res.json() + assert res.status_code == 400, res.json() + assert res.json() == { + "description": "Invalid binding constraint name: %%**.", + "exception": "InvalidConstraintName", + } # Asserts that creating 2 binding constraints with the same name raises an Exception res = client.post( - f"/v1/studies/{variant_id}/bindingconstraints", + f"/v1/studies/{study_id}/bindingconstraints", json={ - "name": "binding_constraint_5", + "name": bc_id, "enabled": True, "time_step": "hourly", "operator": "less", "coeffs": {}, - "comments": "New API", + "comments": "", }, headers=user_headers, ) assert res.status_code == 409, res.json() - assert res.json() == { - "description": "A binding constraint with the same name already exists: binding_constraint_5.", - "exception": "DuplicateConstraintName", - } - # Assert empty name + # Creation with matrices from 2 versions: Should fail res = client.post( - f"/v1/studies/{variant_id}/bindingconstraints", + f"/v1/studies/{study_id}/bindingconstraints", json={ - "name": " ", + "name": "binding_constraint_x", "enabled": True, "time_step": "hourly", "operator": "less", "coeffs": {}, - "comments": "New API", + "comments": "2 types of matrices", + "values": [[]], + "less_term_matrix": [[]], }, headers=user_headers, ) - assert res.status_code == 400, res.json() - assert res.json() == { - "description": "Invalid binding constraint name: .", - "exception": "InvalidConstraintName", - } + assert res.status_code == 422 + description = res.json()["description"] + assert "cannot fill 'values'" in description + assert "'less_term_matrix'" in description + assert "'greater_term_matrix'" in description + assert "'equal_term_matrix'" in description - # Assert invalid special characters + # Creation with wrong matrix according to version: Should fail res = client.post( - f"/v1/studies/{variant_id}/bindingconstraints", + f"/v1/studies/{study_id}/bindingconstraints", json={ - "name": "%%**", + "name": "binding_constraint_x", "enabled": True, "time_step": "hourly", "operator": "less", "coeffs": {}, - "comments": "New API", + "comments": "Incoherent matrix with version", + "less_term_matrix": [[]], }, headers=user_headers, ) - assert res.status_code == 400, res.json() - assert res.json() == { - "description": "Invalid binding constraint name: %%**.", - "exception": "InvalidConstraintName", + assert res.status_code == 422 + description = res.json()["description"] + assert description == "You cannot fill a 'matrix_term' as these values refer to v8.7+ studies" + + # Wrong matrix shape + wrong_matrix = np.ones((352, 3)) + wrong_request_args = { + "name": "binding_constraint_5", + "enabled": True, + "time_step": "daily", + "operator": "less", + "coeffs": {}, + "comments": "Creation with matrix", + "values": wrong_matrix.tolist(), } + res = client.post( + f"/v1/studies/{study_id}/bindingconstraints", + json=wrong_request_args, + headers=user_headers, + ) + assert res.status_code == 500 + exception = res.json()["exception"] + description = res.json()["description"] + assert exception == "ValueError" if study_type == "variant" else "CommandApplicationError" + assert f"Invalid matrix shape {wrong_matrix.shape}, expected (366, 3)" in description - # Asserts that 5 binding constraints have been created - res = client.get(f"/v1/studies/{variant_id}/bindingconstraints", headers=user_headers) - assert res.status_code == 200, res.json() - assert len(res.json()) == 5 + # Delete a fake binding constraint + res = client.delete(f"/v1/studies/{study_id}/bindingconstraints/fake_bc", headers=user_headers) + assert res.status_code == 500 + assert res.json()["exception"] == "CommandApplicationError" + assert res.json()["description"] == "Binding constraint not found" - # The user change the time_step to daily instead of hourly. - # We must check that the matrix is a daily/weekly matrix. + # Add a group before v8.7 + grp_name = "random_grp" res = client.put( - f"/v1/studies/{variant_id}/bindingconstraints/{bc_id}", - json={"key": "time_step", "value": "daily"}, + f"/v1/studies/{study_id}/bindingconstraints/binding_constraint_2", + json={"key": "group", "value": grp_name}, + headers=user_headers, + ) + assert res.status_code == 422 + assert res.json()["exception"] == "InvalidFieldForVersionError" + assert ( + res.json()["description"] + == f"You cannot specify a group as your study version is older than v8.7: {grp_name}" + ) + + # Update with a matrix from v8.7 + res = client.put( + f"/v1/studies/{study_id}/bindingconstraints/binding_constraint_2", + json={"key": "less_term_matrix", "value": [[]]}, headers=user_headers, ) + assert res.status_code == 422 + assert res.json()["exception"] == "InvalidFieldForVersionError" + assert res.json()["description"] == "You cannot fill a 'matrix_term' as these values refer to v8.7+ studies" + + @pytest.mark.parametrize("study_type", ["raw", "variant"]) + def test_for_version_870(self, client: TestClient, admin_access_token: str, study_type: str) -> None: + admin_headers = {"Authorization": f"Bearer {admin_access_token}"} + + # ============================= + # STUDY PREPARATION + # ============================= + + res = client.post( + "/v1/studies", + headers=admin_headers, + params={"name": "foo"}, + ) + assert res.status_code == 201, res.json() + study_id = res.json() + + if study_type == "variant": + # Create Variant + res = client.post( + f"/v1/studies/{study_id}/variants", + headers=admin_headers, + params={"name": "Variant 1"}, + ) + assert res.status_code in {200, 201} + study_id = res.json() + + # ============================= + # CREATION + # ============================= + + # Creation of a bc without group + bc_id_wo_group = "binding_constraint_1" + args = {"enabled": True, "time_step": "hourly", "operator": "less", "coeffs": {}, "comments": "New API"} + res = client.post( + f"/v1/studies/{study_id}/bindingconstraints", + json={"name": bc_id_wo_group, **args}, + headers=admin_headers, + ) + assert res.status_code in {200, 201}, res.json() + + res = client.get(f"/v1/studies/{study_id}/bindingconstraints/{bc_id_wo_group}", headers=admin_headers) + assert res.json()["group"] == "default" + + # Creation of bc with a group + bc_id_w_group = "binding_constraint_2" + res = client.post( + f"/v1/studies/{study_id}/bindingconstraints", + json={"name": bc_id_w_group, "group": "specific_grp", **args}, + headers=admin_headers, + ) + assert res.status_code in {200, 201}, res.json() + + res = client.get(f"/v1/studies/{study_id}/bindingconstraints/{bc_id_w_group}", headers=admin_headers) + assert res.json()["group"] == "specific_grp" + + # Creation of bc with a matrix + bc_id_w_matrix = "binding_constraint_3" + matrix_lt = np.ones((8784, 3)) + matrix_lt_to_list = matrix_lt.tolist() + res = client.post( + f"/v1/studies/{study_id}/bindingconstraints", + json={"name": bc_id_w_matrix, "less_term_matrix": matrix_lt_to_list, **args}, + headers=admin_headers, + ) + assert res.status_code in {200, 201}, res.json() + + if study_type == "variant": + res = client.get(f"/v1/studies/{study_id}/commands", headers=admin_headers) + last_cmd_args = res.json()[-1]["args"] + less_term_matrix = last_cmd_args["less_term_matrix"] + equal_term_matrix = last_cmd_args["equal_term_matrix"] + greater_term_matrix = last_cmd_args["greater_term_matrix"] + assert greater_term_matrix == equal_term_matrix != less_term_matrix + + # Check that raw matrices are created + for term in ["lt", "gt", "eq"]: + res = client.get( + f"/v1/studies/{study_id}/raw", + params={"path": f"input/bindingconstraints/{bc_id_w_matrix}_{term}", "depth": 1, "formatted": True}, + headers=admin_headers, + ) + assert res.status_code == 200 + data = res.json()["data"] + if term == "lt": + assert data == matrix_lt_to_list + else: + assert data == np.zeros((matrix_lt.shape[0], 1)).tolist() + + # ============================= + # UPDATE + # ============================= + + # Add a group + grp_name = "random_grp" + res = client.put( + f"/v1/studies/{study_id}/bindingconstraints/{bc_id_w_matrix}", + json={"key": "group", "value": grp_name}, + headers=admin_headers, + ) assert res.status_code == 200, res.json() - # Check the last command is a change time_step - res = client.get(f"/v1/studies/{variant_id}/commands", headers=user_headers) - commands = res.json() - args = commands[-1]["args"] - assert args["time_step"] == "daily" - assert args["values"] is not None, "We should have a matrix ID (sha256)" + # Asserts the groupe is created + res = client.get(f"/v1/studies/{study_id}/bindingconstraints/{bc_id_w_matrix}", headers=admin_headers) + assert res.json()["group"] == grp_name + + # Update matrix_term + res = client.put( + f"/v1/studies/{study_id}/bindingconstraints/{bc_id_w_matrix}", + json={"key": "greater_term_matrix", "value": matrix_lt_to_list}, + headers=admin_headers, + ) + assert res.status_code == 200, res.json() - # Check that the matrix is a daily/weekly matrix res = client.get( - f"/v1/studies/{variant_id}/raw", - params={"path": f"input/bindingconstraints/{bc_id}", "depth": 1, "formatted": True}, - headers=user_headers, + f"/v1/studies/{study_id}/raw", + params={"path": f"input/bindingconstraints/{bc_id_w_matrix}_gt", "depth": 1, "formatted": True}, + headers=admin_headers, + ) + assert res.status_code == 200 + assert res.json()["data"] == matrix_lt_to_list + + # The user changed the time_step to daily instead of hourly. + # We must check that the matrices have been updated. + res = client.put( + f"/v1/studies/{study_id}/bindingconstraints/{bc_id_w_matrix}", + json={"key": "time_step", "value": "daily"}, + headers=admin_headers, ) assert res.status_code == 200, res.json() - dataframe = res.json() - assert len(dataframe["index"]) == 366 - assert len(dataframe["columns"]) == 3 # less, equal, greater + + if study_type == "variant": + # Check the last command is a change time_step + res = client.get(f"/v1/studies/{study_id}/commands", headers=admin_headers) + commands = res.json() + command_args = commands[-1]["args"] + assert command_args["time_step"] == "daily" + assert ( + command_args["less_term_matrix"] + == command_args["greater_term_matrix"] + == command_args["equal_term_matrix"] + is not None + ) + + # Check that the matrices are daily/weekly matrices + expected_matrix = np.zeros((366, 1)).tolist() + for term_alias in ["lt", "gt", "eq"]: + res = client.get( + f"/v1/studies/{study_id}/raw", + params={ + "path": f"input/bindingconstraints/{bc_id_w_matrix}_{term_alias}", + "depth": 1, + "formatted": True, + }, + headers=admin_headers, + ) + assert res.status_code == 200 + assert res.json()["data"] == expected_matrix + + # ============================= + # DELETE + # ============================= + + # Delete a binding constraint + res = client.delete(f"/v1/studies/{study_id}/bindingconstraints/{bc_id_w_group}", headers=admin_headers) + assert res.status_code == 200, res.json() + + # Asserts that the deletion worked + res = client.get(f"/v1/studies/{study_id}/bindingconstraints", headers=admin_headers) + assert len(res.json()) == 2 + + # ============================= + # ERRORS + # ============================= + + # Creation with wrong matrix according to version + res = client.post( + f"/v1/studies/{study_id}/bindingconstraints", + json={ + "name": "binding_constraint_700", + "enabled": True, + "time_step": "hourly", + "operator": "less", + "coeffs": {}, + "comments": "New API", + "values": [[]], + }, + headers=admin_headers, + ) + assert res.status_code == 422 + assert res.json()["description"] == "You cannot fill 'values' as it refers to the matrix before v8.7" + + # Update with old matrices + res = client.put( + f"/v1/studies/{study_id}/bindingconstraints/{bc_id_w_matrix}", + json={"key": "values", "value": [[]]}, + headers=admin_headers, + ) + assert res.status_code == 422 + assert res.json()["exception"] == "InvalidFieldForVersionError" + assert res.json()["description"] == "You cannot fill 'values' as it refers to the matrix before v8.7" + + # Creation with 2 matrices with different columns size + bc_id_with_wrong_matrix = "binding_constraint_with_wrong_matrix" + matrix_lt = np.ones((8784, 3)) + matrix_gt = np.ones((8784, 2)) + matrix_gt_to_list = matrix_gt.tolist() + matrix_lt_to_list = matrix_lt.tolist() + res = client.post( + f"/v1/studies/{study_id}/bindingconstraints", + json={ + "name": bc_id_with_wrong_matrix, + "less_term_matrix": matrix_lt_to_list, + "greater_term_matrix": matrix_gt_to_list, + **args, + }, + headers=admin_headers, + ) + assert res.status_code == 422 + assert res.json()["exception"] == "IncoherenceBetweenMatricesLength" + assert ( + res.json()["description"] + == "The matrices of binding_constraint_with_wrong_matrix must have the same number of columns, currently {2, 3}" + ) + + # Creation of 2 bc inside the same group with different columns size + bc_id = "binding_constraint_validation" + matrix_lt = np.ones((8784, 3)) + matrix_lt_to_list = matrix_lt.tolist() + res = client.post( + f"/v1/studies/{study_id}/bindingconstraints", + json={"name": bc_id, "less_term_matrix": matrix_lt_to_list, "group": "group1", **args}, + headers=admin_headers, + ) + assert res.status_code in {200, 201}, res.json() + + matrix_gt = np.ones((8784, 4)) + matrix_gt_to_list = matrix_gt.tolist() + res = client.post( + f"/v1/studies/{study_id}/bindingconstraints", + json={"name": "other_bc", "greater_term_matrix": matrix_gt_to_list, "group": "group1", **args}, + headers=admin_headers, + ) + assert res.status_code == 422 + assert res.json()["exception"] == "IncoherenceBetweenMatricesLength" + assert res.json()["description"] == "The matrices of the group group1 do not have the same number of columns" + + # Updating thr group of a bc creates different columns size inside the same group + bc_id = "binding_constraint_validation_2" + matrix_lt = np.ones((8784, 4)) + matrix_lt_to_list = matrix_lt.tolist() + res = client.post( + f"/v1/studies/{study_id}/bindingconstraints", + json={"name": bc_id, "less_term_matrix": matrix_lt_to_list, "group": "group2", **args}, + headers=admin_headers, + ) + assert res.status_code in {200, 201}, res.json() + + res = client.put( + f"v1/studies/{study_id}/bindingconstraints/{bc_id}", + json={"key": "group", "value": "group1"}, + headers=admin_headers, + ) + assert res.status_code == 422 + assert res.json()["exception"] == "IncoherenceBetweenMatricesLength" + assert res.json()["description"] == "The matrices of the group group1 do not have the same number of columns" + + # Update causes different matrices size inside the same bc + matrix_lt_3 = np.ones((8784, 3)) + matrix_lt_3_to_list = matrix_lt_3.tolist() + res = client.put( + f"v1/studies/{study_id}/bindingconstraints/{bc_id}", + json={"key": "greater_term_matrix", "value": matrix_lt_3_to_list}, + headers=admin_headers, + ) + assert res.status_code == 422 + assert res.json()["exception"] == "IncoherenceBetweenMatricesLength" + assert ( + res.json()["description"] + == "The matrices of binding_constraint_validation_2 must have the same number of columns, currently {3, 4}" + ) + + # Update causes different matrices size inside the same group + res = client.put( + f"v1/studies/{study_id}/bindingconstraints/{bc_id}", + json={"key": "less_term_matrix", "value": matrix_lt_3_to_list}, + headers=admin_headers, + ) + assert res.status_code in {200, 201}, res.json() + res = client.put( + f"v1/studies/{study_id}/bindingconstraints/{bc_id}", + json={"key": "group", "value": "group1"}, + headers=admin_headers, + ) + assert res.status_code in {200, 201}, res.json() + res = client.put( + f"v1/studies/{study_id}/bindingconstraints/{bc_id}", + json={"key": "less_term_matrix", "value": matrix_lt_to_list}, + headers=admin_headers, + ) + assert res.status_code == 422 + assert res.json()["exception"] == "IncoherenceBetweenMatricesLength" + assert res.json()["description"] == "The matrices of the group group1 do not have the same number of columns" diff --git a/tests/integration/study_data_blueprint/test_thermal.py b/tests/integration/study_data_blueprint/test_thermal.py index 9fc7388642..a44d7058ac 100644 --- a/tests/integration/study_data_blueprint/test_thermal.py +++ b/tests/integration/study_data_blueprint/test_thermal.py @@ -37,14 +37,12 @@ from antarest.core.utils.string import to_camel_case from antarest.study.storage.rawstudy.model.filesystem.config.model import transform_name_to_id -from antarest.study.storage.rawstudy.model.filesystem.config.thermal import Thermal860Properties, ThermalProperties +from antarest.study.storage.rawstudy.model.filesystem.config.thermal import ThermalProperties +from tests.integration.utils import wait_task_completion DEFAULT_PROPERTIES = json.loads(ThermalProperties(name="Dummy").json()) DEFAULT_PROPERTIES = {to_camel_case(k): v for k, v in DEFAULT_PROPERTIES.items() if k != "name"} -DEFAULT_860_PROPERTIES = json.loads(Thermal860Properties(name="Dummy").json()) -DEFAULT_860_PROPERTIES = {to_camel_case(k): v for k, v in DEFAULT_860_PROPERTIES.items() if k != "name"} - # noinspection SpellCheckingInspection EXISTING_CLUSTERS = [ { @@ -63,19 +61,7 @@ "minUpTime": 1, "mustRun": False, "name": "01_solar", - "nh3": None, - "nmvoc": None, "nominalCapacity": 1000000.0, - "nox": None, - "op1": None, - "op2": None, - "op3": None, - "op4": None, - "op5": None, - "pm10": None, - "pm25": None, - "pm5": None, - "so2": None, "spinning": 0.0, "spreadCost": 0.0, "startupCost": 0.0, @@ -99,19 +85,7 @@ "minUpTime": 1, "mustRun": False, "name": "02_wind_on", - "nh3": None, - "nmvoc": None, "nominalCapacity": 1000000.0, - "nox": None, - "op1": None, - "op2": None, - "op3": None, - "op4": None, - "op5": None, - "pm10": None, - "pm25": None, - "pm5": None, - "so2": None, "spinning": 0.0, "spreadCost": 0.0, "startupCost": 0.0, @@ -135,19 +109,7 @@ "minUpTime": 1, "mustRun": False, "name": "03_wind_off", - "nh3": None, - "nmvoc": None, "nominalCapacity": 1000000.0, - "nox": None, - "op1": None, - "op2": None, - "op3": None, - "op4": None, - "op5": None, - "pm10": None, - "pm25": None, - "pm5": None, - "so2": None, "spinning": 0.0, "spreadCost": 0.0, "startupCost": 0.0, @@ -171,19 +133,7 @@ "minUpTime": 1, "mustRun": False, "name": "04_res", - "nh3": None, - "nmvoc": None, "nominalCapacity": 1000000.0, - "nox": None, - "op1": None, - "op2": None, - "op3": None, - "op4": None, - "op5": None, - "pm10": None, - "pm25": None, - "pm5": None, - "so2": None, "spinning": 0.0, "spreadCost": 0.0, "startupCost": 0.0, @@ -207,19 +157,7 @@ "minUpTime": 1, "mustRun": False, "name": "05_nuclear", - "nh3": None, - "nmvoc": None, "nominalCapacity": 1000000.0, - "nox": None, - "op1": None, - "op2": None, - "op3": None, - "op4": None, - "op5": None, - "pm10": None, - "pm25": None, - "pm5": None, - "so2": None, "spinning": 0.0, "spreadCost": 0.0, "startupCost": 0.0, @@ -243,19 +181,7 @@ "minUpTime": 1, "mustRun": False, "name": "06_coal", - "nh3": None, - "nmvoc": None, "nominalCapacity": 1000000.0, - "nox": None, - "op1": None, - "op2": None, - "op3": None, - "op4": None, - "op5": None, - "pm10": None, - "pm25": None, - "pm5": None, - "so2": None, "spinning": 0.0, "spreadCost": 0.0, "startupCost": 0.0, @@ -279,19 +205,7 @@ "minUpTime": 1, "mustRun": False, "name": "07_gas", - "nh3": None, - "nmvoc": None, "nominalCapacity": 1000000.0, - "nox": None, - "op1": None, - "op2": None, - "op3": None, - "op4": None, - "op5": None, - "pm10": None, - "pm25": None, - "pm5": None, - "so2": None, "spinning": 0.0, "spreadCost": 0.0, "startupCost": 0.0, @@ -315,19 +229,7 @@ "minUpTime": 1, "mustRun": False, "name": "08_non-res", - "nh3": None, - "nmvoc": None, "nominalCapacity": 1000000.0, - "nox": None, - "op1": None, - "op2": None, - "op3": None, - "op4": None, - "op5": None, - "pm10": None, - "pm25": None, - "pm5": None, - "so2": None, "spinning": 0.0, "spreadCost": 0.0, "startupCost": 0.0, @@ -351,19 +253,7 @@ "minUpTime": 1, "mustRun": False, "name": "09_hydro_pump", - "nh3": None, - "nmvoc": None, "nominalCapacity": 1000000.0, - "nox": None, - "op1": None, - "op2": None, - "op3": None, - "op4": None, - "op5": None, - "pm10": None, - "pm25": None, - "pm5": None, - "so2": None, "spinning": 0.0, "spreadCost": 0.0, "startupCost": 0.0, @@ -376,16 +266,50 @@ @pytest.mark.unit_test class TestThermal: + @pytest.mark.parametrize( + "version", [pytest.param(0, id="No Upgrade"), pytest.param(860, id="v8.6"), pytest.param(870, id="v8.7")] + ) def test_lifecycle( - self, - client: TestClient, - user_access_token: str, - study_id: str, + self, client: TestClient, user_access_token: str, study_id: str, admin_access_token: str, version: int ) -> None: # ============================= - # THERMAL CLUSTER CREATION + # STUDY UPGRADE # ============================= + if version != 0: + res = client.put( + f"/v1/studies/{study_id}/upgrade", + headers={"Authorization": f"Bearer {admin_access_token}"}, + params={"target_version": version}, + ) + res.raise_for_status() + task_id = res.json() + task = wait_task_completion(client, admin_access_token, task_id) + from antarest.core.tasks.model import TaskStatus + + assert task.status == TaskStatus.COMPLETED, task + + # ================================= + # UPDATE EXPECTED POLLUTANTS LIST + # ================================= + + # noinspection SpellCheckingInspection + pollutants_names = ["nh3", "nmvoc", "nox", "op1", "op2", "op3", "op4", "op5", "pm10", "pm25", "pm5", "so2"] + pollutants_values = 0.0 if version >= 860 else None + for existing_cluster in EXISTING_CLUSTERS: + existing_cluster.update({p: pollutants_values for p in pollutants_names}) + existing_cluster.update( + { + "costGeneration": "SetManually" if version == 870 else None, + "efficiency": 100.0 if version == 870 else None, + "variableOMCost": 0.0 if version == 870 else None, + } + ) + + # ========================== + # THERMAL CLUSTER CREATION + # ========================== + area_id = transform_name_to_id("FR") fr_gas_conventional = "FR_Gas conventional" @@ -430,18 +354,15 @@ def test_lifecycle( fr_gas_conventional_cfg = { **fr_gas_conventional_props, "id": fr_gas_conventional_id, - "nh3": None, - "nmvoc": None, - "nox": None, - "op1": None, - "op2": None, - "op3": None, - "op4": None, - "op5": None, - "pm10": None, - "pm25": None, - "pm5": None, - "so2": None, + **{p: pollutants_values for p in pollutants_names}, + } + fr_gas_conventional_cfg = { + **fr_gas_conventional_cfg, + **{ + "costGeneration": "SetManually" if version == 870 else None, + "efficiency": 100.0 if version == 870 else None, + "variableOMCost": 0.0 if version == 870 else None, + }, } assert res.json() == fr_gas_conventional_cfg @@ -453,9 +374,9 @@ def test_lifecycle( assert res.status_code == 200, res.json() assert res.json() == fr_gas_conventional_cfg - # ============================= + # ========================== # THERMAL CLUSTER MATRICES - # ============================= + # ========================== matrix = np.random.randint(0, 2, size=(8760, 1)).tolist() matrix_path = f"input/thermal/prepro/{area_id}/{fr_gas_conventional_id.lower()}/data" @@ -554,6 +475,24 @@ def test_lifecycle( assert res.status_code == 200, res.json() assert res.json() == fr_gas_conventional_cfg + # Update with a pollutant. Should succeed even with versions prior to v8.6 + res = client.patch( + f"/v1/studies/{study_id}/areas/{area_id}/clusters/thermal/{fr_gas_conventional_id}", + headers={"Authorization": f"Bearer {user_access_token}"}, + json={"nox": 10.0}, + ) + assert res.status_code == 200 + assert res.json()["nox"] == 10.0 + + # Update with the field `efficiency`. Should succeed even with versions prior to v8.7 + res = client.patch( + f"/v1/studies/{study_id}/areas/{area_id}/clusters/thermal/{fr_gas_conventional_id}", + headers={"Authorization": f"Bearer {user_access_token}"}, + json={"efficiency": 97.0}, + ) + assert res.status_code == 200 + assert res.json()["efficiency"] == 97.0 + # ============================= # THERMAL CLUSTER DUPLICATION # ============================= @@ -570,6 +509,11 @@ def test_lifecycle( duplicated_config["name"] = new_name duplicated_id = transform_name_to_id(new_name, lower=False) duplicated_config["id"] = duplicated_id + # takes the update into account + if version >= 860: + duplicated_config["nox"] = 10 + if version >= 870: + duplicated_config["efficiency"] = 97.0 assert res.json() == duplicated_config # asserts the matrix has also been duplicated diff --git a/tests/integration/test_integration.py b/tests/integration/test_integration.py index 8000a80ab3..33b059ccae 100644 --- a/tests/integration/test_integration.py +++ b/tests/integration/test_integration.py @@ -1780,6 +1780,9 @@ def test_area_management(client: TestClient, admin_access_token: str, study_id: "op3": 3, "op4": 2.4, "op5": 0, + "costGeneration": "SetManually", + "efficiency": 100.0, + "variableOMCost": 0.0, } res = client.put( # This URL is deprecated, but we must check it for backward compatibility. diff --git a/tests/storage/business/assets/little_study_700.zip b/tests/storage/business/assets/little_study_700.zip index 721a9b9f44b79ba09949b3e09ece0e732f901f31..e9a34f5f495ed7ee150689396c379df771b6ffc0 100644 GIT binary patch literal 131440 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

    }AA8vTJGU7N#6|B=8Gmj%Vqw+j4 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 THwg3+_^ dict: return dico -def assert_inputs_are_updated(tmp_path: Path, dico: dict) -> None: +def get_old_binding_constraint_values(tmp_path: Path) -> dict: + dico = {} + bd_list = glob.glob(str(tmp_path / "input" / "bindingconstraints" / "*.txt")) + for txt_file in bd_list: + path_txt = Path(txt_file) + df = pandas.read_csv(path_txt, sep="\t", header=None) + dico[str(path_txt.stem)] = df + return dico + + +def assert_inputs_are_updated(tmp_path: Path, old_area_values: dict, old_binding_constraint_values: dict) -> None: input_path = tmp_path / "input" # tests 8.1 upgrade @@ -152,7 +163,7 @@ def assert_inputs_are_updated(tmp_path: Path, dico: dict) -> None: path_txt = Path(txt) old_txt = str(Path(path_txt.parent.name).joinpath(path_txt.stem)).replace("_parameters", "") df = pandas.read_csv(txt, sep="\t", header=None) - assert df.values.all() == dico[old_txt].iloc[:, 2:8].values.all() + assert df.values.all() == old_area_values[old_txt].iloc[:, 2:8].values.all() capacities = glob.glob(str(folder_path / "capacities" / "*")) for direction_txt in capacities: df_capacities = pandas.read_csv(direction_txt, sep="\t", header=None) @@ -160,10 +171,10 @@ def assert_inputs_are_updated(tmp_path: Path, dico: dict) -> None: old_txt = str(Path(direction_path.parent.parent.name).joinpath(direction_path.name)) if "indirect" in old_txt: new_txt = old_txt.replace("_indirect.txt", "") - assert df_capacities[0].values.all() == dico[new_txt].iloc[:, 0].values.all() + assert df_capacities[0].values.all() == old_area_values[new_txt].iloc[:, 0].values.all() else: new_txt = old_txt.replace("_direct.txt", "") - assert df_capacities[0].values.all() == dico[new_txt].iloc[:, 1].values.all() + assert df_capacities[0].values.all() == old_area_values[new_txt].iloc[:, 1].values.all() # tests 8.3 upgrade areas = glob.glob(str(tmp_path / "input" / "areas" / "*")) @@ -184,6 +195,28 @@ def assert_inputs_are_updated(tmp_path: Path, dico: dict) -> None: assert (st_storage_path / "list.ini").exists() assert input_path.joinpath("hydro", "series", area_id, "mingen.txt").exists() + # tests 8.7 upgrade + # binding constraint part + reader = IniReader(DUPLICATE_KEYS) + data = reader.read(input_path / "bindingconstraints" / "bindingconstraints.ini") + binding_constraints_list = list(data.keys()) + for bd in binding_constraints_list: + bd_id = data[bd]["id"] + assert data[bd]["group"] == "default" + for k, term in enumerate(["lt", "gt", "eq"]): + term_path = input_path / "bindingconstraints" / f"{bd_id}_{term}.txt" + df = pandas.read_csv(term_path, sep="\t", header=None) + assert df.values.all() == old_binding_constraint_values[bd_id].iloc[:, k].values.all() + + # thermal cluster part + for area in list_areas: + reader = IniReader(DUPLICATE_KEYS) + thermal_cluster_list = reader.read(tmp_path / "input" / "thermal" / "clusters" / area / "list.ini") + for cluster in thermal_cluster_list: + assert thermal_cluster_list[cluster]["costgeneration"] == "SetManually" + assert thermal_cluster_list[cluster]["efficiency"] == 100 + assert thermal_cluster_list[cluster]["variableomcost"] == 0 + def assert_folder_is_created(path: Path) -> None: assert path.is_dir() diff --git a/tests/storage/repository/filesystem/config/test_config_files.py b/tests/storage/repository/filesystem/config/test_config_files.py index 4f88115291..7cbab645bc 100644 --- a/tests/storage/repository/filesystem/config/test_config_files.py +++ b/tests/storage/repository/filesystem/config/test_config_files.py @@ -27,7 +27,12 @@ ) from antarest.study.storage.rawstudy.model.filesystem.config.renewable import RenewableConfig from antarest.study.storage.rawstudy.model.filesystem.config.st_storage import STStorageConfig, STStorageGroup -from antarest.study.storage.rawstudy.model.filesystem.config.thermal import Thermal860Config, ThermalConfig +from antarest.study.storage.rawstudy.model.filesystem.config.thermal import ( + Thermal860Config, + Thermal870Config, + ThermalConfig, + ThermalCostGeneration, +) from tests.storage.business.assets import ASSETS_DIR @@ -333,12 +338,26 @@ def test_parse_thermal_860(tmp_path: Path, version, caplog) -> None: ini_path.write_text(THERMAL_860_LIST_INI) with caplog.at_level(logging.WARNING): actual = _parse_thermal(study_path, "fr") - if version >= 860: + if version == 860: expected = [ Thermal860Config(id="t1", name="t1"), Thermal860Config(id="t2", name="t2", co2=156, nh3=456), ] assert not caplog.text + elif version == 870: + expected = [ + Thermal870Config(id="t1", name="t1"), + Thermal870Config( + id="t2", + name="t2", + co2=156, + nh3=456, + cost_generation=ThermalCostGeneration.SET_MANUALLY, + efficiency=100.0, + variable_o_m_cost=0, + ), + ] + assert not caplog.text else: expected = [ThermalConfig(id="t1", name="t1")] assert "extra fields not permitted" in caplog.text diff --git a/tests/storage/study_upgrader/test_upgrade_870.py b/tests/storage/study_upgrader/test_upgrade_870.py new file mode 100644 index 0000000000..f22a7a30ef --- /dev/null +++ b/tests/storage/study_upgrader/test_upgrade_870.py @@ -0,0 +1,31 @@ +from antarest.study.storage.study_upgrader import upgrade_870 +from tests.storage.business.test_study_version_upgrader import are_same_dir +from tests.storage.study_upgrader.conftest import StudyAssets + + +def test_nominal_case(study_assets: StudyAssets): + """ + Check that binding constraints and thermal folders are correctly modified + """ + + # upgrade the study + upgrade_870(study_assets.study_dir) + + # compare input folders (bindings + thermals) + actual_input_path = study_assets.study_dir.joinpath("input") + expected_input_path = study_assets.expected_dir.joinpath("input") + assert are_same_dir(actual_input_path, expected_input_path) + + +def test_empty_binding_constraints(study_assets: StudyAssets): + """ + Check that binding constraints and thermal folders are correctly modified + """ + + # upgrade the study + upgrade_870(study_assets.study_dir) + + # compare input folders (bindings + thermals) + actual_input_path = study_assets.study_dir.joinpath("input") + expected_input_path = study_assets.expected_dir.joinpath("input") + assert are_same_dir(actual_input_path, expected_input_path) diff --git a/tests/storage/study_upgrader/upgrade_870/empty_binding_constraints/little_study_860.expected.zip b/tests/storage/study_upgrader/upgrade_870/empty_binding_constraints/little_study_860.expected.zip new file mode 100644 index 0000000000000000000000000000000000000000..508430ffc5b01313f9157d424d75df6dae64ad2d GIT binary patch literal 124012 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

    M+j4sc7@?u=^?q9iO)9cr8U#o_ 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 huiX?#yNCK%fUE=(^49PTweeH literal 0 HcmV?d00001 diff --git a/tests/storage/study_upgrader/upgrade_870/nominal_case/little_study_860.expected.zip b/tests/storage/study_upgrader/upgrade_870/nominal_case/little_study_860.expected.zip new file mode 100644 index 0000000000000000000000000000000000000000..e8e657ae9819a8c23051efbef4c69b82d5304191 GIT binary patch literal 126978 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 IK|%oVKjz2PHvj+t literal 0 HcmV?d00001 diff --git a/tests/storage/study_upgrader/upgrade_870/nominal_case/little_study_860.zip b/tests/storage/study_upgrader/upgrade_870/nominal_case/little_study_860.zip new file mode 100644 index 0000000000000000000000000000000000000000..ee4aef0d3469bf3ebd76dd6b56244d6d3cf4a4d1 GIT binary patch literal 126416 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 uZKCaZw8MZg|)!q+l55(B?ynF76^OZD< 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%0AT#XkpzsROgSOD;u;(5tMB8R+?!yo(88+ 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 Wh$A6y|M$<3Up<-tzyPEH0N{U5)ts#W literal 0 HcmV?d00001 diff --git a/tests/study/business/areas/test_thermal_management.py b/tests/study/business/areas/test_thermal_management.py index a0f7183542..dd52ec9538 100644 --- a/tests/study/business/areas/test_thermal_management.py +++ b/tests/study/business/areas/test_thermal_management.py @@ -23,6 +23,34 @@ from tests.study.business.areas.assets import ASSETS_DIR +class TestThermalClusterGroup: + """ + Tests for the `ThermalClusterGroup` enumeration. + """ + + def test_nominal_case(self): + """ + When a group is read from a INI file, the group should be the same as the one in the file. + """ + group = ThermalClusterGroup("gas") # different case: original is "Gas" + assert group == ThermalClusterGroup.GAS + + def test_unknown(self): + """ + When an unknown group is read from a INI file, the group should be `OTHER1`. + Note that this is the current behavior in Antares Solver. + """ + group = ThermalClusterGroup("unknown") + assert group == ThermalClusterGroup.OTHER1 + + def test_invalid_type(self): + """ + When an invalid type is used to create a group, a `ValueError` should be raised. + """ + with pytest.raises(ValueError): + ThermalClusterGroup(123) + + @pytest.fixture(name="zip_legacy_path") def zip_legacy_path_fixture(tmp_path: Path) -> Path: target_dir = tmp_path.joinpath("resources") @@ -141,6 +169,10 @@ def test_get_cluster__study_legacy( "op3": None, "op4": None, "op5": None, + # These values are also None as they are defined in v8.7+ + "costGeneration": None, + "efficiency": None, + "variableOMCost": None, } assert actual == expected @@ -203,6 +235,9 @@ def test_get_clusters__study_legacy( "op3": None, "op4": None, "op5": None, + "costGeneration": None, + "efficiency": None, + "variableOMCost": None, }, { "id": "on and must 2", @@ -239,6 +274,9 @@ def test_get_clusters__study_legacy( "op3": None, "op4": None, "op5": None, + "costGeneration": None, + "efficiency": None, + "variableOMCost": None, }, { "id": "2 avail and must 2", @@ -275,6 +313,9 @@ def test_get_clusters__study_legacy( "op3": None, "op4": None, "op5": None, + "costGeneration": None, + "efficiency": None, + "variableOMCost": None, }, ] assert actual == expected @@ -343,6 +384,9 @@ def test_create_cluster__study_legacy( "pm25": None, "pm5": None, "so2": None, + "costGeneration": None, + "efficiency": None, + "variableOMCost": None, "spinning": 0.0, "spreadCost": 0.0, "startupCost": 0.0, @@ -407,6 +451,10 @@ def test_update_cluster( "op3": None, "op4": None, "op5": None, + # These values are also None as they are defined in v8.7+ + "costGeneration": None, + "efficiency": None, + "variableOMCost": None, } assert actual == expected diff --git a/tests/study/storage/variantstudy/business/test_matrix_constants_generator.py b/tests/study/storage/variantstudy/business/test_matrix_constants_generator.py index a216571510..da5ebd91d6 100644 --- a/tests/study/storage/variantstudy/business/test_matrix_constants_generator.py +++ b/tests/study/storage/variantstudy/business/test_matrix_constants_generator.py @@ -46,7 +46,7 @@ def test_get_st_storage(self, tmp_path): matrix_dto5 = generator.matrix_service.get(matrix_id5) assert np.array(matrix_dto5.data).all() == matrix_constants.st_storage.series.inflows.all() - def test_get_binding_constraint(self, tmp_path): + def test_get_binding_constraint_before_v87(self, tmp_path): matrix_content_repository = MatrixContentRepository( bucket_dir=tmp_path, ) @@ -56,19 +56,14 @@ def test_get_binding_constraint(self, tmp_path): ) ) generator.init_constant_matrices() - series = matrix_constants.binding_constraint.series + series = matrix_constants.binding_constraint.series_before_v87 - hourly = generator.get_binding_constraint_hourly() + hourly = generator.get_binding_constraint_hourly_86() hourly_matrix_id = hourly.split(MATRIX_PROTOCOL_PREFIX)[1] hourly_matrix_dto = generator.matrix_service.get(hourly_matrix_id) assert np.array(hourly_matrix_dto.data).all() == series.default_bc_hourly.all() - daily = generator.get_binding_constraint_daily() - daily_matrix_id = daily.split(MATRIX_PROTOCOL_PREFIX)[1] - daily_matrix_dto = generator.matrix_service.get(daily_matrix_id) - assert np.array(daily_matrix_dto.data).all() == series.default_bc_weekly_daily.all() - - weekly = generator.get_binding_constraint_weekly() - weekly_matrix_id = weekly.split(MATRIX_PROTOCOL_PREFIX)[1] - weekly_matrix_dto = generator.matrix_service.get(weekly_matrix_id) - assert np.array(weekly_matrix_dto.data).all() == series.default_bc_weekly_daily.all() + daily_weekly = generator.get_binding_constraint_daily_weekly_86() + matrix_id = daily_weekly.split(MATRIX_PROTOCOL_PREFIX)[1] + matrix_dto = generator.matrix_service.get(matrix_id) + assert np.array(matrix_dto.data).all() == series.default_bc_weekly_daily.all() diff --git a/tests/study/storage/variantstudy/model/test_dbmodel.py b/tests/study/storage/variantstudy/model/test_dbmodel.py index 1e18e4fef1..6ed1bbcba1 100644 --- a/tests/study/storage/variantstudy/model/test_dbmodel.py +++ b/tests/study/storage/variantstudy/model/test_dbmodel.py @@ -156,7 +156,7 @@ def test_init(self, db_session: Session, variant_study_id: str) -> None: "id": command_id, "action": command, "args": json.loads(args), - "version": 1, + "version": 42, } diff --git a/tests/variantstudy/conftest.py b/tests/variantstudy/conftest.py index 011a6bb68d..e963c83879 100644 --- a/tests/variantstudy/conftest.py +++ b/tests/variantstudy/conftest.py @@ -70,11 +70,23 @@ def delete(matrix_id: str) -> None: """ del matrix_map[matrix_id] + def get_matrix_id(matrix: t.Union[t.List[t.List[float]], str]) -> str: + """ + Get the matrix ID from a matrix or a matrix link. + """ + if isinstance(matrix, str): + return matrix.lstrip("matrix://") + elif isinstance(matrix, list): + return create(matrix) + else: + raise TypeError(f"Invalid type for matrix: {type(matrix)}") + matrix_service = Mock(spec=MatrixService) matrix_service.create.side_effect = create matrix_service.get.side_effect = get matrix_service.exists.side_effect = exists matrix_service.delete.side_effect = delete + matrix_service.get_matrix_id.side_effect = get_matrix_id return matrix_service diff --git a/tests/variantstudy/model/command/test_manage_binding_constraints.py b/tests/variantstudy/model/command/test_manage_binding_constraints.py index c28b50b69d..bab8ff1681 100644 --- a/tests/variantstudy/model/command/test_manage_binding_constraints.py +++ b/tests/variantstudy/model/command/test_manage_binding_constraints.py @@ -7,7 +7,7 @@ from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.variantstudy.business.command_extractor import CommandExtractor from antarest.study.storage.variantstudy.business.command_reverter import CommandReverter -from antarest.study.storage.variantstudy.business.matrix_constants.binding_constraint.series import ( +from antarest.study.storage.variantstudy.business.matrix_constants.binding_constraint.series_before_v87 import ( default_bc_hourly, default_bc_weekly_daily, ) @@ -350,13 +350,14 @@ def test_create_diff(command_context: CommandContext): ) values_b = np.random.rand(8784, 3).tolist() + matrix_b_id = command_context.matrix_service.create(values_b) other_match = CreateBindingConstraint( name="foo", enabled=True, time_step=BindingConstraintFrequency.HOURLY, operator=BindingConstraintOperator.EQUAL, coeffs={"b": [0.3]}, - values=values_b, + values=matrix_b_id, command_context=command_context, ) assert base.create_diff(other_match) == [ @@ -366,7 +367,7 @@ def test_create_diff(command_context: CommandContext): time_step=BindingConstraintFrequency.HOURLY, operator=BindingConstraintOperator.EQUAL, coeffs={"b": [0.3]}, - values=values_b, + values=matrix_b_id, command_context=command_context, ) ] diff --git a/tests/variantstudy/test_command_factory.py b/tests/variantstudy/test_command_factory.py index aac2be6c59..64ec3b799f 100644 --- a/tests/variantstudy/test_command_factory.py +++ b/tests/variantstudy/test_command_factory.py @@ -402,27 +402,32 @@ def setup_class(self): ) @pytest.mark.unit_test def test_command_factory(self, command_dto: CommandDTO): + def get_matrix_id(matrix: str) -> str: + return matrix.lstrip("matrix://") + command_factory = CommandFactory( generator_matrix_constants=Mock(spec=GeneratorMatrixConstants), - matrix_service=Mock(spec=MatrixService), + matrix_service=Mock(spec=MatrixService, get_matrix_id=get_matrix_id), patch_service=Mock(spec=PatchService), ) commands = command_factory.to_command(command_dto=command_dto) if isinstance(command_dto.args, dict): - exp_action_args_list = [(command_dto.action, command_dto.args)] + exp_action_args_list = [(command_dto.action, command_dto.args, command_dto.version)] else: - exp_action_args_list = [(command_dto.action, args) for args in command_dto.args] + exp_action_args_list = [(command_dto.action, args, command_dto.version) for args in command_dto.args] actual_cmd: ICommand - for actual_cmd, exp_action_args in itertools.zip_longest(commands, exp_action_args_list): - assert actual_cmd is not None, f"Missing action/args for {exp_action_args=}" - assert exp_action_args is not None, f"Missing command for {actual_cmd=}" - expected_action, expected_args = exp_action_args + for actual_cmd, exp_action_args_version in itertools.zip_longest(commands, exp_action_args_list): + assert actual_cmd is not None, f"Missing action/args for {exp_action_args_version=}" + assert exp_action_args_version is not None, f"Missing command for {actual_cmd=}" + expected_action, expected_args, expected_version = exp_action_args_version actual_dto = actual_cmd.to_dto() actual_args = {k: v for k, v in actual_dto.args.items() if v is not None} + actual_version = actual_dto.version assert actual_dto.action == expected_action assert actual_args == expected_args + assert actual_version == expected_version self.command_class_set.discard(type(commands[0]).__name__)