MCPcopy Index your code
hub / github.com/pyinstaller/pyinstaller / get_code_using

Method get_code_using

PyInstaller/depend/analysis.py:780–808  ·  view source on GitHub ↗

Find modules that import a given **module**.

(self, module: str)

Source from the content-addressed store, hash-verified

778 self.add_edge(self._top_script_node, node)
779
780 def get_code_using(self, module: str) -> dict:
781 """
782 Find modules that import a given **module**.
783 """
784 co_dict = {}
785 pure_python_module_types = PURE_PYTHON_MODULE_TYPES | {
786 'Script',
787 }
788 node = self.find_node(module)
789 if node:
790 referrers = self.incoming(node)
791 for r in referrers:
792 # Under python 3.7 and earlier, if `module` is added to hidden imports, one of referrers ends up being
793 # None, causing #3825. Work around it.
794 if r is None:
795 continue
796 # Ensure that modulegraph objects have 'code' attribute.
797 if type(r).__name__ not in pure_python_module_types:
798 continue
799 identifier = r.identifier
800 if identifier == module or identifier.startswith(module + '.'):
801 # Skip self references or references from `modules`'s own submodules.
802 continue
803 # The code object may be None if referrer ends up shadowed by eponymous directory that ends up treated
804 # as a namespace package. See #6873 for an example.
805 if r.code is None:
806 continue
807 co_dict[r.identifier] = r.code
808 return co_dict
809
810 def metadata_required(self) -> set:
811 """

Callers 5

test_get_co_using_ctypesFunction · 0.95
_metadata_fromMethod · 0.95
assembleMethod · 0.45

Calls 2

incomingMethod · 0.80
find_nodeMethod · 0.45

Tested by 2

test_get_co_using_ctypesFunction · 0.76