class_docstr: This is the `Recorder` class for logging the experiments. The API is designed similar to mlflow.
  (The link: https://mlflow.org/docs/latest/python_api/mlflow.html)
  
  The status of the recorder can be SCHEDULED, RUNNING, FINISHED, FAILED.
class_docstr_tok: ["This","is","the","`","Recorder","`","class","for","logging","the","experiments",".","The","API","is","designed","similar","to","mlflow",".","(","The","link",":","https",":","\/\/mlflow.org\/docs\/latest\/python_api\/mlflow.html",")","The","status","of","the","recorder","can","be","SCHEDULED",",","RUNNING",",","FINISHED",",","FAILED","."]
docstr: List all the artifacts of a recorder.
  
  Parameters
  ----------
  artifact_path : str
      the relative path for the artifact to be stored in the URI.
  
  Returns
  -------
  A list of artifacts information (name, path, etc.) that being stored.
code: def list_artifacts(self, artifact_path: str = None):
      """
      List all the artifacts of a recorder.
  
      Parameters
      ----------
      artifact_path : str
          the relative path for the artifact to be stored in the URI.
  
      Returns
      -------
      A list of artifacts information (name, path, etc.) that being stored.
      """
      raise NotImplementedError(
          f"Please implement the `list_artifacts` method."
      )
  
imports: import os
  import sys
  from typing import Optional
  import mlflow
  import shutil
  import pickle
  import tempfile
  import subprocess
  from pathlib import Path
  from datetime import datetime
  from qlib.utils.serial import Serializable
  from qlib.utils.exceptions import LoadObjectError
  from qlib.utils.paral import AsyncCaller
  from ..log import TimeInspector, get_module_logger
  from mlflow.store.artifact.azure_blob_artifact_repo import AzureBlobArtifactRepository
label_desc: Use image node_id 16 for calling the Recorder obj's underlying member method code with example usage: obj.list_artifacts(artifact_path) without return types