Hacked By AnonymousFox

Current Path : /opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/baseclselect/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/baseclselect/__pycache__/config.cpython-311.pyc

�

m4�f�����ddlmZddlmZddlmZddlZddlZddlmZmZm	Z	ddl
mZddlm
Z
ddlmZd	d
lmZd	dlmZmZmZddl
mZGd
�deee����ZdS)�)�absolute_import)�print_function)�divisionN)�ABCMeta�abstractmethod�abstractproperty)�	iteritems)�write_file_via_tempfile)�utils�)�BasePkgManager)�BaseSelectorError�ENABLED_STATUS�DISABLED_STATUS)�with_metaclassc��eZdZdZd�Zed���Zed���Ze	d���Z
ed���Zd�Z
d�Zd	�Zd
�Zd�Zd�Zd
�Zed���Zejd���Zd�Zd�Zd�Zed���ZdS)�BaseSelectorConfigzW
    Base class that responsible for all interaction with CL selector config files
    c�n�|���|_||_|���dS�N)�_get_config_object�Cfg�pkg�reload)�selfrs  �S/opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/baseclselect/config.py�__init__zBaseSelectorConfig.__init__s-���*�*�,�,���������
�
�
�
�
�c��t���)z%Should return path to the config file��NotImplementedError�rs r�_config_filezBaseSelectorConfig._config_file!���"�#�#�#rc��t���)z0Should create all needed directories for configsrr!s r�_create_config_dirsz&BaseSelectorConfig._create_config_dirs&r#rc� �Gd�d��}|S)z0Override this method to change config parametersc��eZdZdZdZdZdS)�2BaseSelectorConfig._get_config_object.<locals>.CfgN)�__name__�
__module__�__qualname__�default_version�selector_enabled�disabled_versions�rrrr(/s#������#�O�#�� $���rrr/)rs rrz%BaseSelectorConfig._get_config_object+s1��	%�	%�	%�	%�	%�	%�	%�	%��
rc�J�tj�|j��S)z6Check whether config file exists and is a regular file)�os�path�isfiler"r!s r�is_config_existsz#BaseSelectorConfig.is_config_exists8s���w�~�~�d�/�0�0�0rc��i}t|jj��D]!\}}|�d��s|�|||<�"|S)z�
        Returns underlying config as a plain dict. It will contain only
        explicitly configured options (e.g. no elements with None values)
        �__)r	r�__dict__�
startswith)r�tmp�k�vs    r�_dumpzBaseSelectorConfig._dump=sP��
���d�h�/�0�0�	�	�D�A�q��<�<��%�%�
�!�-���A����
rc��t|jj��D]0\}}|�d��st	|j|d���1dS)z�
        Reset self.Cfg object to all None values before it will be loaded
        from file as a part of self.reload()
        r6N)r	rr7r8�setattr)rr:r;s   r�
_reset_cfgzBaseSelectorConfig._reset_cfgHsW��
�d�h�/�0�0�	+�	+�D�A�q��<�<��%�%�
+����!�T�*�*�*��	+�	+rc�b�|���}|sdS	tj|��}nA#ttf$r-}td�|j|�����d}~wwxYw|���t|��D]\}}t|j||���dS)Nz(Unable to parse json from {} ; Error: {})�_read_file_data�json�loads�
ValueError�	TypeErrorr�formatr"r?r	r>r)r�datar9�er:r;s      rrzBaseSelectorConfig.reloadQs����#�#�%�%���	��F�	C��*�T�"�"�C�C���I�&�	C�	C�	C�#�$N�%+�V�D�,=�q�%A�%A�C�C�
C�����	C����	
�������c�N�N�	$�	$�D�A�q��D�H�a��#�#�#�#�	$�	$s�/�A-�(A(�(A-c� �|jsdS	t|jd��5}|���}ddd��n#1swxYwYnA#tt
f$r-}t
d�|j|�����d}~wwxYw|S)z�
        Should return:
            - whole file data for normal case
            - None if file doesn't exists
            - '' for empty file
        N�rbz'Unable to read data from {} ; Error: {})r4�openr"�read�IOError�OSErrorrrF)r�fdrGrHs    rrAz"BaseSelectorConfig._read_file_data`s����$�	��4�	C��d�'��.�.�
