Ë
    ú}ài#  ã                   ó(   — d dl mZmZ  G d„ d«      Zy)é   )ÚauthÚutilsc                   óÎ  — e Zd Z ej                  d«       ej
                  d«      d„ «       «       Z ej                  d«      dd„«       Z ej                  d«      dd„«       Z ej                  d«      dd„«       Z	 ej                  d«      d„ «       Z
 ej                  d«      dd	„«       Z ej                  d«      d
„ «       Z ej                  d«      d„ «       Z ej                  d«       ej
                  d«      d„ «       «       Z ej                  d«       ej
                  d«      dd„«       «       Z ej                  d«       ej
                  d«      d„ «       «       Zy)ÚPluginApiMixinz1.25Únamec                 óî   — | j                  d|«      }|}t        |t        «      r'|j                  «       D ��cg c]  \  }}|› d|› �‘Œ }}}| j	                  ||¬«      }| j                  |«       yc c}}w )aC  
            Configure a plugin.

            Args:
                name (string): The name of the plugin. The ``:latest`` tag is
                    optional, and is the default if omitted.
                options (dict): A key-value mapping of options

            Returns:
                ``True`` if successful
        z/plugins/{0}/setú=)ÚdataT)Ú_urlÚ
isinstanceÚdictÚitemsÚ
_post_jsonÚ_raise_for_status)Úselfr   ÚoptionsÚurlr
   ÚkÚvÚress           úX/home/factor_ks/STREAMA2026/tests/venv/lib/python3.12/site-packages/docker/api/plugin.pyÚconfigure_pluginzPluginApiMixin.configure_plugin   ss   € ð �i‰iÐ*¨DÓ1ˆØˆÜ�dœDÔ!Ø+/¯:©:«<×8¡4 1 a�q�c˜˜1˜#’JÐ8ˆDÑ8Ø�o‰o˜c¨ˆoÓ-ˆØ×Ñ˜sÔ#Øùó 9s   ¸A1c           
      ó  — | j                  d«      }t        j                  ||t        t        j                  j                  |g «      «      ¬«      5 }| j                  |d|i|¬«      }ddd«       | j                  «       y# 1 sw Y   ŒxY w)a*  
            Create a new plugin.

            Args:
                name (string): The name of the plugin. The ``:latest`` tag is
                    optional, and is the default if omitted.
                plugin_data_dir (string): Path to the plugin data directory.
                    Plugin data directory must contain the ``config.json``
                    manifest file and the ``rootfs`` directory.
                gzip (bool): Compress the context using gzip. Default: False

            Returns:
                ``True`` if successful
        z/plugins/create)ÚrootÚgzipÚfilesr   )Úparamsr
   NT)r   r   Úcreate_archiveÚsetÚbuildÚwalkÚ_postr   )r   r   Úplugin_data_dirr   r   Úarchvr   s          r   Úcreate_pluginzPluginApiMixin.create_plugin   sˆ   € ð  �i‰iÐ)Ó*ˆä×!Ñ!Ø  tÜ”e—k‘k×&Ñ& ¸Ó;Ó<ô
ð 	Eð Ø—*‘*˜S¨&°$¨¸e�*ÓDˆC÷		Eð
 	×Ñ˜sÔ#Ø÷	Eð 	Eús   ÁBÂBc                 ót   — | j                  d|«      }| j                  |d|i¬«      }| j                  |«       y)aP  
            Disable an installed plugin.

            Args:
                name (string): The name of the plugin. The ``:latest`` tag is
                    optional, and is the default if omitted.
                force (bool): To enable the force query parameter.

            Returns:
                ``True`` if successful
        z/plugins/{0}/disableÚforce©r   T©r   r"   r   ©r   r   r'   r   r   s        r   Údisable_pluginzPluginApiMixin.disable_plugin5   s=   € ð �i‰iÐ.°Ó5ˆØ�j‰j˜ g¨uÐ%5ˆjÓ6ˆØ×Ñ˜sÔ#Øó    c                 óx   — | j                  d|«      }d|i}| j                  ||¬«      }| j                  |«       y)aV  
            Enable an installed plugin.

            Args:
                name (string): The name of the plugin. The ``:latest`` tag is
                    optional, and is the default if omitted.
                timeout (int): Operation timeout (in seconds). Default: 0

            Returns:
                ``True`` if successful
        z/plugins/{0}/enableÚtimeoutr(   Tr)   )r   r   r.   r   r   r   s         r   Úenable_pluginzPluginApiMixin.enable_pluginG   sB   € ð �i‰iÐ-¨tÓ4ˆØ˜WÐ%ˆØ�j‰j˜ VˆjÓ,ˆØ×Ñ˜sÔ#Ør,   c                 óh   — | j                  d|«      }| j                  | j                  |«      d«      S )a  
            Retrieve plugin metadata.

            Args:
                name (string): The name of the plugin. The ``:latest`` tag is
                    optional, and is the default if omitted.

            Returns:
                A dict containing plugin info
        z/plugins/{0}/jsonT©r   Ú_resultÚ_get)r   r   r   s      r   Úinspect_pluginzPluginApiMixin.inspect_pluginZ   s.   € ð �i‰iÐ+¨TÓ2ˆØ�|‰|˜DŸI™I c›N¨DÓ1Ð1r,   Nc                 ó  — | j                  d«      }d|i}|r||d<   i }t        j                  |«      \  }}t        j                  | |«      }	|	r|	|d<   | j	                  ||||d¬«      }
