[docs]deflog_once(message:str,level:Union[str,int]=logging.INFO,logger:Optional[logging.Logger]=None,):""" Log a message only once (based on the message content and the source code location). Args: message (str): message to log level (str or int): log level, could be "critical", "error", "warning", "info", "debug" or corresponding int value (default: "info") """frame=getframeinfo(stack()[1][0])key=(frame.filename,frame.lineno,message)ifkeynotin_has_logged:ifisinstance(level,str):level=_name_to_level[level.lower()]ifloggerisNone:logger=_default_loggerlogger.log(level,message)_has_logged.add(key)