!�"��w�w�y�y��
!�
!�
!�
!�
!�
!�
!�
!�
!�
!�
!����
!�
!�
!�
!�����!�	C�	C�	C�#�$M�%+�V�D�,=�q�%A�%A�C�C�
C�����	C�����s9�A
�A�A
�A�A
�A�	A
�
B�(B�Bc��|js|���tj|�����}|�|��Sr)r4r%r�pretty_jsonr<�_write_file_data)rrGs  r�savezBaseSelectorConfig.saversK���$�	'��$�$�&�&�&�� ������.�.���$�$�T�*�*�*rc��	t||jdd���dS#ttf$r'}t	d�|�����d}~wwxYw)Ni��_tmp)�content�	dest_path�perm�suffixz"Could not write system config ({}))r
r"rMrNrrF)rrGrHs   rrRz#BaseSelectorConfig._write_file_datays���	T�#���+���	
�
�
�
�
�
����!�	T�	T�	T�#�$H�$O�$O�PQ�$R�$R�S�S�S�����	T���s��A�"A�Ac�f�||jjvr"td�|�����dS)NzVersion "{}" is not installed)r�installed_versionsrrF�r�versions  r�_ensure_version_installedz,BaseSelectorConfig._ensure_version_installed�s:���$�(�5�5�5�#�$C�%+�V�G�_�_�6�6�
6�6�5rc�h�|jj�dS|jjot|jj��S)z(Returns effective selector_enabled valueNF)rr-�boolrr[r!s rr-z#BaseSelectorConfig.selector_enabled�s1���8�$�,��5��x�(�N�T�$�(�2M�-N�-N�Nrc�X�|r|jjstd���||j_dS)NzEIt's not allowed to enable Selector when interpreter is not installed)rr[rrr-)r�values  rr-z#BaseSelectorConfig.selector_enabled�s?���	0���4�	0�#�/�0�0�
0�%*���!�!�!rc��|jjSr)rr,r!s r�get_default_versionz&BaseSelectorConfig.get_default_version�s���x�'�'rc��|�d|j_dS||jjpgvrtd���|�|��||j_dS)Nz;It's not allowed to set disabled version as the default one)rr,r.rr^r\s  r�set_default_versionz&BaseSelectorConfig.set_default_version�sg���?�'+�D�H�$��F��t�x�1�7�R�8�8�#�M�O�O�
O��&�&�w�/�/�/�#*��� � � rc��|jj}|tkrB|�:||vr8|�|��t	|��dkrd|j_dSdSdSdS|t
krU||���krtd���|�|g|j_dS||vr|�|��dSdStd�	|�����)Nrz5It's not allowed to disable currently default versionzUnknown version status: "{}")
rr.r�remove�lenrrdr�appendrF)rr]�
new_status�
disabled_lists    r�set_version_statusz%BaseSelectorConfig.set_version_status�s����2�
���'�'��(�W�
�-E�-E��$�$�W�-�-�-��}�%�%��*�*�15�D�H�.�.�.�)�(�-E�-E�*�*��?�
*�
*��$�2�2�4�4�4�4�'�):�;�;�;�
�$�.5�Y���*�*�*��-�/�/�!�(�(��1�1�1�1�1�0�/�$�$B�%+�V�J�%7�%7�9�9�
9rc��t���rrr!s r�available_versionsz%BaseSelectorConfig.available_versions�s��!�#�#�#rN)r)r*r+�__doc__rrr"rr%�staticmethodr�propertyr4r<r?rrArSrRr^r-�setterrdrfrmror/rrrrs�������������$�$���$��$�$��^�$��
�
��\�
��1�1��X�1�	�	�	�+�+�+�
$�
$�
$����$+�+�+�	T�	T�	T�6�6�6�
�O�O��X�O���*�*���*�(�(�(�

+�
+�
+�9�9�9�6�$�$���$�$�$rr)�
__future__rrrrBr1�abcrrr�future.utilsr	�secureior
�clselectr�
pkgmanagerr
�rrrr�objectrr/rr�<module>r|s/��'�&�&�&�&�&�%�%�%�%�%�%�����������	�	�	�	�9�9�9�9�9�9�9�9�9�9�"�"�"�"�"�"�,�,�,�,�,�,�������&�&�&�&�&�&�@�@�@�@�@�@�@�@�@�@�'�'�'�'�'�'�q$�q$�q$�q$�q$�����8�8�q$�q$�q$�q$�q$r

Hacked By AnonymousFox1.0, Coded By AnonymousFox