code: def __init__(self, name: str, module: Any, **kwargs: Any) -> None:
      self.name = name
      self.module = module
      self.metadata: _ExtensionMetadata = kwargs  # type: ignore[assignment]
      self.version = kwargs.pop("version", "unknown version")
  
      # The extension supports parallel read or not.  The default value
      # is ``None``.  It means the extension does not tell the status.
      # It will be warned on parallel reading.
      self.parallel_read_safe = kwargs.pop("parallel_read_safe", None)
  
      # The extension supports parallel write or not.  The default value
      # is ``True``.  Sphinx writes parallelly documents even if
      # the extension does not tell its status.
      self.parallel_write_safe = kwargs.pop("parallel_write_safe", True)
  
file_path: sphinx/sphinx/extension.py
imports: from __future__ import annotations
  from typing import TYPE_CHECKING, Any
  from packaging.version import InvalidVersion, Version
  from sphinx.errors import VersionRequirementError
  from sphinx.locale import __
  from sphinx.util import logging
label_desc: Use image node_id 1 to create a new Extension object  with example: obj = Extension(name, module)