class_docstr: Printer to register as callback in an optimizer, for printing
  best point regularly.
  
  Parameters
  ----------
  print_interval_tells: int
      max number of evaluation before performing another print
  print_interval_seconds: float
      max number of seconds before performing another print
class_docstr_tok: ["Printer","to","register","as","callback","in","an","optimizer",",","for","printing","best","point","regularly",".","Parameters","--","--","--","--","--","print_interval_tells",":","int","max","number","of","evaluation","before","performing","another","print","print_interval_seconds",":","float","max","number","of","seconds","before","performing","another","print"]
code: def __init__(
      self,
      print_interval_tells: int = 1,
      print_interval_seconds: float = 60.0,
  ) -> None:
      assert print_interval_tells > 0
      assert print_interval_seconds > 0
      self._print_interval_tells = int(print_interval_tells)
      self._print_interval_seconds = print_interval_seconds
      self._next_tell = self._print_interval_tells
      self._next_time = time.time() + print_interval_seconds
  
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 1 to create a new OptimizationPrinter object  with example: obj = OptimizationPrinter(print_interval_tells, print_interval_seconds)