Hi I’m trying to debug an unrelated issue and I was trying to construct a very basic test case.
However, I’m getting a different, error when I am running my basic test case that makes me question if I understand the basics of jit compilation.
I defined the following two dummy classes
class Dummy1():
    def __init__(self):
        self.__name__ = "dummy"
    def forward(self, x:Tensor)-> Tuple[Tensor, Optional[Tensor]]:
        return (x,x)

class Dummy2(Dummy1):
    def __init__(self):
        super().__init__()
    def forward(self, x:Tensor)->Tuple[Tensor, Optional[Tensor]]:
        return super.forward(x)

And I get the following error when trying to torch.jit.script an object of Dummy2
>>> import torch
>>> torch.__version__
'1.8.1'
>>> import multihead_attention_window
>>> dummy = multihead_attention_window.Dummy2()
>>> torch.jit.script(dummy)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/psridhar/.pyenv/versions/py3/lib/python3.8/site-packages/torch/jit/_script.py", line 986, in script
    ast = get_jit_def(obj, obj.__name__)
  File "/Users/psridhar/.pyenv/versions/py3/lib/python3.8/site-packages/torch/jit/frontend.py", line 240, in get_jit_def
    sourcelines, file_lineno, filename = get_source_lines_and_file(fn, torch._C.ErrorReport.call_stack())
  File "/Users/psridhar/.pyenv/versions/py3/lib/python3.8/site-packages/torch/_utils_internal.py", line 54, in get_source_lines_and_file
    filename = inspect.getsourcefile(obj)
  File "/Users/psridhar/.pyenv/versions/3.8.1/lib/python3.8/inspect.py", line 696, in getsourcefile
    filename = getfile(object)
  File "/Users/psridhar/.pyenv/versions/3.8.1/lib/python3.8/inspect.py", line 676, in getfile
    raise TypeError('module, class, method, function, traceback, frame, or '
TypeError: module, class, method, function, traceback, frame, or code object was expected, got Dummy2

I googled around and noticed this might be because of a torch version issue? But I’m on torch 1.8.1. What am I missing here?