| j                  |
«       | j                  |
d¬«      S )a  
            Pull and install a plugin. After the plugin is installed, it can be
            enabled using :py:meth:`~enable_plugin`.

            Args:
                remote (string): Remote reference for the plugin to install.
                    The ``:latest`` tag is optional, and is the default if
                    omitted.
                privileges (:py:class:`list`): A list of privileges the user
                    consents to grant to the plugin. Can be retrieved using
                    :py:meth:`~plugin_privileges`.
                name (string): Local name for the pulled plugin. The
                    ``:latest`` tag is optional, and is the default if omitted.

            Returns:
                An iterable object streaming the decoded API logs
        z/plugins/pullÚremoter   úX-Registry-AuthT©r   Úheadersr
   Ústream©Údecode©r   r   Úresolve_repository_nameÚget_config_headerr   r   Ú_stream_helper)r   r6   Ú
privilegesr   r   r   r9   ÚregistryÚ	repo_nameÚheaderÚresponses              r   Úpull_pluginzPluginApiMixin.pull_plugini   s«   € ð& �i‰i˜Ó(ˆà�fð
ˆñ Ø!ˆF�6‰NàˆÜ"×:Ñ:¸6ÓBÑˆ�)Ü×'Ñ'¨¨hÓ7ˆÙØ)/ˆGÐ%Ñ&Ø—?‘?Ø˜¨°jØð #ó 
ˆð 	×Ñ˜xÔ(Ø×"Ñ" 8°DÐ"Ó9Ð9r,   c                 óf   — | j                  d«      }| j                  | j                  |«      d«      S )z�
            Retrieve a list of installed plugins.

            Returns:
                A list of dicts, one per plugin
        z/pluginsTr1   )r   r   s     r   ÚpluginszPluginApiMixin.plugins�   s+   € ð �i‰i˜
Ó#ˆØ�|‰|˜DŸI™I c›N¨DÓ1Ð1r,   c                 óâ   — d|i}i }t        j                  |«      \  }}t        j                  | |«      }|r||d<   | j                  d«      }| j	                  | j                  |||¬«      d«      S )al  
            Retrieve list of privileges to be granted to a plugin.

            Args:
                name (string): Name of the remote plugin to examine. The
                    ``:latest`` tag is optional, and is the default if omitted.

            Returns:
                A list of dictionaries representing the plugin's
                permissions

        r6   r7   z/plugins/privileges)r   r9   T)r   r>   r?   r   r2   r3   )r   r   r   r9   rB   rC   rD   r   s           r   Úplugin_privilegesz PluginApiMixin.plugin_privilegesš   s€   € ð �dð
