code: def audiolazy_namer(name):
    
    sp_name = name.split(".")
    try:
  
      # Find the audiolazy module name
      data = getattr(audiolazy, sp_name[0])
      if isinstance(data, audiolazy.StrategyDict):
        module_name = data.default.__module__
      else:
        module_name = data.__module__
        if not module_name.startswith("audiolazy"): # Decorated math, cmath, ...
          del module_name
          for mname in audiolazy.__modules__:
            if sp_name[0] in getattr(audiolazy, mname).__all__:
              module_name = "audiolazy." + mname
              break
  
      # Now gets the referenced item
      location = ".".join([module_name] + sp_name)
      for sub_name in sp_name[1:]:
        data = getattr(data, sub_name)
  
      # Finds the role to be used for referencing
      type_dict = OrderedDict([
        (audiolazy.StrategyDict, "obj"),
        (Exception, "exc"),
        (types.MethodType, "meth"),
        (types.FunctionType, "func"),
        (types.ModuleType, "mod"),
        (property, "attr"),
        (type, "class"),
      ])
      role = [v for k, v in iteritems(type_dict) if isinstance(data, k)][0]
  
    # Not found
    except AttributeError:
      return ":obj:`{0}`".format(name)
  
    # Found!
    else:
      return ":{0}:`{1} <{2}>`".format(role, name, location)
docs: Process a name to get Sphinx reStructuredText internal references like
    ``:obj:`name <audiolazy.lazy_something.name>``` for a given name string,
    specific for AudioLazy.