code: def name(value, known_modules=[]):
      '''Return a name that can be imported, to serialize/deserialize an object'''
      if value is None:
          return 'None'
      if not isinstance(value, type):  # Get the class name first
          value = type(value)
      tname = value.__name__
      if hasattr(builtins, tname):
          return tname
      modname = value.__module__
      if modname == '__main__':
          return tname
      if known_modules and modname in known_modules:
          return tname
      for kmod in known_modules:
          if not kmod:
              continue
          module = importlib.import_module(kmod)
          if hasattr(module, tname):
              return tname
      return '{}.{}'.format(modname, tnamef name(value, known_modules=[]):
      '''Return a name that can be imported, to serialize/deserialize an object'''
      if value is None:
          return 'None'
      if not isinstance(value, type):  # Get the class name first
          value = type(value)
      tname = value.__name__
      if hasattr(builtins, tname):
          return tname
      modname = value.__module__
      if modname == '__main__':
          return tname
      if known_modules and modname in known_modules:
          return tname
      for kmod in known_modules:
          if not kmod:
              continue
          module = importlib.import_module(kmod)
          if hasattr(module, tname):
              return tname
      return '{}.{}'.format(modname, tname)
docs: Return a name that can be imported, to serialize/deserialize an object