
    Fe                        d Z ddlmZ ddlmZmZ ddlmZmZ ddl	m
Z
 ddlmZ ddlmZ erddlmZ dd	lmZ  ej&                  e      Z G d
 d      ZddZddZy)z Utilities for Sphinx extensions.    )annotations)TYPE_CHECKINGAny)InvalidVersionVersion)VersionRequirementError)__)logging)Sphinx)Configc                      e Zd ZddZy)	Extensionc                    || _         || _        || _        |j                  dd      | _        |j                  dd       | _        |j                  dd      | _        y )Nversionunknown versionparallel_read_safeparallel_write_safeT)namemodulemetadatapopr   r   r   )selfr   r   kwargss       2/usr/lib/python3/dist-packages/sphinx/extension.py__init__zExtension.__init__   sV    	zz)->?
 #)**-A4"H
 $*::.CT#J     N)r   strr   r   r   r   returnNone)__name__
__module____qualname__r    r   r   r   r      s    Kr   r   c                   |j                   y|j                   j                         D ]  \  }}| j                  j                  |      }| t        j                  t        d      |       Cd}|j                  dk(  rd}n$	 t        |      t        |j                        kD  rd}|r~t        t        d      |||j                  fz         y# t        $ r ||j                  kD  rd}Y Ew xY w)an  Check that extensions mentioned in :confval:`needs_extensions` satisfy the version
    requirement, and warn if an extension is not loaded.

    Warns if an extension in :confval:`needs_extension` is not loaded.

    :raises VersionRequirementError: if the version of an extension in
    :confval:`needs_extension` is unknown or older than the required version.
    NzPThe %s extension is required by needs_extensions settings, but it is not loaded.Tr   FzvThis project needs the extension %s at least in version %s and therefore cannot be built with the loaded version (%s).)needs_extensionsitems
extensionsgetloggerwarningr	   r   r   r   r   )appconfigextname
reqversion	extension	fulfilleds         r   verify_needs_extensionsr1   &   s    &%66<<> TNN&&w/	NN2 6 78?A	 11I&:&1B1B)CC %I
 )" .H +I ,3J	@Q@Q*R+S T T'T " &	 1 11 %I&s    #CC)(C)c                >    | j                  dt        d       ddddS )Nzconfig-initedi   )prioritybuiltinT)r   r   r   )connectr1   )r+   s    r   setupr6   K   s*    KK!83KG "# r   N)r+   r   r,   r   r   r   )r+   r   r   zdict[str, Any])__doc__
__future__r   typingr   r   packaging.versionr   r   sphinx.errorsr   sphinx.localer	   sphinx.utilr
   sphinx.applicationr   sphinx.configr   	getLoggerr    r)   r   r1   r6   r#   r   r   <module>rA      sM    & " % 5 1  )$			8	$K K$"TJr   