nbdev icon indicating copy to clipboard operation
nbdev copied to clipboard

`show_doc` rendering issues with TorchScript functions

Open warner-benjamin opened this issue 3 years ago • 1 comments

show_doc currently has rendering issues with TorchScript functions.

import torch
from nbdev.showdoc import *

@torch.jit.script
def test(p:torch.Tensor):
    "Test torchscript function"
    return p

show_doc(test)

results in the following output, without a source link in the documentation

## ScriptFunction object at 0x7fc550c680e0>
Test torchscript function

switching to show_doc(test.name), where name is a torchscript function property, displays the method name and github source code link, but not the docstring:

## test
test

warner-benjamin avatar Oct 24 '22 04:10 warner-benjamin

It looks like @torch.jit.script really clobbers your function e.g. it sets __module__ = 'torch.jit' and deletes both __name__ and __qualname__. I'm not sure how to resolve that...

One workaround might be to show_doc on the original func then call torch.jit.script on it in another cell:

#|export
def test(p:torch.Tensor):
    "Test torchscript function"
    return p

show_doc(test)
test = torch.jit.script(test)

seeM avatar Nov 08 '22 11:11 seeM