"""Docs: https://docs.fast.ai/pytorch_doc.html.md""" # AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/99_pytorch_doc.ipynb. # %% auto #0 __all__ = ['PYTORCH_URL', 'pytorch_doc_link'] # %% ../nbs/99_pytorch_doc.ipynb #9e4bb500 from types import ModuleType # %% ../nbs/99_pytorch_doc.ipynb #7a4d218c PYTORCH_URL = 'https://pytorch.org/docs/stable/' # %% ../nbs/99_pytorch_doc.ipynb #e3b8ce13 def _mod2page( mod:ModuleType, # A PyTorch module ) -> str: "Get the webpage name for a PyTorch module" if mod == Tensor: return 'tensors.html' name = mod.__name__ name = name.replace('torch.', '').replace('utils.', '') if name.startswith('nn.modules'): return 'nn.html' return f'{name}.html' # %% ../nbs/99_pytorch_doc.ipynb #de4309e0 import importlib # %% ../nbs/99_pytorch_doc.ipynb #597733c4 def pytorch_doc_link( name:str # Name of a PyTorch module, class or function ) -> (str, None): "Get the URL to the documentation of a PyTorch module, class or function" if name.startswith('F'): name = 'torch.nn.functional' + name[1:] if not name.startswith('torch.'): name = 'torch.' + name if name == 'torch.Tensor': return f'{PYTORCH_URL}tensors.html' try: mod = importlib.import_module(name) return f'{PYTORCH_URL}{_mod2page(mod)}' except: pass splits = name.split('.') mod_name,fname = '.'.join(splits[:-1]),splits[-1] if mod_name == 'torch.Tensor': return f'{PYTORCH_URL}tensors.html#{name}' try: mod = importlib.import_module(mod_name) page = _mod2page(mod) return f'{PYTORCH_URL}{page}#{name}' except: return None