import os, sys try: import MiscUtils except ImportError: # When the Webware tarball unravels, # the components sit next to each other sys.path.append(os.path.abspath(os.pardir)) import MiscUtils from MiscUtils.NamedValueAccess import NamedValueAccess try: # for Python < 2.2 object except NameError: class object: pass class Object(object, NamedValueAccess): """Object is the root class for all classes in the WebKit. This is a placeholder for any future functionality that might be appropriate for all objects in the framework. """ def __init__(self): """Initializes the object. Subclasses should invoke super.""" pass def deprecated(self, method): """Output a deprecation warning. The implementation of WebKit sometimes invokes this method which prints a warning that the method you are using has been deprecated. This method expects that deprecated methods say so at the beginning of their doc string and terminate that msg with @. For example: DEPRECATED: Class.foo() on 01/24/01 in ver 0.5. Use Class.bar() instead. @ Putting this information in the doc string is important for accuracy in the generated docs. Example call: self.deprecated(self.foo) """ docString = method.__doc__ if docString: msg = docString.split('@')[0] msg = '\n'.join(map(lambda s: s.strip(), msg.splitlines())) else: msg = 'DEPRECATED: %s (no doc string)' % method print msg try: from traceback import format_stack print format_stack(limit =3)[0] except Exception: print 'Could not determine calling function.' # 2000-05-21 ce: Sometimes used for debugging: # def __del__(self): print '>> del', self