HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-31-18-78 6.17.0-1017-aws #17~24.04.1-Ubuntu SMP Tue May 26 21:09:53 UTC 2026 aarch64
User: ubuntu (1000)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/sos/__pycache__/options.cpython-312.pyc
�

G%@i�3��f�ddlmZddlmZd�Zd�ZGd�d�ZGd�de�ZGd	�d
�Zy)�)�Action)�ConfigParserc�<�t|�}|tuxs|tuS)z@Return true if val is an instance of a known sequence type.
    )�type�list�tuple)�val�val_types  �-/usr/lib/python3/dist-packages/sos/options.py�_is_seqr
s"���C�y�H��t��0�x�5�0�0�c�8�|j�}|dvry|dvryy)N)�true�on�yesT)�false�off�noF)�lower)r	�_vals  r�str_to_boolrs(���9�9�;�D��$�$���%�%��r
c�|�eZdZd�Zd�Zdd�Zd�Zd�Zifd�Ze	ifd��Z
e	d��Zd	�Zd
�Z
dd�Zdd�Zd
�Zy)�
SoSOptionsc�t�d�}t||�r�t||�}t||�}||�r||�r|s||jvrt|�r|rGt	|||�|r|jj|�y|jj
|�yt|�rt	||||z�yyy)Nc��|dk(xs|duS)N��)r	s r�_unsetz%SoSOptions._merge_opt.<locals>._unset s���2�I�,����-r
)�hasattr�getattr�_nondefaultr�setattr�discard�add)�self�opt�src�
is_default�
prefer_newr�newvalue�oldvalues        r�
_merge_optzSoSOptions._merge_opts���	.��3����s�C�(�H��t�S�)�H��x� ���)9���D�,�,�,�w�x�7H����c�8�,���$�$�,�,�S�1��$�$�(�(��-���"���c�8�h�#6�7�#�%r
c��t|t�st|�}|jD]}|j	||||��y�N)�
isinstance�dict�vars�	arg_namesr,)r%r'r(r)�args     r�_merge_optszSoSOptions._merge_opts9s:���#�t�$��s�)�C��>�>�	>�C��O�O�C��j�*�=�	>r
c��|}d}|jD]
}|||z|zz
}�|j|�|jD�cgc]}t||���}}|s,|D�	cgc] }	t|	�rdj	|	�n|	��"}}	n%|D�	cgc]}	t|	t�rd|	�d�n|	��}}	|t|�zj|�|zScc}wcc}	wcc}	w)aIFormat a SoSOptions object as a human or machine readable string.

            :param quote: quote option values
            :param sep: list separator string
            :param prefix: arbitrary prefix string
            :param suffix: arbitrary suffix string
            :param literal: print values as Python literals
        z=%s�,�')r2�stripr r�joinr/�strr)
