MCPcopy
hub / github.com/Nuitka/Nuitka / attemptRecursion

Method attemptRecursion

nuitka/nodes/ModuleNodes.py:79–145  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

77 return False
78
79 def attemptRecursion(self):
80 # Make sure the package is recursed to if any
81 package_name = self.module_name.getPackageName()
82 if package_name is None or package_name.getTopLevelPackageName() == "":
83 return ()
84
85 # Return the list of newly added modules.
86
87 package = getModuleByName(package_name)
88
89 if package_name is not None and package is None:
90 (
91 _package_name,
92 package_filename,
93 package_module_kind,
94 finding,
95 ) = locateModule(
96 module_name=package_name,
97 parent_package=None,
98 level=0,
99 )
100
101 # If we can't find the package for Python3 that is semi-OK, it might be in a
102 # namespace package, these have no init code.
103 if python_version >= 0x300 and not package_filename:
104 return ()
105
106 # TODO: This should be a plugin decision too,
107 # spell-checker: ignore uniconvertor
108 if package_name == "uniconvertor.app.modules":
109 return ()
110
111 assert package_filename is not None, (package_name, finding)
112
113 assert _package_name == package_name, (
114 package_filename,
115 _package_name,
116 package_name,
117 )
118
119 decision, _reason = decideRecursion(
120 using_module_name=self.getFullName(),
121 module_filename=package_filename,
122 module_name=package_name,
123 module_kind=package_module_kind,
124 )
125
126 if decision is not None:
127 package = recurseTo(
128 module_name=package_name,
129 module_filename=package_filename,
130 module_kind=package_module_kind,
131 source_ref=self.source_ref,
132 reason="parent package",
133 using_module_name=self.module_name,
134 )
135
136 if package:

Callers 3

optimizeExtensionModuleFunction · 0.80
computeModuleMethod · 0.80

Calls 8

getFullNameMethod · 0.95
getModuleByNameFunction · 0.90
locateModuleFunction · 0.90
decideRecursionFunction · 0.90
recurseToFunction · 0.90
addUsedModuleFunction · 0.90
getPackageNameMethod · 0.80

Tested by

no test coverage detected