    # MiscUtils component
    # Webware for Python
    # See Docs/index.html

    __all__ = ['Configurable', 'DBPool', 'DataTable', 'DictForArgs', 'Error', 'Funcs', 'MixIn', 'NamedValueAccess', 'PropertiesObject', 'unittest']

    try:
        AbstractError  # Python might build this in some day.
    except NameError:
        class AbstractError(NotImplementedError):
            """
            This exception is raised by abstract methods in abstract classes. It
            is a special case of NotImplementedError, that indicates that the
            implementation won't ever be provided at that location in the future
            --instead the subclass should provide it.

            Typical usage:

                from MiscUtils import AbstractError

                class Foo:
                    def bar(self):
                        raise AbstractError, self.__class__

            Note that added the self.__class__ makes the resulting exception
            *much* more useful.
            """
            pass

    # @@ 2002-11-10 ce: SubclassResponsibilityError is deprecated in favor of AbstractError, post 0.7
    SubclassResponsibilityError = AbstractError

    class NoDefault:
        """
        This provides a singleton "thing" which can be used to initialize
        the "default=" arguments for different retrieval methods. For
        example:

            from MiscUtils import NoDefault
            def bar(self, name, default=NoDefault):
                if default is NoDefault:
                    return self._bars[name]  # will raise exception for invalid key
                else:
                    return self._bars.get(name, default)

        The value None does not suffice for "default=" because it does not
        indicate whether or not a value was passed.

        Consistently using this singleton is valuable due to subclassing
        situations:

            def bar(self, name, default=NoDefault):
                if someCondition:
                    return self.specialBar(name)
                else:
                    return SuperClass.bar(name, default)

        It's also useful if one method that uses "default=NoDefault" relies
        on another object and method to which it must pass the default.
        (This is similar to the subclassing situation.)
        """
        pass

    def InstallInWebKit(appServer):
        pass