229 |
print "RELOAD" |
print "RELOAD" |
230 |
|
|
231 |
if 1: |
if 1: |
232 |
# Reload gfx.* modules |
# Force reload of all gfx.* modules |
233 |
|
|
234 |
mods = sys.modules.keys() |
mods = sys.modules.keys() |
235 |
mods.sort() |
mods.sort() |
236 |
|
|
237 |
# XXX: simply deleting the modules forces a reload, |
# XXX: simply deleting the modules forces a reload, |
238 |
# but some modules may want to cache data in globals over reloads |
# but some modules may want to cache data in globals over reloads |
239 |
#for mod in mods: |
# so we check for a "__do_not_delete__" directive. |
240 |
# del sys.modules[mod] |
# Note: such modules must reload dependencies themselves |
241 |
|
|
242 |
|
for modname in mods: |
243 |
|
mod = sys.modules[modname] |
244 |
|
if hasattr(mod, "__do_not_delete__"): |
245 |
|
print "Reloading", modname |
246 |
|
reload(mod) |
247 |
|
|
248 |
|
for modname in mods: |
249 |
|
mod = sys.modules[modname] |
250 |
|
if not hasattr(mod, "__do_not_delete__"): |
251 |
|
if modname[:4] == "gfx." and hasattr(mod, "__file__"): |
252 |
|
print "Deleting", modname |
253 |
|
del sys.modules[modname] |
254 |
|
|
255 |
# XXX: need to reload twice so that "from foo import bar" |
# XXX: need to reload twice so that "from foo import bar" |
256 |
# in a reloaded module can get the newer version even if |
# in a reloaded module can get the newer version even if |
257 |
# foo is later in the list and has not yet been reloaded |
# foo is later in the list and has not yet been reloaded |
258 |
for iter in range(0,2): |
#for iter in range(0,2): |
259 |
for mod in mods: |
# for mod in mods: |
260 |
if mod[:4] == "gfx." and hasattr(sys.modules[mod], "__file__"): |
# if mod[:4] == "gfx." and hasattr(sys.modules[mod], "__file__"): |
261 |
print "Reloading", mod |
# print "Reloading", mod |
262 |
reload(sys.modules[mod]) |
# reload(sys.modules[mod]) |
263 |
|
|
264 |
try: |
try: |
265 |
exec open(scenefile) in globals(), globals() |
exec open(scenefile) in globals(), globals() |