
    ̆h                    f    S r SSKJr  SSKJrJrJrJr  SSKJ	r	  \(       a  SSK
Jr   " S S5      rg	)
a  
Markdown accepts an [`Extension`][markdown.extensions.Extension] instance for each extension. Therefore, each extension
must to define a class that extends [`Extension`][markdown.extensions.Extension] and over-rides the
[`extendMarkdown`][markdown.extensions.Extension.extendMarkdown] method. Within this class one can manage configuration
options for their extension and attach the various processors and patterns which make up an extension to the
[`Markdown`][markdown.Markdown] instance.
    )annotations)TYPE_CHECKINGAnyIterableMapping   )parseBoolValue)Markdownc                  p    \ rS rSr% Sr0 rS\S'    S rSSS jjrSS jr	SS jr
SS	 jrSS
 jrSS jrSrg)	Extension%   z'Base class for extensions to subclass. zMapping[str, list]configc                &    U R                  U5        g)z'Initiate Extension and set up configs. N)
setConfigs)selfkwargss     T/opt/services/DDDS/venv/lib/python3.13/site-packages/markdown/extensions/__init__.py__init__Extension.__init__8   s        c                H    XR                   ;   a  U R                   U   S   $ U$ )z
Return a single configuration option value.

Arguments:
    key: The configuration option name.
    default: Default value to return if key is not set.

Returns:
    Value of stored configuration option.
r   )r   )r   keydefaults      r   	getConfigExtension.getConfig<   s'     ++;;s#A&&Nr   c                    U R                   R                  5        Vs0 s H  oU R                  U5      _M     sn$ s  snf )zL
Return all configuration options.

Returns:
    All configuration options.
)r   keysr   r   r   s     r   
getConfigsExtension.getConfigsL   s7     59KK4D4D4FG4FST^^C((4FGGGs   ;c                    U R                   R                  5        Vs/ s H  oU R                   U   S   4PM     sn$ s  snf )zl
Return descriptions of all configuration options.

Returns:
    All descriptions of configuration options.
   )r   r   r   s     r   getConfigInfoExtension.getConfigInfoU   s<     7;kk6F6F6HI6Hsdkk#&q)*6HIIIs   =c                    [        U R                  U   S   [        5      (       a  [        U5      nU R                  U   S   c
  [        USS9nX R                  U   S'   g)a  
Set a configuration option.

If the corresponding default value set in [`config`][markdown.extensions.Extension.config]
is a `bool` value or `None`, then `value` is passed through
[`parseBoolValue`][markdown.util.parseBoolValue] before being stored.

Arguments:
    key: Name of configuration option to set.
    value: Value to assign to option.

Raises:
    KeyError: If `key` is not known.
r   NT)preserve_none)
isinstancer   boolr	   )r   r   values      r   	setConfigExtension.setConfig^   sZ     dkk#&q)400"5)E;;sA&"5=E#Cr   c                ~    [        US5      (       a  UR                  5       nU H  u  p#U R                  X#5        M     g)z
Loop through a collection of configuration options, passing each to
[`setConfig`][markdown.extensions.Extension.setConfig].

Arguments:
    items: Collection of configuration options.

Raises:
    KeyError: for any unknown key.
itemsN)hasattrr-   r*   )r   r-   r   r)   s       r   r   Extension.setConfigss   s4     5'""KKMEJCNN3&  r   c                z    [        SU R                  R                  < SU R                  R                  < S35      e)z
Add the various processors and patterns to the Markdown Instance.

This method must be overridden by every extension.

Arguments:
    md: The Markdown instance.

zExtension ".z(" must define an "extendMarkdown"method.)NotImplementedError	__class__
__module____name__)r   mds     r   extendMarkdownExtension.extendMarkdown   s0     "22DNN4K4KM
 	
r    N) )r   strr   r   returnr   )r<   zdict[str, Any])r<   zlist[tuple[str, str]])r   r;   r)   r   r<   None)r-   z-Mapping[str, Any] | Iterable[tuple[str, Any]]r<   r=   )r6   r
   r<   r=   )r5   r4   __qualname____firstlineno____doc__r   __annotations__r   r   r   r#   r*   r   r7   __static_attributes__r9   r   r   r   r   %   s:    2!#F#  HJ$*'"
r   r   N)r@   
__future__r   typingr   r   r   r   utilr	   markdownr
   r   r9   r   r   <module>rG      s*   ( # 8 8 !!l
 l
r   