Added an "optional" directive, that will include a module if it is available
but not complain if it isn't (giving an ImportError when the frozen code is run).
This commit is contained in:
parent
c0d2d51dd2
commit
fb278a5e6f
|
@ -18,6 +18,7 @@ REPROG=re.compile(DIRECTIVE_RE)
|
|||
def findfreezedirectives(program):
|
||||
extra_modules = []
|
||||
exclude_modules = []
|
||||
optional_modules = []
|
||||
extra_path = []
|
||||
progdir, filename = os.path.split(program)
|
||||
fp = open(program)
|
||||
|
@ -30,10 +31,12 @@ def findfreezedirectives(program):
|
|||
extra_modules.append(argument)
|
||||
elif directive == 'exclude':
|
||||
exclude_modules.append(argument)
|
||||
elif directive == 'optional':
|
||||
optional_modules.append(argument)
|
||||
elif directive == 'path':
|
||||
argument = os.path.join(progdir, argument)
|
||||
extra_path.append(argument)
|
||||
else:
|
||||
print '** Unknown directive', line
|
||||
return extra_modules, exclude_modules, extra_path
|
||||
return extra_modules, exclude_modules, optional_modules, extra_path
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ def process(program, modules=[], module_files = [], debug=0):
|
|||
#
|
||||
# search the main source for directives
|
||||
#
|
||||
extra_modules, exclude_modules, extra_path = \
|
||||
extra_modules, exclude_modules, optional_modules, extra_path = \
|
||||
directives.findfreezedirectives(program)
|
||||
for m in extra_modules:
|
||||
if os.sep in m:
|
||||
|
@ -84,7 +84,7 @@ def process(program, modules=[], module_files = [], debug=0):
|
|||
#
|
||||
# Tell the user about missing modules
|
||||
#
|
||||
maymiss = exclude_modules + MAC_MAYMISS_MODULES
|
||||
maymiss = exclude_modules + optional_modules + MAC_MAYMISS_MODULES
|
||||
for m in modfinder.badmodules.keys():
|
||||
if not m in maymiss:
|
||||
if debug > 0:
|
||||
|
|
Loading…
Reference in New Issue