Maric Michaud wrote: > Le Vendredi 09 Juin 2006 20:06, Ilias Lazaridis a écrit : >> the code below works, but has the limitation that I cannot import the >> syncdb_hook within "django.core.management". > > In [4]: from b import CONS > > In [5]: import b > > In [6]: b.CONS = 3 > > In [7]: CONS > Out[7]: 5 > > In [8]: from b import CONS > > In [9]: CONS > Out[9]: 3 > > So, if you change one module name, a function or a class or a constant, you > must do it before it is imported, or you must reload modules using it. But > either are not always possible, and the later is not what you want to achieve > here as it will re-execute all initialisation code in those modules. > > But think of that, a function is hopefully an object in python, hmmm : > > In [1]: from temp import func > > In [2]: func(5) > Out[2]: 5 > > In [3]: def g(s) : return s*2 > ...: > > In [4]: func.func_code = g.func_code > > In [5]: func(5) > Out[5]: 10 > > hey, that should work !
Great Construct! Much flexibility! I'll try the implementation tomorrow. - The actual Versions of the hooks can be found here: http://case.lazaridis.com/browser/django/rework/syncdb_hook.py?rev=7 http://case.lazaridis.com/browser/django/rework/startproject_hook.py?rev=13 This construct has helped to simplify nearly all simplification goals: http://case.lazaridis.com/wiki/DjangoSchemaEvolution . -- http://lazaridis.com -- http://mail.python.org/mailman/listinfo/python-list