ˆð ˆÜ"×:Ñ:¸4Ó@Ñˆ�)Ü×'Ñ'¨¨hÓ7ˆÙØ)/ˆGÐ%Ñ&à�i‰iÐ-Ó.ˆØ�|‰|Ø�I‰I�c &°'ˆIÓ:¸Dó
ð 	
r,   c                 ó  — | j                  d|«      }i }t        j                  |«      \  }}t        j                  | |«      }|r||d<   | j	                  ||¬«      }| j                  |«       | j                  |d¬«      S )a  
            Push a plugin to the registry.

            Args:
                name (string): Name of the plugin to upload. The ``:latest``
                    tag is optional, and is the default if omitted.

            Returns:
                ``True`` if successful
        z/plugins/{0}/pullr7   )r9   Tr;   )r   r   r>   r?   r"   r   r@   )r   r   r   r9   rB   rC   rD   r   s           r   Úpush_pluginzPluginApiMixin.push_plugin·   s…   € ð �i‰iÐ+¨TÓ2ˆàˆÜ"×:Ñ:¸4Ó@Ñˆ�)Ü×'Ñ'¨¨hÓ7ˆÙØ)/ˆGÐ%Ñ&Ø�j‰j˜ gˆjÓ.ˆØ×Ñ˜sÔ#Ø×"Ñ" 3¨tÐ"Ó4Ð4r,   c                 ót   — | j                  d|«      }| j                  |d|i¬«      }| j                  |«       y)aª  
            Remove an installed plugin.

            Args:
                name (string): Name of the plugin to remove. The ``:latest``
                    tag is optional, and is the default if omitted.
                force (bool): Disable the plugin before removing. This may
                    result in issues if the plugin is in use by a container.

            Returns:
                ``True`` if successful
        z/plugins/{0}r'   r(   T)r   Ú_deleter   r*   s        r   Úremove_pluginzPluginApiMixin.remove_pluginÏ   s<   € ð �i‰i˜¨Ó-ˆØ�l‰l˜3¨°Ð'7ˆlÓ8ˆØ×Ñ˜sÔ#Ør,   z1.26c                 ó  — | j                  d|«      }d|i}i }t        j                  |«      \  }}t        j                  | |«      }	|	r|	|d<   | j	                  ||||d¬«      }
| j                  |
«       | j                  |
d¬«      S )aŽ  
            Upgrade an installed plugin.

            Args:
                name (string): Name of the plugin to upgrade. The ``:latest``
                    tag is optional and is the default if omitted.
                remote (string): Remote reference to upgrade to. The
                    ``:latest`` tag is optional and is the default if omitted.
                privileges (:py:class:`list`): A list of privileges the user
                    consents to grant to the plugin. Can be retrieved using
                    :py:meth:`~plugin_privileges`.

            Returns:
                An iterable object streaming the decoded API logs
        z/plugins/{0}/upgrader6   r7   Tr8   r;   r=   )r   r   r6   rA   r   r   r9   rB   rC   rD   rE   s              r   Úupgrade_pluginzPluginApiMixin.upgrade_pluginã   s¢   € ð& �i‰iÐ.°Ó5ˆà�fð
ˆð ˆÜ"×:Ñ:¸6ÓBÑˆ�)Ü×'Ñ'¨¨hÓ7ˆÙØ)/ˆGÐ%Ñ&Ø—?‘?Ø˜¨°jØð #ó 
ˆð 	×Ñ˜xÔ(Ø×"Ñ" 8°DÐ"Ó9Ð9r,   )F)é    )N)Ú__name__Ú
__module__Ú__qualname__r   Úminimum_versionÚcheck_resourcer   r%   r+   r/   r4   rF   rH   rJ   rL   rO   rQ   © r,   r   r   r      sÀ  „ Ø€U×Ñ˜6Ó"Ø€U×Ñ˜&Ó!ñó "ó #ðð( €U×Ñ˜6Ó"òó #ðð2 €U×Ñ˜6Ó"òó #ðð" €U×Ñ˜6Ó"òó #ðð$ €U×Ñ˜6Ó"ñ2ó #ð2ð €U×Ñ˜6Ó"ò#:ó #ð#:ðJ €U×Ñ˜6Ó"ñ2ó #ð2ð €U×Ñ˜6Ó"ñ
ó #ð
ð8 €U×Ñ˜6Ó"Ø€U×Ñ˜&Ó!ñ5ó "ó #ð5ð, €U×Ñ˜6Ó"Ø€U×Ñ˜&Ó!òó "ó #ðð$ €U×Ñ˜6Ó"Ø€U×Ñ˜&Ó!ñ :ó "ó #ñ :r,   r   N)Ú r   r   r   rX   r,   r   ú<module>rZ      s   ðß ÷A:ò A:r,   