1677 @param ignoreBuiltinModules flag indicating to ignore the builtin modules |
1677 @param ignoreBuiltinModules flag indicating to ignore the builtin modules |
1678 @type bool |
1678 @type bool |
1679 @return reference to a Module object containing the parsed |
1679 @return reference to a Module object containing the parsed |
1680 module information |
1680 module information |
1681 @rtype Module |
1681 @rtype Module |
|
1682 @exception ImportError raised to indicate an unsupported source code type |
1682 """ |
1683 """ |
1683 global _modules |
1684 global _modules |
1684 |
1685 |
1685 _extensions = ( |
1686 _extensions = ( |
1686 [".py", ".pyw", ".pyi", ".ptl", ".rb"] if extensions is None else extensions[:] |
1687 [".py", ".pyw", ".pyi", ".ptl", ".rb"] if extensions is None else extensions[:] |
1687 ) |
1688 ) |
1688 modname = module |
1689 modname = module |
1689 isRemoteFileName = FileSystemUtilities.isRemoteFileName(module) |
1690 isRemoteFileName = FileSystemUtilities.isRemoteFileName(module) |
1690 |
1691 |
1691 if isRemoteFileName: |
1692 if isRemoteFileName: |
1692 fsInterface = ericApp().getObject("EricServer").getServiceInterface("FileSystem") |
1693 fsInterface = ( |
|
1694 ericApp().getObject("EricServer").getServiceInterface("FileSystem") |
|
1695 ) |
1693 module, extension = fsInterface.splitext(fsInterface.basename(module)) |
1696 module, extension = fsInterface.splitext(fsInterface.basename(module)) |
1694 else: |
1697 else: |
1695 with contextlib.suppress(ValueError): |
1698 with contextlib.suppress(ValueError): |
1696 _extensions.remove(".py") |
1699 _extensions.remove(".py") |
1697 |
1700 |
1738 |
1741 |
1739 if extension == ".ptl": |
1742 if extension == ".ptl": |
1740 moduleType = PTL_SOURCE |
1743 moduleType = PTL_SOURCE |
1741 elif extension == ".rb": |
1744 elif extension == ".rb": |
1742 moduleType = RB_SOURCE |
1745 moduleType = RB_SOURCE |
1743 elif extension in _extensions: |
1746 elif extension in _extensions: # noqa: Y106 |
1744 moduleType = PY_SOURCE |
1747 moduleType = PY_SOURCE |
1745 else: |
1748 else: |
1746 raise ImportError |
1749 raise ImportError |
1747 |
1750 |
1748 file = modname |
1751 file = modname |
1775 _modules[modname] = Module(modname, None, None) |
1778 _modules[modname] = Module(modname, None, None) |
1776 return _modules[modname] |
1779 return _modules[modname] |
1777 |
1780 |
1778 mod = Module(modname, file, moduleType) |
1781 mod = Module(modname, file, moduleType) |
1779 with contextlib.suppress(UnicodeError, OSError): |
1782 with contextlib.suppress(UnicodeError, OSError): |
1780 if isRemoteFileName: |
1783 src = ( |
1781 src = ( |
1784 ericApp() |
1782 ericApp() |
1785 .getObject("EricServer") |
1783 .getObject("EricServer") |
1786 .getServiceInterface("FileSystem") |
1784 .getServiceInterface("FileSystem") |
1787 .readEncodedFile(file)[0] |
1785 .readEncodedFile(file)[0] |
1788 if isRemoteFileName |
1786 ) |
1789 else Utilities.readEncodedFile(file)[0] |
1787 else: |
1790 ) |
1788 src = Utilities.readEncodedFile(file)[0] |
|
1789 mod.scan(src) |
1791 mod.scan(src) |
1790 if caching: |
1792 if caching: |
1791 _modules[modname] = mod |
1793 _modules[modname] = mod |
1792 return mod |
1794 return mod |
1793 |
1795 |