def __init__(
      self,
      model: language_model.LanguageModel,
      memory: associative_memory.AssociativeMemory,
      cooperative_option: str,
      resolution_scene: str,
      production_function: CollectiveActionProductionFunction,
      players: Sequence[deprecated_agent.BasicAgent | entity_agent.EntityAgent],
      acting_player_names: Sequence[str],
      players_to_inform: Sequence[str],
      clock_now: Callable[[], datetime.datetime],
      pressure_threshold: float,
      name: str = 'pressure from industrial action',
      verbose: bool = False,
  ):
    """Initialize a component for computing pressure created by a labor strike.

    Args:
      model: a language model
      memory: an associative memory
      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
      players: sequence of agents (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.
      name: name of this component e.g. Possessions, Account, Property, etc
      verbose: whether to print the full update chain of thought or not
    """
    self._model = model
    self._memory = memory
    self._cooperative_option = cooperative_option
    self._production_function = production_function
    self._players = players
    self._acting_player_names = acting_player_names
    self._players_to_inform = players_to_inform
    self._clock_now = clock_now
    self._name = name
    self._pressure_threshold = pressure_threshold
    self._verbose = verbose

    self._history = []
    self._state = ''
    self._partial_states = {player.name: '' for player in self._players}
    self._player_scores = {player.name: 0 for player in self._players}

    self._resolution_scene = resolution_scene
    self._current_scene = current_scene.CurrentScene(
        name='current scene type',
        memory=self._memory,
        clock_now=self._clock_now,
        verbose=self._verbose,
    )

    self._map_names_to_players = {
        player.name: player for player in self._players}

    self.reset()
    # Set the initial state's string representation.
    self.update()
Initialize a component for computing pressure created by a labor strike.

    Args:
      model: a language model
      memory: an associative memory
      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
      players: sequence of agents (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.
      name: name of this component e.g. Possessions, Account, Property, etc
      verbose: whether to print the full update chain of thought or not
    
concordia/contrib/components/game_master/deprecated/industrial_action.py