class_docstr: Logs parameter and run information throughout into a file during
  optimization.
  
  Parameters
  ----------
  filepath: str or pathlib.Path
      the path to dump data to
  append: bool
      whether to append the file (otherwise it replaces it)
  order: int
      order of the internal/model parameters to extract
  
  Example
  -------
  
  .. code-block:: python
  
      logger = ParametersLogger(filepath)
      optimizer.register_callback("tell",  logger)
      optimizer.minimize()
      list_of_dict_of_data = logger.load()
  
  Note
  ----
  Arrays are converted to lists
class_docstr_tok: ["Logs","parameter","and","run","information","throughout","into","a","file","during","optimization",".","Parameters","--","--","--","--","--","filepath",":","str","or","pathlib.Path","the","path","to","dump","data","to","append",":","bool","whether","to","append","the","file","(","otherwise","it","replaces","it",")","order",":","int","order","of","the","internal\/model","parameters","to","extract","Example","--","--","--","-","..","code-block",":",":","python","logger","=","ParametersLogger","(","filepath",")","optimizer.register_callback","(","``","tell","''",",","logger",")","optimizer.minimize","(",")","list_of_dict_of_data","=","logger.load","(",")","Note","--","--","Arrays","are","converted","to","lists"]
docstr: Converts the logs into an hiplot experiment for display.
  
  Parameters
  ----------
  max_list_elements: int
      maximum number of elements of list/arrays to export (only the first elements are extracted)
  
  Example
  -------
  .. code-block:: python
  
      exp = logs.to_hiplot_experiment()
      exp.display(force_full_width=True)
  
  Note
  ----
  - You can easily change the axes of the XY plot:
    :code:`exp.display_data(hip.Displays.XY).update({'axis_x': '0#0', 'axis_y': '0#1'})`
  - For more context about hiplot, check:
  
    - blogpost: https://ai.facebook.com/blog/hiplot-high-dimensional-interactive-plots-made-easy/
    - github repo: https://github.com/facebookresearch/hiplot
    - documentation: https://facebookresearch.github.io/hiplot/
code: def to_hiplot_experiment(
      self, max_list_elements: int = 24
  ) -> tp.Any:  # no typing here since Hiplot is not a hard requirement
      """Converts the logs into an hiplot experiment for display.
  
      Parameters
      ----------
      max_list_elements: int
          maximum number of elements of list/arrays to export (only the first elements are extracted)
  
      Example
      -------
      .. code-block:: python
  
          exp = logs.to_hiplot_experiment()
          exp.display(force_full_width=True)
  
      Note
      ----
      - You can easily change the axes of the XY plot:
        :code:`exp.display_data(hip.Displays.XY).update({'axis_x': '0#0', 'axis_y': '0#1'})`
      - For more context about hiplot, check:
  
        - blogpost: https://ai.facebook.com/blog/hiplot-high-dimensional-interactive-plots-made-easy/
        - github repo: https://github.com/facebookresearch/hiplot
        - documentation: https://facebookresearch.github.io/hiplot/
      """
      # pylint: disable=import-outside-toplevel
      try:
          import hiplot as hip
      except ImportError as e:
          raise ImportError(
              f"{self.__class__.__name__} requires hiplot which is not installed by default "
              "(pip install hiplot)"
          ) from e
      exp = hip.Experiment()
      for xp in self.load_flattened(
          max_list_elements=max_list_elements
      ):
          dp = hip.Datapoint(
              from_uid=xp.get("#parents_uids#0"),
              uid=xp["#uid"],
              values={
                  x: y
                  for x, y in xp.items()
                  if not (
                      x.startswith("#") and ("uid" in x or "ask" in x)
                  )
              },
          )
          exp.datapoints.append(dp)
      exp.display_data(hip.Displays.XY).update(
          {"axis_x": "#num-tell", "axis_y": "#loss"}
      )
      # for the record, some more options:
      exp.display_data(hip.Displays.XY).update(
          {"lines_thickness": 1.0, "lines_opacity": 1.0}
      )
      return exp
  
imports: import json
  import time
  import warnings
  import inspect
  import datetime
  import logging
  from pathlib import Path
  import numpy
  import nevergrad.common.typing
  from nevergrad.common import errors
  from nevergrad.parametrization import parameter
  from nevergrad.parametrization import helpers
  from .None import base
label_desc: Use image node_id 5 for calling the ParametersLogger obj's underlying member method code with example usage: obj.to_hiplot_experiment(max_list_elements) and returns: exp