class_docstr: Configure TF Encrypted to use threads on the local CPU.
  
  Each thread instantiates a different Player to simulate secure computations
  without requiring networking. Mostly intended for development/debugging use.
  
  By default new players will be added when looked up for the first time;
  this is useful for  instance to get a complete list of players involved
  in a particular computation (see `auto_add_unknown_players`).
  
  :param (str) player_names: List of players to be used in the session.
  :param str job_name: The name of the job.
  :param bool auto_add_unknown_players: Auto-add player on first lookup.
code: def add_player(self, name):
      index = len(self._players)
      dv_str = "/job:{job_name}/replica:0/task:0/device:CPU:0"
      player = Player(
          name=name,
          index=index,
          device_name=dv_str.format(job_name=self._job_name),
      )
      self._players.append(player)
      return player
  
imports: import json
  import logging
  import math
  from abc import ABC
  from abc import abstractmethod
  from collections import OrderedDict
  from pathlib import Path
  import tensorflow
  from .player import Player
label_desc: Use image node_id 2 for calling the LocalConfig obj's underlying member method code with example usage: obj.add_player(name) and returns: player