コード例 #1
0
ファイル: Plugins.py プロジェクト: txf626/Nuitka
    def _reportImplicitImports(implicit_imports, signal_change):
        from nuitka.importing import Recursion
        from nuitka.importing.Importing import getModuleNameAndKindFromFilename

        for full_name, module_filename in implicit_imports:
            _module_name2, module_kind = getModuleNameAndKindFromFilename(
                module_filename)

            # This will get back to all other plugins allowing them to inhibit it though.
            decision, reason = Recursion.decideRecursion(
                module_filename=module_filename,
                module_name=full_name,
                module_kind=module_kind,
            )

            if decision:
                imported_module, added_flag = Recursion.recurseTo(
                    module_package=full_name.getPackageName(),
                    module_filename=module_filename,
                    module_relpath=relpath(module_filename),
                    module_kind=module_kind,
                    reason=reason,
                )

                addUsedModule(imported_module)

                if added_flag:
                    signal_change(
                        "new_code",
                        imported_module.getSourceReference(),
                        "Recursed to module.",
                    )
コード例 #2
0
ファイル: Plugins.py プロジェクト: psydox/Nuitka
    def _reportImplicitImports(plugin, module, implicit_imports,
                               signal_change):
        from nuitka.importing import Recursion
        from nuitka.importing.Importing import getModuleNameAndKindFromFilename

        for full_name, module_filename in implicit_imports:
            _module_name2, module_kind = getModuleNameAndKindFromFilename(
                module_filename)

            # This will get back to all other plugins allowing them to inhibit it though.
            decision, reason = Recursion.decideRecursion(
                module_filename=module_filename,
                module_name=full_name,
                module_kind=module_kind,
            )

            if decision:
                imported_module = Recursion.recurseTo(
                    signal_change=signal_change,
                    module_name=full_name,
                    module_filename=module_filename,
                    module_kind=module_kind,
                    reason=reason,
                )

                addUsedModule(
                    module=imported_module,
                    using_module=module,
                    usage_tag="plugin:" + plugin.plugin_name,
                    reason=reason,
                    source_ref=module.source_ref,
                )
コード例 #3
0
    def decideRecursion(module_filename, module_name, module_package,
                        module_kind):
        from nuitka.importing import Recursion

        decision, reason = Recursion.decideRecursion(
            module_filename=module_filename,
            module_name=module_name,
            module_package=module_package,
            module_kind=module_kind)

        return decision, reason
コード例 #4
0
ファイル: PluginBase.py プロジェクト: achennu/Nuitka
    def decideRecursion(module_filename, module_name, module_package, module_kind):
        from nuitka.importing import Recursion

        decision, reason = Recursion.decideRecursion(
            module_filename=module_filename,
            module_name=module_name,
            module_package=module_package,
            module_kind=module_kind,
        )

        return decision, reason
コード例 #5
0
ファイル: PluginBase.py プロジェクト: testerclub/Nuitka
    def decideRecursion(module_filename, module_name, module_kind):
        """Decide whether Nuitka should recurse down to a given module.

        Args:
            module_filename: filename
            module_name: full module name
            module_kind: one of "py" or "shlib" (shared library)
        Returns:
            (decision, reason) where decision is either a bool or None, and reason is a string message.
        """
        from nuitka.importing import Recursion

        decision, reason = Recursion.decideRecursion(
            module_filename=module_filename,
            module_name=module_name,
            module_kind=module_kind,
        )

        return decision, reason