:py:mod:`ethos_penalps.capacity_calculator`
===========================================

.. py:module:: ethos_penalps.capacity_calculator


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

Classes
~~~~~~~

.. autoapisummary::

   ethos_penalps.capacity_calculator.CapacityClassifier
   ethos_penalps.capacity_calculator.BatchCapacityClassifier
   ethos_penalps.capacity_calculator.ContinuousCapacityClassifier
   ethos_penalps.capacity_calculator.CapacityCalculatorProcessChain
   ethos_penalps.capacity_calculator.CapacityCalculator
   ethos_penalps.capacity_calculator.CapacityAdjuster




.. py:class:: CapacityClassifier


   Bases: :py:obj:`abc.ABC`

   Helper class that provides a standard way to create an ABC using
   inheritance.

   .. py:attribute:: process_step_name
      :type: str

      

   .. py:attribute:: first_start_time
      :type: datetime.datetime

      

   .. py:attribute:: last_end_time
      :type: datetime.datetime

      

   .. py:attribute:: total_length
      :type: datetime.timedelta

      

   .. py:attribute:: hourly_capacity
      :type: float

      


.. py:class:: BatchCapacityClassifier


   Bases: :py:obj:`CapacityClassifier`

   Helper class that provides a standard way to create an ABC using
   inheritance.

   .. py:attribute:: output_batch_mass
      :type: float

      

   .. py:method:: pretty_print()



.. py:class:: ContinuousCapacityClassifier


   Bases: :py:obj:`CapacityClassifier`

   Helper class that provides a standard way to create an ABC using
   inheritance.

   .. py:attribute:: output_stream_length
      :type: datetime.timedelta

      

   .. py:attribute:: total_output_mass
      :type: numbers.Number

      

   .. py:attribute:: output_to_total_length_ratio
      :type: numbers.Number

      

   .. py:attribute:: stream_rate
      :type: numbers.Number

      

   .. py:method:: pretty_print()


   .. py:method:: determine_required_stream_rate_to_reach_process_step_capacity()



.. py:class:: CapacityCalculatorProcessChain(process_step: ethos_penalps.process_nodes.process_step.ProcessStep)


   .. py:method:: __post_innit__()


   .. py:method:: _create_process_chain() -> ethos_penalps.process_chain.ProcessChain


   .. py:method:: _create_sink() -> ethos_penalps.process_nodes.sink.Sink


   .. py:method:: _create_source() -> ethos_penalps.process_nodes.source.Source


   .. py:method:: add_single_order()



.. py:class:: CapacityCalculator(process_step: ethos_penalps.process_nodes.process_step.ProcessStep)


   .. py:method:: determine_throughput_of_process_step(print_output: bool = True) -> CapacityClassifier


   .. py:method:: create_capacity_classifier() -> CapacityClassifier



.. py:class:: CapacityAdjuster(process_step: ethos_penalps.process_nodes.process_step.ProcessStep)


   .. py:method:: adjust_process_step_capacity(target_rate: numbers.Number)