r%�quote�sep�prefix�suffix�args�arg_fmtr3�vals�vs
          r�__strzSoSOptions.__str?s��������>�>�	(�C��C�'�M�C�'�'�D�	(��
�
�3��.2�n�n�=�s���c�"�=��=��>B�C��7�1�:�C�H�H�Q�K�1�4�C�D�C�DH�H�a�
�1�c� 2�a��s�!�H��9�H�D�H��u�T�{�"�)�)�#�.��7�7��>��D��Is�C�%C
�Cc�"�|j�Sr.��_SoSOptions__str�r%s r�__str__zSoSOptions.__str__Xs���z�z�|�r
c�,�|jdddd��S)NTz, zSoSOptions(�))r;r<r=r>rErGs r�__repr__zSoSOptions.__repr__[s!���z�z��$�}�!$��&�	&r
c�B�||_t|j��|_t	�|_|jD]}t
|||j|��|j�D]-\}}|jj|�t
|||��/y)a�Initialise a new ``SoSOptions`` object from keyword arguments.

            Initialises the new object with values taken from keyword
            arguments matching the names of ``SoSOptions`` attributes.

            A ``ValueError`` is raised is any of the supplied keyword
            arguments does not correspond to a known ``SoSOptions`
            attribute name.

            :param *kwargs: a list of ``SoSOptions`` keyword args.
            :returns: the new ``SoSOptions`` object.
        N)	�arg_defaultsr�keysr2�setr!r"�items�append)r%rM�kwargsr3�kwargs     r�__init__zSoSOptions.__init___s���)����l�/�/�1�2����5����$�$�	7�C��D�#�t�0�0��5�6�	7�!�,�,�.�	&�J�C���N�N�!�!�#�&��D�#�u�%�	&r
c�\�tdit|��d|i��}|j|dd�|S)aInitialise a new SoSOptions object from a ``Namespace``
            obtained by parsing command line arguments.

            :param args: parsed command line arguments
            :returns: an initialised SoSOptions object
            :returntype: SoSOptions
        rMTFr)rr1r4)�clsr?rM�optss    r�	from_argszSoSOptions.from_argsws1���B�D��J�B�\�B������t�U�+��r
c��d}d}||vrd|��gS||vr&tdt|��D�cgc]}d|����	c}Sd|�d|��gScc}w)z�Convert a named option and optional value to command line
            argument notation, correctly handling options that take
            no value or that have special representations (e.g. verify
            and verbose).
        )�
alloptionszallow-system-changeszall-logs�batch�build�debug�experimentalzlist-pluginszlist-presetsz
list-profilesz	no-reportzno-env-vars�quiet�verify)�verbose�--r�=)�range�int)rVr&r	�no_value�count�ds      r�_opt_to_argszSoSOptions._opt_to_args�si��
��
���(�?����J�<���%�<�(-�a��S��(:�;�1�b���J�;�;��S�E��3�%� �!�!��<s�Ac��t|j|t|��r|St|j|t�rt|j	d��St|j|t
�r!t
|�}|�td|�d|�d���|St|j|t�rt|�S|S)a�Ensure that the value read from a config file is the proper type
        for consumption by the component, as defined by arg_defaults.

        Params:
            :param key:         The key in arg_defaults we need to match the
                                type of
            :param val:         The value to be converted to a particular type
            :param conf:        File values are being loaded from
        r6z
Value of 'z' in z# must be True or False or analagous)	r/rMrr�split�boolr�	Exceptionre)r%�keyr	�confs    r�_convert_to_typezSoSOptions._convert_to_type�s����d�'�'��,�d�3�i�8��J��d�'�'��,�d�3���	�	�#��'�'��d�'�'��,�d�3��c�"�C��{�� ���U�4�&�1 � �!�!��J��d�'�'��,�c�2��s�8�O��
r
c�,�����fd�}t�}	t�d��5}|j|��ddd�|d|�|||�|j
d	�rvt�d
�rit�d�r\|jd	�D]G\}}|jd�d
�jvs�'�jj|dz|z��Iyyyy#1swY��xYw#t$r(}t	d��d|j
d���Yd}~��d}~wwxYw)z�Read the provided config_file and update options from that.

        Positional arguments:

            :param config_file:             Filepath to the config file
            :param component:               Which component (section) to load
        c�r��|j|��r$t|j|��}d|j�vrt	|jd��|d<dddd�}t
|�D]F}d|vr$|j|�||jdd�<||vs�0|j|�|||<�H|j�D]m\}}t|t�r|d	k7r|jd
d�}|�jvrtd|�d
|�d���N�j||��}t�||��oyy)Nra�	verbosity�label�plugopts�profiles)�name�
plugin_option�profile�-�_�keywords� rzUnknown option 'z' in section 'r7)�has_sectionr0rPrNre�popr�replacer/r:rM�printrpr")�section�config�odict�rename_optsrnr	�config_filer%s      ��r�_update_from_sectionz9SoSOptions.update_from_conf.<locals>._update_from_section�sD����!�!�'�*��V�\�\�'�2�3����
�
��,�),�U�Y�Y�y�-A�)B�E�+�&�
$�%/�)���
 ��;�A�C��c�z�7<�y�y��~��c�k�k�#�s�3�4��k�)�27�)�)�C�.��k�#�.�/�	A�!&���
�,�H�C��"�#�s�+��z�0A�!�k�k�#�r�2���$�"3�"3�3�� 0���^�G�9�A�N�O� ��/�/��S�+�F�C��D�#�s�+�,�'+r
zutf-8)�encodingNz+WARNING: Unable to read configuration file z : ��global�plugin_optionsru�skip_plugins�.rrc)
r�open�	read_file�OSErrorr�r?r~rrPrkr�rurQ)	r%r��	componentr�r��f�ernr	s	``       r�update_from_confzSoSOptions.update_from_conf�s��� 	,�D���	��k�G�4�
1��� � ��K�0�
1�	�X�v�.��Y��/����.�/�G�D�*�4M��D�.�1�"�L�L�)9�:�
:���S��y�y��~�a�(�D�,=�,=�=��M�M�(�(��s��S��9�
:�2�5N�/�
1�
1���	��=�k�]�#��6�6�!�9�+��
�
��	�s-�
C"�C�C"�C�C"�"	D�+D�Dc��|jD]3}t||�s�t||��|r�|j||d|���5y)a�Merge another set of ``SoSOptions`` into this object.

            Merge two ``SoSOptions`` objects by setting unset or default
            values to their value in the ``src`` object.

            :param src: the ``SoSOptions`` object to copy from
            :param is_default: ``True`` if new default values are to be set.
            :param prefer_new: ``False`` if new default is not preferred.
        NF)r))r2rr r,)r%r'�skip_defaultr)r3s     r�mergezSoSOptions.merge�sI���>�>�	H�C��3��$���s�C� �,�L�����S�%�J��G�		Hr
c�^�i}|jD]}t||�}|r|dvrd}|||<�|S)z�Return this ``SoSOptions`` option values as a dictionary of
            argument name to value mappings.

            :returns: a name:value dictionary of option values.
        ��
add_preset�
del_preset�desc�noteN)r2r )r%�
preset_filterr�r3�values     rr0zSoSOptions.dict�sI�����>�>�	�C��D�#�&�E���F�F� �E��E�#�J�
	��r
c������fd���fd�}d�}t�j�j�d���}|D��cgc]\}}|||�s�|||���c}}Scc}}w)z�Return command arguments for this object.

            Return a list of the non-default options of this ``SoSOptions``
            object in ``sos report`` command line argument notation:

                ``["--all-logs", "-vvv"]``

        c���d}|r||vry|dk(r|ry|�jvr%t|�t�j|�k(ryy)z. Test for non-null option values.
            )�False�Nonez[]z""z''�0FruT)rMr:)rwr��null_valuesr%s   �r�	has_valuez%SoSOptions.to_args.<locals>.has_valuesU���C�K��E�[�0���z�!�e���t�(�(�(��u�:��T�%6�%6�t�%<�!=�=� �r
c�4��|dvry|dvr|dk(ry�||�S)z8 Filter out preset and null-valued options.
            r�F)�log_size�plugin_timeout�cmd_timeoutrTr)rwr�r�s  �r�
filter_optz&SoSOptions.to_args.<locals>.filter_opt$s1����C�C���D�D��A�:���T�5�)�)r
c��|jd�rdt|�dzz}|S|jdd�}t|�rdj	|�n|}|dur|�d|��}n|}t|�dkDrd	|z}|Sd|z}|S)
zD Convert sos option notation to command line arguments.
            rsrzrBr{r6Tr}r�rb)�
startswithrer�rr9�len)rwr�r3r&s    r�argifyz"SoSOptions.to_args.<locals>.argify/s������{�+��C��J��,�,���
��<�<��S�)�D�'.�u�~�C�H�H�U�O�5�E��D� ���a��w�'���� #�C��1��$��*�C��J�36��)�C��Jr
c��|dS)Nrr)�xs r�<lambda>z$SoSOptions.to_args.<locals>.<lambda>Cs
��a��d�r
)rn)�sortedr0rP)r%r�r��	opt_items�nrBr�s`     @r�to_argszSoSOptions.to_argssV���	�		*�	�(�4�9�9�;�,�,�.�N�C�	�+4�I��!�Q�
�1�a�8H��q�!��I�I��Is�A �A N)Fr}rr)TF)T)�__name__�
__module__�__qualname__r,r4rFrHrKrT�classmethodrXrirpr�r�r0r�rr
rrrsl��8�4>�8�2�&�%'�&�0�*,�
��
��"��"�$�2<:�|H� � 6Jr
rc��eZdZdZdd�Zy)�
SosListOptionz0Allow to specify comma delimited list of pluginsNc���t|jd��}t||j�r|t||j�z
}t	||j|�y)Nr6)rrkr �destr")r%�parser�	namespace�values�
option_stringrPs      r�__call__zSosListOption.__call__KsH���V�\�\�#�&�'���9�d�i�i�(��W�Y��	�	�2�2�E��	�4�9�9�e�,r
r.)r�r�r��__doc__r�rr
rr�r�Gs
��:�-r
r�c��eZdZdZdd�Zy)�
ClusterOptionz6Used to store/manipulate options for cluster profiles.Nc�J�||_||_||_||_||_yr.)rwr��opt_type�cluster�description)r%rwr�r�r�r�s      rrTzClusterOption.__init__Us&����	���
� ��
����&��r
r.)r�r�r�r�rTrr
rr�r�Rs
��@�'r
r�N)	�argparser�configparserrrrrr�r�rr
r�<module>r�s<���%�1��gJ�gJ�T	-�F�-�'�'r