In this comment, we learned that typeshed is too constrained on its spec for sys.meta_path, expecting instances of MetaPathFinder, whereas the existing values are of Type[MetaPathFinder], but more importantly, the objects there need not be instances of any particular class, but must conform to a protocol (having a .find_spec() or .find_module() on Python 3 and having a .find_module() on Python 2).
In this comment, we learned that typeshed is too constrained on its spec for
sys.meta_path, expecting instances of MetaPathFinder, whereas the existing values are ofType[MetaPathFinder], but more importantly, the objects there need not be instances of any particular class, but must conform to a protocol (having a.find_spec()or.find_module()on Python 3 and having a.find_module()on Python 2).