[EMAIL PROTECTED] wrote: > I like to define a big dictionary in two > files and use it my main file, build.py > > I want the definition to go into build_cfg.py and build_cfg_static.py. > > build_cfg_static.py: > target_db = {} > target_db['foo'] = 'bar' > > build_cfg.py > target_db['xyz'] = 'abc' > > In build.py, I like to do > from build_cfg_static import * > from build_cfg import * > > ...now use target_db to access all elements. The problem looks like, I > can't > have the definition of target_db split across two files. I think they > reside in different name spaces?
Yes. As it stands, build_cfg.py will not compile to bytecode (NameError: name 'target_db' is not defined). Unless you're doing something ugly like exec() on the its contents, .py files need to be valid before they can be imported. > Is there any way I can have the same > dictionary definition split across two files? Try this: # build_cfg_static.py: target_db = {} target_db['foo'] = 'bar' # build_cfg.py: target_db = {} target_db['xyz'] = 'abc' # build.py: from build_cfg_static import target_db from build_cfg import target_db as merge_db target_db.update(merge_db) --Ben -- http://mail.python.org/mailman/listinfo/python-list