403Webshell
Server IP : 93.86.61.54  /  Your IP : 216.73.216.156
Web Server : Apache/2.4.62 (Ubuntu)
System : Linux rasin.ddns.net 6.8.0-124-generic #124~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 21:05:19 UTC x86_64
User : www-data ( 33)
PHP Version : 8.4.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3/dist-packages/fs/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/fs/__pycache__/permissions.cpython-310.pyc
o

�Q`K&�@s�dZddlmZddlmZddlZddlmZddlZddlmZej	r5ddlm
Z
mZmZm
Z
mZmZd	d
�ZGdd�de�ZejGd
d�de��ZdS)z Abstract permissions container.
�)�print_function)�unicode_literalsN)�Iterable�)�Text)�Iterator�List�Optional�Tuple�Type�UnioncCs
t�|�S)z/Make a mode integer from an initial value.
    )�Permissions�get_mode)�init�r�0/usr/lib/python3/dist-packages/fs/permissions.py�	make_mode�
rc@s*eZdZdZdd�Zd	dd�Zdd�ZdS)
�
_PermPropertyz6Creates simple properties to get/set permissions.
    cCs||_d�|�|_dS)NzBoolean for '{}' permission.)�_name�format�__doc__)�self�namerrr�__init__sz_PermProperty.__init__NcCs
|j|vS�N)r)r�obj�obj_typerrr�__get__#�
z_PermProperty.__get__cCs$|r
|�|j�dS|�|j�dSr)�addr�remove)rr�valuerrr�__set__'sz_PermProperty.__set__r)�__name__�
__module__�__qualname__rrrr#rrrrrs

rc@sLeZdZdZgd�Zdd�eD�Z								d7dd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Ze
dd��Ze
dd��Ze
d8dd��Ze
dd��Zdd�Zdd�Zd d!�Zed"d#��Zejd$d#��Zed%�Zed&�Zed'�Zed(�Zed)�Zed*�Zed+�Zed,�Z ed-�Z!ed.�Z"ed/�Z#ed0�Z$d1d2�Z%d3d4�Z&d5d6�Z'dS)9r
abAn abstraction for file system permissions.

    Permissions objects store information regarding the permissions
    on a resource. It supports Linux permissions, but is generic enough
    to manage permission information from almost any filesystem.

    Arguments:
        names (list, optional): A list of permissions.
        mode (int, optional): A mode integer.
        user (str, optional): A triplet of *user* permissions, e.g.
            ``"rwx"`` or ``"r--"``
        group (str, optional): A triplet of *group* permissions, e.g.
            ``"rwx"`` or ``"r--"``
        other (str, optional): A triplet of *other* permissions, e.g.
            ``"rwx"`` or ``"r--"``
        sticky (bool, optional): A boolean for the *sticky* bit.
        setuid (bool, optional): A boolean for the *setuid* bit.
        setguid (bool, optional): A boolean for the *setguid* bit.

    Example:
        >>> from fs.permissions import Permissions
        >>> p = Permissions(user='rwx', group='rw-', other='r--')
        >>> print(p)
        rwxrw-r--
        >>> p.mode
        500
        >>> oct(p.mode)
        '0764'

    ))�setuidi)�setguidi)�stickyi)�u_r�)�u_w�)�u_x�@)�g_r� )�g_w�)�g_x�)�o_r�)�o_w�)�o_xrcCsg|]\}}|�qSrr)�.0r�_maskrrr�
<listcomp>^szPermissions.<listcomp>Nc	
s�|dur
t|�|_n:�dur�fdd�|jD�|_n*t�}	|_|	�dd�|p(dD��|	�dd�|p4dD��|	�dd�|p@dD��|rL|j�d�|rT|j�d	�|r^|j�d
�dSdS)Nc�h|]
\}}�|@r|�qSrr�r;r�mask��moderr�	<setcomp>o�z'Permissions.__init__.<locals>.<setcomp>cs� �|]}|dkrd|VqdS)�-�u_Nr�r;�prrr�	<genexpr>r��z'Permissions.__init__.<locals>.<genexpr>�csrE)rF�g_NrrHrrrrJsrKcsrE)rF�o_NrrHrrrrJtrKr)r'r()�set�_perms�_LINUX_PERMS�updater )
r�namesrB�user�group�otherr)r'r(�permsrrArr`s�zPermissions.__init__c	s�j��j�sd�dd�t�j�D��}d�|�S�fdd�}d�|dd	�|d
d�|dd
�f�}d�|dd	�|dd�|dd
�f�}d�|dd	�|dd�|dd
�f�}g}d}|�|||�}|�|��jrj|�d��jrr|�d��jrz|�d�d�d�|��S)Nz, css�|]}d�|�VqdS)z'{}'N)rrHrrrrJ�s�z'Permissions.__repr__.<locals>.<genexpr>zPermissions(names=[{}])cs|�jvr|SdS)NrL�rP)�permr�rrr�_check�sz$Permissions.__repr__.<locals>._checkrLr*�rr,�wr.�xr0r2r4r6r8r:z!user='{}', group='{}', other='{}'zsticky=Truezsetuid=Truezsetguid=TruezPermissions({}))	rP�issubset�_LINUX_PERMS_NAMES�join�sortedr�appendr)r')	r�
_perms_strr[rTrUrV�args�_fmt�basicrrZr�__repr__}s$
"""



zPermissions.__repr__cCs|��Sr)�as_strrZrrr�__str__�szPermissions.__str__cC�
t|j�Sr)�iterrPrZrrr�__iter__�rzPermissions.__iter__cCs
||jvSrrX)r�
permissionrrr�__contains__�rzPermissions.__contains__cCs$t|t�r
|��}n|}|��|kSr)�
isinstancer
�dump)rrVrSrrr�__eq__�s

zPermissions.__eq__cCs|�|�Sr)rr)rrVrrr�__ne__�szPermissions.__ne__cCs2|dd�}|dd�}|dd�}||||d�S)z-Parse permissions in Linux notation.
        N���	)rTrUrVr)�cls�lsrTrUrVrrr�parse�szPermissions.parsecCs
||d�S)z.Load a serialized permissions object.
        �rSr)rw�permissionsrrr�load�s
zPermissions.loadcCsP|dur	|dd�St||�r|St|t�r||d�St|t�r$||d�Std��)a�Create a permissions object from an initial value.

        Arguments:
            init (int or list, optional): May be None to use `0o777`
                permissions, a mode integer, or a list of permission names.

        Returns:
            int: mode integer that may be used for instance by `os.makedir`.

        Example:
            >>> Permissions.create(None)
            Permissions(user='rwx', group='rwx', other='rwx')
            >>> Permissions.create(0o700)
            Permissions(user='rwx', group='', other='')
            >>> Permissions.create(['u_r', 'u_w', 'u_x'])
            Permissions(user='rwx', group='', other='')

        Ni�rArzzpermissions is invalid)rp�int�list�
ValueError�rwrrrr�create�s





zPermissions.createcCs|�|�jS)z4Convert an initial value to a mode integer.
        )r�rBr�rrrr�szPermissions.get_modecCstt|j�d�S)z0Make a copy of this permissions object.
        rz)r
r~rPrZrrr�copy�szPermissions.copycCrk)z/Get a list suitable for serialization.
        )rbrPrZrrrrq�rzPermissions.dumpcs��fdd�t�jdd�d�D�}d�jvr!d�jvrdnd	|d
<d�jvr1d�jvr-dnd	|d
<d�jvrAd�jvr=dnd|d<d�|�}|S)z@Get a Linux-style string representation of permissions.
        cs"g|]
\}}|�jvr
|nd�qS)rFrX)r;r�crZrrr=�s��z&Permissions.as_str.<locals>.<listcomp>i����N�	rwxrwxrwxr'r.�s�Sr9r(r4�r)r:�t�Tr5rL)�zipr`rPra)rrW�perm_strrrZrri�s
�



zPermissions.as_strcCs*d}|jD]
\}}||jvr||O}q|S)z`int`: mode integer.
        r�rQrP)rrBrr@rrrrBs
�zPermissions.modecs�fdd�|jD�|_dS)Ncr>rrr?rArrrCrDz#Permissions.mode.<locals>.<setcomp>r�)rrBrrArrBsr*r,r.r0r2r4r6r8r:r)r'r(cG�|j�|�dS)z�Add permission(s).

        Arguments:
            *permissions (str): Permission name(s), such as ``'u_w'``
                or ``'u_x'``.

        N)rPrR�rr{rrrr #�	zPermissions.addcGr�)z�Remove permission(s).

        Arguments:
            *permissions (str): Permission name(s), such as ``'u_w'``
                or ``'u_x'``.s

        N)rP�difference_updater�rrrr!.r�zPermissions.removecGs|j�|�S)z�Check if one or more permissions are enabled.

        Arguments:
            *permissions (str): Permission name(s), such as ``'u_w'``
                or ``'u_x'``.

        Returns:
            bool: `True` if all given permissions are set.

        )rP�
issupersetr�rrr�check9szPermissions.check)NNNNNNNNr)(r$r%r&rrQr`rrhrjrmrorrrs�classmethodryr|r�rr�rqri�propertyrB�setterrr*r,r.r0r2r4r6r8r:r)r'r(r r!r�rrrrr
/sb
�
	




r
)r�
__future__rr�typingr�six�_typingr�
TYPE_CHECKINGrrr	r
rrr�objectr�python_2_unicode_compatibler
rrrr�<module>s 

Youez - 2016 - github.com/yon3zu
LinuXploit