Hi, I'm developing a reusable app splited into modules. The end user chooses what modules wants to keep installed. Most of this modules are quite independent from each other, but I have one of them (called moduleP) with a pretty strong dependency with another another(called moduleBase). So I need to change some of the moduleBase behaviour whenever moduleP is installed.
What is the best practice to resolve this dependency in a reusable scenario? Where should the specific moduleP code for moduleBase live? in moduleP or in moduleBase? I thought in two possible solutions: 1) moduleP specific code lives in moduleBase an it is called if "is moduleP installed": class moduleBase(otherClass): def method(self): super(moduleBase, self).method() # moduleBase stuff . . if 'moduleP' in INSTALLED_MODULES: # moduleP stuff . . 2) moduleP code lives in moduleP and it swaps moduleBase method with their own, like this: # backup moduleBase method moduleBase.back_methodBase = moduleBase.method def Pmethod(self): # calls moduleBase.method self.back_methodBase_method # moduleP stuff . . # swap moduleP Pmethod moduleBase.method = Pmethod I'm missing some other mechanism to achieve this? Which one do you think is best? Many thanks!! -- http://mail.python.org/mailman/listinfo/python-list