Source code for api.simulation.output_cases.output_case_container_setup
""" Handling of output case containers """importtypingfromabcimportabstractmethod,ABCfrommore.api.simulation.output_cases.output_case_setupimportOutputCaseSetupPipeline
[docs]@abstractmethoddefget_available_output_case_names(self)->typing.List[str]:""" Gets the names of existing output cases, with the ordering being the same as the order in the underlying list at the moment of calling this method .. admonition:: Example :class: note .. >>> import more.project >>> proj = more.project.Project() >>> from more.api import ApiGateway >>> api = ApiGateway(proj=proj) >>> simulation_setup = api.create_simulation_setup() >>> output_case_container_setup = simulation_setup.create_output_case_container_setup() >>> _ = output_case_container_setup.create_output_case_setup(oc_type='Mechanical output case') >>> _ = output_case_container_setup.create_output_case_setup(oc_type='Mechanical output case') >>> _ = output_case_container_setup.create_output_case_setup(oc_type='Mechanical output case') >>> output_case_container_setup.get_available_output_case_names() ['Mechanical output case', 'Mechanical output case 1', 'Mechanical output case 2'] Returns ------- list of strings Names of available output cases """pass
[docs]@abstractmethoddefcreate_output_case_setup(self,oc_type)->OutputCaseSetupPipeline:""" Creates a output case and returns a corresponding :class:`~api.simulation.output_cases.output_case_setup.OutputCaseSetupPipeline` object .. admonition:: Example :class: note .. >>> import more.project >>> proj = more.project.Project() >>> from more.api import ApiGateway >>> api = ApiGateway(proj=proj) >>> simulation_setup = api.create_simulation_setup() >>> output_case_container_setup = simulation_setup.create_output_case_container_setup() >>> output_case_setup = output_case_container_setup.create_output_case_setup(oc_type='Mechanical output case') .. >>> # Test assertions for doctest, will not be rendered because of the '..' sphinx comment above >>> len(output_case_container_setup.output_case_container.output_cases_container.elements) 1 >>> from more.output_cases.mechanical_output_case import MechanicalOutputCase >>> isinstance(output_case_container_setup.output_case_container.output_cases_container.elements[0], MechanicalOutputCase) True >>> output_case_setup._output_case == output_case_container_setup.output_case_container.output_cases_container.elements[0] True >>> output_case_container_setup.create_output_case_setup(oc_type='Non existent OC type') Traceback (most recent call last): ... more.api.exceptions.api_exception.NameNotFoundError: ... Returns ------- :class:`~api.simulation.output_cases.output_case_setup.OutputCaseSetupPipeline` A :class:`~api.simulation.output_cases.output_case_setup.OutputCaseSetupPipeline` object for the created output case Raises ------ NameNotFoundError Raised if no outputd case type with the given name was found """pass
[docs]@abstractmethoddefget_output_case_setup(self,oc_type:typing.Optional[str]=None,name:typing.Optional[str]=None):""" Returns a :class:`~api.simulation.output_cases.output_case_setup.OutputCaseSetupPipeline` object for a output case setup object with the given name .. admonition:: Deprecated :class: warning the 'oc_type' parameter is deprecated and will be removed without replacement in a future MORe release. Please use only the 'name' parameter to specify the output case. .. admonition:: Example :class: note .. >>> import more.project >>> proj = more.project.Project() >>> from more.api import ApiGateway >>> api = ApiGateway(proj=proj) >>> simulation_setup = api.create_simulation_setup() >>> output_case_container_setup = simulation_setup.create_output_case_container_setup() .. >>> _output_case_setup = output_case_container_setup.create_output_case_setup(oc_type='Mechanical output case').set_name(name='Example OC') >>> output_case_setup = output_case_container_setup.get_output_case_setup(name='Example OC') # This Load Case must already exist .. >>> # Test assertions for doctest, will not be rendered because of the '..' sphinx comment above >>> len(output_case_container_setup.output_case_container.output_cases_container.elements) 1 >>> from more.output_cases.mechanical_output_case import MechanicalOutputCase >>> isinstance(output_case_container_setup.output_case_container.output_cases_container.elements[0],MechanicalOutputCase) True >>> output_case_setup._output_case == output_case_container_setup.output_case_container.output_cases_container.elements[0] True >>> output_case_setup._output_case == _output_case_setup._output_case True >>> output_case_container_setup.get_output_case_setup(name='Non existent OC') Traceback (most recent call last): ... more.api.exceptions.api_exception.NameNotFoundError: ... Parameters ---------- name : str The name of the existing output case for which to return a :class:`~api.simulation.output_cases.output_case_setup.OutputCaseSetupPipeline` Returns ------- :class:`~api.simulation.output_cases.output_case_setup.OutputCaseSetupPipeline` A :class:`~api.simulation.output_cases.output_case_setup.OutputCaseSetupPipeline` object for the found output case Raises ------ NameNotFoundError Raised if no output case with the given name was found """pass
[docs]@abstractmethoddefremove_output_case_setup(self,oc_type:typing.Optional[str]=None,name:typing.Optional[str]=None)->'OutputCaseContainerSetup':""" Removes a output case .. admonition:: Deprecated :class: warning the 'oc_type' parameter is deprecated and will be removed without replacement in a future MORe release. Please use only the 'name' parameter to specify the output case to remove. .. admonition:: Example :class: note .. >>> import more.project >>> proj = more.project.Project() >>> from more.api import ApiGateway >>> api = ApiGateway(proj=proj) >>> simulation_setup = api.create_simulation_setup() >>> output_case_container_setup = simulation_setup.create_output_case_container_setup() .. >>> _output_case_setup = output_case_container_setup.create_output_case_setup(oc_type='Mechanical output case').set_name(name='Example OC') >>> output_case_setup = output_case_container_setup.remove_output_case_setup(name='Example OC') # This Load Case must already exist .. >>> # Test assertions for doctest, will not be rendered because of the '..' sphinx comment above >>> len(output_case_container_setup.output_case_container.output_cases_container.elements) 0 >>> from more.output_cases.mechanical_output_case import MechanicalOutputCase >>> output_case_container_setup.get_output_case_setup(name='Non existent OC') Traceback (most recent call last): ... more.api.exceptions.api_exception.NameNotFoundError: ... Parameters ---------- name : str The name of the existing output case to remove Returns ------- self: OutputCaseContainerSetup Raises ------ NameNotFoundError Raised if no output case with the given name was found """pass
[docs]@abstractmethoddefget_name(self)->str:""" Returns the name of the object .. admonition:: Example :class: note .. >>> import more.project >>> proj = more.project.Project() >>> from more.api import ApiGateway >>> api = ApiGateway(proj=proj) >>> simulation_setup = api.create_simulation_setup() >>> output_case_container_setup = simulation_setup.create_output_case_container_setup() >>> output_case_container_setup.set_name(name='new_name') <more...> >>> output_case_container_setup.get_name() 'new_name' Returns ------- name: str The name of the object """pass
[docs]@abstractmethoddefset_name(self,name:str,resolve_duplicate_name:bool=False):""" Sets the name of the output case container .. admonition:: Example :class: note .. >>> import more.project >>> proj = more.project.Project() >>> from more.api import ApiGateway >>> api = ApiGateway(proj=proj) >>> simulation_setup = api.create_simulation_setup() >>> output_case_container_setup = simulation_setup.create_output_case_container_setup() >>> output_case_container_setup.set_name(name='new_name') <more...> >>> simulation_setup.create_output_case_container_setup() \\ ... .set_name(name='new_name', resolve_duplicate_name=True) \\ ... .get_name() 'new_name 1' .. >>> output_case_container_setup._output_case_container.name 'new_name' Trying to set the name to a non-string value >>> output_case_container_setup.set_name(name=None) Traceback (most recent call last): ... TypeError: ... Setting a non-unique name >>> output_case_container_setup.set_name('new_name') Traceback (most recent call last): ... more.api.exceptions.api_exception.NameNotUniqueError: ... Parameters ---------- name : str The new name for the output case container resolve_duplicate_name: bool Whether to automatically assign a new name when the chosen one is already taken Returns ------- self: OutputCaseContainerSetup Raises ------ NameNotUniqueError Raised if the given name is not unique TypeError Raised if the given name is not a string """pass