code: def __init__(
      self,
      template_path: list[str | os.PathLike[str]] | None = None,
      outdir: str | os.PathLike[str] | None = None,
  ) -> None:
      self.outdir = outdir
      if template_path is None:
          template_path = [
              path.join(package_dir, "templates", "gettext")
          ]
      super().__init__(template_path)
  
      def escape(s: str) -> str:
          s = s.replace("\\", r"\\")
          s = s.replace('"', r"\"")
          return s.replace("\n", '\\n"\n"')
  
      # use texescape as escape filter
      self.env.filters["e"] = escape
      self.env.filters["escape"] = escape
  
imports: from __future__ import annotations
  import time
  from codecs import open
  from collections import defaultdict
  from os import getenv, path, walk
  from typing import TYPE_CHECKING, Any
  from uuid import uuid4
  from docutils import nodes
  from sphinx import addnodes, package_dir
  from sphinx.builders import Builder
  from sphinx.errors import ThemeError
  from sphinx.locale import __
  from sphinx.util import logging
  from sphinx.util.console import bold
  from sphinx.util.display import status_iterator
  from sphinx.util.i18n import CatalogInfo, docname_to_domain
  from sphinx.util.index_entries import split_index_msg
  from sphinx.util.nodes import extract_messages, traverse_translatable_index
  from sphinx.util.osutil import canon_path, ensuredir, relpath
  from sphinx.util.tags import Tags
  from sphinx.util.template import SphinxRenderer
label_desc: Use image node_id 1 to create a new GettextRenderer object from inherited base classes: SphinxRenderer with example: obj = GettextRenderer(template_path, outdir)