def __init__(
      self,
      model: language_model.LanguageModel,
      cooperative_option: str,
      resolution_scene: str,
      production_function: CollectiveActionProductionFunction,
      all_player_names: Sequence[str],
      acting_player_names: Sequence[str],
      players_to_inform: Sequence[str],
      clock_now: Callable[[], datetime.datetime],
      pressure_threshold: float,
      event_resolution_component_key: str = (
          switch_act.DEFAULT_RESOLUTION_COMPONENT_KEY),
      memory_component_key: str = (
          memory_component.DEFAULT_MEMORY_COMPONENT_KEY
      ),
      pre_act_label: str = '',
      logging_channel: logging.LoggingChannel = logging.NoOpLoggingChannel,
      verbose: bool = False,
  ):
    """Initialize a component for computing pressure created by a labor strike.

    Args:
      model: a language model
      cooperative_option: which option choice constitutes cooperation
      resolution_scene: on which scene type should this component be updated
        after the event, i.e. when to check the joint action and compute results
      production_function: pressure produced a function of he number of
        individuals joining the strike
      all_player_names: sequence of names (a superset of the active players)
      acting_player_names: sequence of names of players who act each stage. In
        a labor strike scenario these players would typically be the workers.
        They have to decide whether to join the strike or not.
      players_to_inform: names of players who observe the amount of pressure. In
        a labor strike scenario these players would typically repressent the
        management of the company.
      clock_now: Function to call to get current time.
      pressure_threshold: the threshold above which the boss will feel compelled
        to take action.
      event_resolution_component_key: The name of the event resolution
        component.
      memory_component_key: The name of the memory component.
      pre_act_label: Prefix to add to the output of the component when called
        in `pre_act`.
      logging_channel: The channel to log debug information to.
      verbose: whether to print the full update chain of thought or not
    """
    self._pre_act_label = pre_act_label
    self._logging_channel = logging_channel

    self._model = model
    self._memory_component_key = memory_component_key
    self._event_resolution_component_key = event_resolution_component_key
    self._cooperative_option = cooperative_option
    self._production_function = production_function
    self._all_player_names = all_player_names
    self._acting_player_names = acting_player_names
    self._players_to_inform = players_to_inform
    self._clock_now = clock_now
    self._pressure_threshold = pressure_threshold
    self._resolution_scene = resolution_scene

    self._verbose = verbose

    self._history = []
    self._state = ''
    self._player_scores = {name: 0 for name in self._all_player_names}
    self._latest_action_spec = None

    self.reset()
Initialize a component for computing pressure created by a labor strike.

    Args:
      model: a language model
      cooperative_option: which option choice constitutes cooperation
      resolution_scene: on which scene type should this component be updated
        after the event, i.e. when to check the joint action and compute results
      production_function: pressure produced a function of he number of
        individuals joining the strike
      all_player_names: sequence of names (a superset of the active players)
      acting_player_names: sequence of names of players who act each stage. In
        a labor strike scenario these players would typically be the workers.
        They have to decide whether to join the strike or not.
      players_to_inform: names of players who observe the amount of pressure. In
        a labor strike scenario these players would typically repressent the
        management of the company.
      clock_now: Function to call to get current time.
      pressure_threshold: the threshold above which the boss will feel compelled
        to take action.
      event_resolution_component_key: The name of the event resolution
        component.
      memory_component_key: The name of the memory component.
      pre_act_label: Prefix to add to the output of the component when called
        in `pre_act`.
      logging_channel: The channel to log debug information to.
      verbose: whether to print the full update chain of thought or not
    
concordia/contrib/components/game_master/industrial_action.py