MCPcopy
hub / github.com/Nuitka/Nuitka / computeModule

Method computeModule

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

Source from the content-addressed store, hash-verified

562 return result.replace(")", "").replace("(", "")
563
564 def computeModule(self):
565 self.restartTraversal()
566
567 old_collection = self.trace_collection
568
569 self.trace_collection = TraceCollectionModule(
570 self,
571 very_trusted_module_variables=(
572 old_collection.getVeryTrustedModuleVariables()
573 if old_collection is not None
574 else {}
575 ),
576 old_collection=old_collection,
577 )
578
579 module_body = self.subnode_body
580
581 if module_body is not None:
582 result = module_body.computeStatementsSequence(
583 trace_collection=self.trace_collection
584 )
585
586 if result is not module_body:
587 self.setChildBody(result)
588
589 self.trace_collection.performDelayedWork()
590
591 self.attemptRecursion()
592
593 # We determine the trusted module variable for use on next turnaround to provide functions with traces for them.
594 very_trusted_module_variables = {}
595 for module_variable in self.locals_scope.getLocalsRelevantVariables():
596 very_trusted_node = self.trace_collection.getVariableCurrentTrace(
597 module_variable
598 ).getAttributeNodeVeryTrusted()
599 if very_trusted_node is not None:
600 very_trusted_module_variables[module_variable] = very_trusted_node
601
602 if self.trace_collection.updateVeryTrustedModuleVariables(
603 very_trusted_module_variables
604 ):
605 self.trace_collection.signalChange(
606 tags="trusted_module_variables",
607 message="Trusting module variable(s) '%s'"
608 % ",".join(
609 variable.getName()
610 for variable in self.trace_collection.getVeryTrustedModuleVariables()
611 ),
612 source_ref=self.source_ref,
613 )
614
615 updateVariablesFromCollection(
616 old_collection, self.trace_collection, self.source_ref
617 )
618
619 # Indicate if this is pass 1 for the module as return value.
620 was_complete = not self.locals_scope.complete
621

Callers 1

Calls 15

restartTraversalMethod · 0.95
getUsedFunctionsMethod · 0.95
onNodeMethod · 0.95
OrderedSetClass · 0.90
performDelayedWorkMethod · 0.80
attemptRecursionMethod · 0.80
signalChangeMethod · 0.80

Tested by

no test coverage detected