:py:mod:`ethos_penalps.production_plan`
=======================================

.. py:module:: ethos_penalps.production_plan


Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   ethos_penalps.production_plan.ResultBaseClass
   ethos_penalps.production_plan.OutputBranchProductionPlan
   ethos_penalps.production_plan.ProductionPlan




Attributes
~~~~~~~~~~

.. autoapisummary::

   ethos_penalps.production_plan.logger


.. py:data:: logger

   

.. py:class:: ResultBaseClass


   .. py:attribute:: process_step_states_dict
      :type: dict[str, list[ethos_penalps.data_classes.ProcessStepProductionPlanEntry]]

      

   .. py:attribute:: stream_state_dict
      :type: dict[str, list[ethos_penalps.stream.ContinuousStreamProductionPlanEntry] | list[ethos_penalps.stream.BatchStreamProductionPlanEntry]]

      

   .. py:attribute:: storage_state_dict
      :type: dict[str, dict[ethos_penalps.data_classes.Commodity, list[ethos_penalps.data_classes.StorageProductionPlanEntry]]]

      

   .. py:method:: save_all_simulation_results_to_sqlite(full_path_to_data_base: str | None = None, database_name: str | None = None) -> list[str]


   .. py:method:: save_stream_plan_to_sqlite_db(full_path_to_data_base: str | None = None, database_name: str | None = None) -> str


   .. py:method:: save_process_state_plan_to_sqlite_db(full_path_to_data_base: str | None = None, database_name: str | None = None) -> str


   .. py:method:: restore_stream_results_from_sqlite(path_to_database: str)


   .. py:method:: restore_process_step_results_from_sqlite(path_to_database: str)


   .. py:method:: save_list_stream_frames_to_xlsx(full_path_to_xlsx_file: str | None = None, file_name: str | None = None, print_file_save_path=True)



.. py:class:: OutputBranchProductionPlan


   Bases: :py:obj:`ResultBaseClass`

   .. py:method:: add_stream_state_entry(stream_state_entry: ethos_penalps.stream.ContinuousStreamProductionPlanEntry | ethos_penalps.stream.BatchStreamProductionPlanEntry)


   .. py:method:: add_storage_entry(process_step_name: str, storage_entry: ethos_penalps.data_classes.StorageProductionPlanEntry)


   .. py:method:: create_self_copy()


   .. py:method:: _copy_process_step_states() -> dict[str, list[ethos_penalps.data_classes.ProcessStepProductionPlanEntry]]


   .. py:method:: _copy_stream_states() -> dict[str, list[ethos_penalps.stream.ContinuousStreamProductionPlanEntry] | list[ethos_penalps.stream.BatchStreamProductionPlanEntry]]


   .. py:method:: _copy_storage_state_dictionaries() -> dict[str, dict[ethos_penalps.data_classes.Commodity, list[ethos_penalps.data_classes.StorageProductionPlanEntry]]]


   .. py:method:: __get_list_of_all_start_and_end_times() -> list[datetime.datetime]


   .. py:method:: determine_start_time() -> datetime.datetime


   .. py:method:: determine_end_time() -> datetime.datetime



.. py:class:: ProductionPlan


   Bases: :py:obj:`ResultBaseClass`

   .. py:attribute:: load_profile_handler
      :type: ethos_penalps.load_profile_calculator.LoadProfileHandler

      

   .. py:attribute:: dict_of_stream_meta_data_data_frames
      :type: dict[str, ethos_penalps.stream.StreamDataFrameMetaInformation | ethos_penalps.data_classes.EmptyMetaDataInformation]

      

   .. py:attribute:: dict_of_storage_meta_data_data_frames
      :type: dict[str, dict[ethos_penalps.data_classes.Commodity, ethos_penalps.data_classes.StorageDataFrameMetaInformation | ethos_penalps.data_classes.EmptyMetaDataInformation]]

      

   .. py:attribute:: dict_of_process_step_data_frames
      :type: dict[str, ethos_penalps.data_classes.ProcessStepDataFrameMetaInformation | ethos_penalps.data_classes.EmptyMetaDataInformation]

      

   .. py:attribute:: path_to_stream_xlsx_file
      :type: Optional[str]
      :value: ''

      

   .. py:attribute:: path_to_process_state_xlsx_file
      :type: Optional[str]
      :value: ''

      

   .. py:method:: get_stream_meta_data_by_name(stream_name: str) -> ethos_penalps.stream.StreamDataFrameMetaInformation | ethos_penalps.data_classes.EmptyMetaDataInformation


   .. py:method:: get_process_step_meta_data_by_name(process_step_name: str) -> ethos_penalps.data_classes.ProcessStepDataFrameMetaInformation | ethos_penalps.data_classes.EmptyMetaDataInformation


   .. py:method:: get_storage_meta_data_by_name(storage_name: str) -> ethos_penalps.data_classes.StorageDataFrameMetaInformation | ethos_penalps.data_classes.EmptyMetaDataInformation


   .. py:method:: convert_temporary_production_plan_to_load_profile(temporary_production_plan: OutputBranchProductionPlan)


   .. py:method:: check_process_state_consistency()


   .. py:method:: add_list_of_storage_entries(storage_name: str, commodity: ethos_penalps.data_classes.Commodity, list_of_storage_entries: list[ethos_penalps.data_classes.StorageProductionPlanEntry])


   .. py:method:: add_temporary_production_plan(temporary_production_plan: OutputBranchProductionPlan)


   .. py:method:: convert_stream_entries_to_meta_data_data_frames()


   .. py:method:: initialize_process_step_production_plan_entry(process_step_name: str)


   .. py:method:: initialize_stream_production_plan_entry(stream_name: str)


   .. py:method:: convert_process_state_dictionary_to_list_of_data_frames()


   .. py:method:: convert_list_of_storage_entries_to_meta_data()


   .. py:method:: get_list_object_meta_data(list_of_object_names: list[str], maximum_number_of_rows: int, include_stream_load_profiles: bool = True, include_process_state_load_profiles: bool = True, include_internal_storage_gantt_chart: bool = False, include_external_storage_gantt_chart: bool = True) -> list[list[ethos_penalps.stream.StreamDataFrameMetaInformation | ethos_penalps.data_classes.ProcessStepDataFrameMetaInformation | ethos_penalps.data_classes.LoadProfileDataFrameMetaInformation | ethos_penalps.data_classes.StorageDataFrameMetaInformation]]



