code: def is_valid(obj: JSGValidateable, log: Optional[Union[TextIO, Logger]] = None) -> bool:
      
      return obj._is_valid(log)
docs: Determine whether obj is valid
  
      :param obj: Object to validate
      :param log: Logger to record validation failures.  If absent, no information is recorded