code: def show_doc_from_name(mod_name, ft_name:str, doc_string:bool=True, arg_comments:dict={}, alt_doc_string:str=''):
      "Show documentation for `ft_name`, see `show_doc`."
      mod = import_mod(mod_name)
      splits = str.split(ft_name, '.')
      assert hasattr(mod, splits[0]), print(f"Module {mod_name} doesn't have a function named {splits[0]}.")
      elt = getattr(mod, splits[0])
      for i,split in enumerate(splits[1:]):
          assert hasattr(elt, split), print(f"Class {'.'.join(splits[:i+1])} doesn't have a function named {split}.")
          elt = getattr(elt, split)
      show_doc(elt, doc_string, ft_name, arg_comments, alt_doc_stringf show_doc_from_name(mod_name, ft_name:str, doc_string:bool=True, arg_comments:dict={}, alt_doc_string:str=''):
      "Show documentation for `ft_name`, see `show_doc`."
      mod = import_mod(mod_name)
      splits = str.split(ft_name, '.')
      assert hasattr(mod, splits[0]), print(f"Module {mod_name} doesn't have a function named {splits[0]}.")
      elt = getattr(mod, splits[0])
      for i,split in enumerate(splits[1:]):
          assert hasattr(elt, split), print(f"Class {'.'.join(splits[:i+1])} doesn't have a function named {split}.")
          elt = getattr(elt, split)
      show_doc(elt, doc_string, ft_name, arg_comments, alt_doc_string)
docs: Show documentation for `ft_name`, see `show_doc`.