code: def pop_choice(params: Dict[str, Any],
                 key: str,
                 choices: List[Any],
                 default_to_first_choice: bool = False,
                 history: str = "?.") -> Any:
      
      value = Params(params, history).pop_choice(key, choices, default_to_first_choice)
      return value
docs: Performs the same function as :func:`Params.pop_choice`, but is required in order to deal with
      places that the Params object is not welcome, such as inside Keras layers.  See the docstring
      of that method for more detail on how this function works.
  
      This method adds a ``history`` parameter, in the off-chance that you know it, so that we can
      reproduce :func:`Params.pop_choice` exactly.  We default to using "?." if you don't know the
      history, so you'll have to fix that in the log if you want to actually recover the logged
      parameters.