bpo-44648: Fix error type in inspect.getsource() in interactive session (GH-27171) (GH-27495)

(cherry picked from commit 48a62559dfaf775e4f1cc56b19379c799e8e2587)

Co-authored-by: andrei kulakov <andrei.avk@gmail.com>
diff --git a/Lib/inspect.py b/Lib/inspect.py
index 750fd45..7aedcf1 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -781,6 +781,8 @@ def getfile(object):
             module = sys.modules.get(object.__module__)
             if getattr(module, '__file__', None):
                 return module.__file__
+            if object.__module__ == '__main__':
+                raise OSError('source code not available')
         raise TypeError('{!r} is a built-in class'.format(object))
     if ismethod(object):
         object = object.__func__