
    iM                        S r SSKrSSKJrJrJrJrJrJrJ	r	J
r
JrJrJrJrJrJrJr  / SQrSrSrSrS	r\" 5       r\R2                  " 5       rS
 rS rSS jrS\4S jrS\4S jrSS jr SS\4S jr!SS jr"S\4S jr#SS jr$S\4S jr%g)z
pyxattr and xattr have differing API, for example xattr assumes
that (like on OSX) attribute keys are valid UTF-8, while pyxattr
just passes through the raw bytestring.

This module provides compatibility for the pyxattr API.
    N   )XATTR_NOFOLLOWXATTR_CREATEXATTR_REPLACEXATTR_NOSECURITYXATTR_MAXNAMELENXATTR_FINDERINFO_NAMEXATTR_RESOURCEFORK_NAME	_getxattr
_fgetxattr	_setxattr
_fsetxattr_removexattr_fremovexattr
_listxattr_flistxattr)NS_SECURITYNS_USER	NS_SYSTEM
NS_TRUSTEDgetxattrgetget_allsetxattrsetremovexattrremove	listxattrlists   securitys   users   systems   trustedc                 F   [        U [        5      (       a	  U" U /UQ76 $ [        U S5      (       a  U" U R                  5       /UQ76 $ [        U [        5      (       a	  U" U /UQ76 $ [        U [
        5      (       a  U R                  [        5      n U" U /UQ76 $ [        S5      e)Nfilenoz+argument must be string, int or file object)	
isinstanceinthasattrr!   bytesstrencode_fsencoding	TypeError)item	name_funcfd_funcargss       A/app/mltbenv/lib/python3.13/site-packages/xattr/pyxattr_compat.py_callr/      s    $t#d##	x	 	 t{{},t,,	D%	 	 %%%	D#		{{;'%%%EFF    c                 Z    Uc  [        S5      eU[        :X  a  U $ SR                  X45      $ )Nznamespace must not be None   .)r)   _NO_NSjoin)r*   nss     r.   _add_nsr6   ,   s0    	z455	V|99bZ  r0   Fc           	      d    U=(       a    [         =(       d    Sn[        U [        [        USSU5      $ Nr   )r   r/   r   r   )r*   	attributenofollowoptionss       r.   r   r   3   s(    )>.QGy*iAwGGr0   c                 ,    [        X5      n[        XUS9$ Nr:   )r6   r   r*   namer:   	namespaces       r.   r   r   7   s    4#DD22r0   c           
      H   Ub  U[         :w  a  US-  n[        XS9n/ nU Hm  n UbK  U[         :w  aA  UR                  U5      (       d  M)  UR                  U[	        U5      S  [        XUS945        MR  UR                  U[        XUS945        Mo     U$ ! [         a     M  f = f)Nr2   r>   )r3   r   
startswithappendlenr   IOErrorr*   r:   rA   lresultr@   s         r.   r   r   ;   s    f!4T	$*AF		$f)<y11tC	NO4'XFH I tXd8%LMN  M  		s   #B	'B2B
B! B!c           	      j    U=(       a    [         =(       d    SnXS-  n[        U [        [        XSU5      $ r8   )r   r/   r   r   )r*   r@   valueflagsr:   r;   s         r.   r   r   M   s.    )>.QGGy*d1gFFr0   c                 .    [        X5      n[        XX$US9$ )N)rL   r:   )r6   r   )r*   r@   rK   r:   rL   rA   s         r.   r   r   R   s    4#DDXFFr0   c                 ^    U=(       a    [         =(       d    Sn[        U [        [        X5      $ r8   )r   r/   r   r   )r*   r@   r:   r;   s       r.   r   r   V   s"    )>.QG|]DBBr0   c                 ,    [        X5      n[        XUS9$ r=   )r6   r   r?   s       r.   r   r   Z   s    4#DtH55r0   c                     U=(       a    [         =(       d    Sn[        U [        [        U5      R	                  S5      nUR                  5         U$ )Nr       )r   r/   r   r   splitpop)r*   r:   r;   ress       r.   r   r   ^   s:    )>.QG
j+w
7
=
=g
FCGGIJr0   c                     U(       a
  U[         :X  a	  [        XS9$ US-  n[        XS9n/ nU H8  nUR                  U5      (       d  M  UR                  U[	        U5      S  5        M:     U$ )Nr>   r2   )r3   r   rC   rD   rE   rG   s         r.   r   r   d   sj    	V+11I$*AFy))d3y>?+,  Mr0   )F)r   F)&__doc__syslibr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   __all__r   r   r   r   objectr3   getfilesystemencodingr(   r/   r6   r   r   r   r   r   r   r   r   r    r0   r.   <module>r]      s    : : : : :
 
	
	'')G!H #f 3 !F $G
 %*f GC !& 6  
r0   