summaryrefslogtreecommitdiffstats
path: root/Mac/Tools/macfreeze/macmodulefinder.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Tools/macfreeze/macmodulefinder.py')
-rw-r--r--Mac/Tools/macfreeze/macmodulefinder.py112
1 files changed, 0 insertions, 112 deletions
diff --git a/Mac/Tools/macfreeze/macmodulefinder.py b/Mac/Tools/macfreeze/macmodulefinder.py
deleted file mode 100644
index 3f4e0b7..0000000
--- a/Mac/Tools/macfreeze/macmodulefinder.py
+++ /dev/null
@@ -1,112 +0,0 @@
-"""macmodulefinder - Find modules used in a script. Only slightly
-mac-specific, really."""
-
-import sys
-import os
-
-import directives
-
-try:
- # This will work if we are frozen ourselves
- import modulefinder
-except ImportError:
- # And this will work otherwise
- _FREEZEDIR=os.path.join(sys.prefix, ':Tools:freeze')
- sys.path.insert(0, _FREEZEDIR)
- import modulefinder
-
-#
-# Modules that must be included, and modules that need not be included
-# (but are if they are found)
-#
-MAC_INCLUDE_MODULES=['site']
-MAC_MAYMISS_MODULES=['posix', 'os2', 'nt', 'ntpath', 'dos', 'dospath',
- 'win32api', 'ce', '_winreg',
- 'nturl2path', 'pwd', 'sitecustomize',
- 'org.python.core',
- 'riscos', 'riscosenviron', 'riscospath'
- ]
-
-# An exception:
-Missing="macmodulefinder.Missing"
-
-class Module(modulefinder.Module):
-
- def gettype(self):
- """Return type of module"""
- if self.__path__:
- return 'package'
- if self.__code__:
- return 'module'
- if self.__file__:
- return 'dynamic'
- return 'builtin'
-
-class ModuleFinder(modulefinder.ModuleFinder):
-
- def add_module(self, fqname):
- if self.modules.has_key(fqname):
- return self.modules[fqname]
- self.modules[fqname] = m = Module(fqname)
- return m
-
-def process(program, modules=None, module_files=None, debug=0):
- if modules is None:
- modules = []
- if module_files is None:
- module_files = []
- missing = []
- #
- # Add the standard modules needed for startup
- #
- modules = modules + MAC_INCLUDE_MODULES
- #
- # search the main source for directives
- #
- extra_modules, exclude_modules, optional_modules, extra_path = \
- directives.findfreezedirectives(program)
- for m in extra_modules:
- if os.sep in m:
- # It is a file
- module_files.append(m)
- else:
- modules.append(m)
- # collect all modules of the program
- path = sys.path[:]
- dir = os.path.dirname(program)
- path[0] = dir # "current dir"
- path = extra_path + path
- #
- # Create the module finder and let it do its work
- #
- modfinder = ModuleFinder(path,
- excludes=exclude_modules, debug=debug)
- for m in modules:
- modfinder.import_hook(m)
- for m in module_files:
- modfinder.load_file(m)
- modfinder.run_script(program)
- module_dict = modfinder.modules
- #
- # Tell the user about missing modules
- #
- maymiss = exclude_modules + optional_modules + MAC_MAYMISS_MODULES
- for m in modfinder.badmodules.keys():
- if not m in maymiss:
- if debug > 0:
- print 'Missing', m
- missing.append(m)
- #
- # Warn the user about unused builtins
- #
- for m in sys.builtin_module_names:
- if m in ('__main__', '__builtin__'):
- pass
- elif not module_dict.has_key(m):
- if debug > 0:
- print 'Unused', m
- elif module_dict[m].gettype() != 'builtin':
- # XXXX Can this happen?
- if debug > 0:
- print 'Conflict', m
- return module_dict, missing