def purge_docs(cls, app, env, docname):  # pragma: no cover
        """Handler for Sphinx's env-purge-doc event.

        This event is emitted when all traces of a source file should be cleaned
        from the environment (that is, if the source file is removed, or before
        it is freshly read). This is for extensions that keep their own caches
        in attributes of the environment.

        For example, there is a cache of all modules on the environment. When a
        source file has been changed, the cache's entries for the file are
        cleared, since the module declarations could have been removed from the
        file.
        """
        state = getattr(env, cls.directive_name, None)
        if state and docname in state.doc_names:
            state.doc_names.remove(docname)
Handler for Sphinx's env-purge-doc event.

        This event is emitted when all traces of a source file should be cleaned
        from the environment (that is, if the source file is removed, or before
        it is freshly read). This is for extensions that keep their own caches
        in attributes of the environment.

        For example, there is a cache of all modules on the environment. When a
        source file has been changed, the cache's entries for the file are
        cleared, since the module declarations could have been removed from the
        file.