
    if	              	          d Z ddlmZ ddlZddlZddlZddlmZ ddZd Z	d Z
eZd Z ej                  d	      Zd
 Zd ZdddddddddZddZ ej                  d      ZddZy)zn
Utility functions and objects to ease Python 2/3 compatibility,
and different versions of support libraries.
    )annotationsN)Matchc                H    t        | t              r| j                  |      S | S )N)
isinstancestrencode)sencs     <C:\Projects\mas-dev\.venv\Lib\site-packages\rdflib/compat.py
cast_bytesr      s    !Sxx}H    c                8     t        j                  d      |       S )Nascii)codecs	getreader)streams    r   r   r      s    $6G$V,,r   c                     t        | ddi|S )Nmoderb)open)argskwargss     r   bopenr      s    +D+F++r   c                    | dk  ry| dkD  ryy)Nr       )ns    r   signr       s    1u1ur   z%(\\u[0-9A-Fa-f]{4}|\\U[0-9A-Fa-f]{8})c                0    t         j                  d |       S )Nc                P    t        t        | j                  d      dd  d            S )Nr         )chrintgroup)ms    r   <lambda>z _unicodeExpand.<locals>.<lambda>,   s    SAB-D)Er   )r_unicodeEscapesubr	   s    r   _unicodeExpandr,   +   s    EqIIr   c                d   t        j                  t        d             	 | j                  dd      } | j                  dd      } | j                  dd      } | j                  dd	      } | j                  d
d      } | j                  dd      } | j                  dd      } | j                  dd      } | S )Nzrdflib.compat.decodeStringEscape() is deprecated, it will be removed in rdflib 7.0.0. This function is not used anywhere in rdflib anymore and the utility that it does provide is not implemented correctly.z\t	z\n
z\rz\bz\fz\""z\''z\\\)warningswarnDeprecationWarningreplacer+   s    r   decodeStringEscaper:   /   s    MMQ	
 	
		%A			%A			%A			%A			%A			%A			%A			&$AHr   r.   r1   r/   r0   r2   r3   r4   r5   )tbr   rfr3   r4   r5   c                n    | j                         \  }}|	t        |   S t        t        |dd  d            S )Nr   r#   )groups_string_escape_mapr$   r%   )matchsmatchumatchs      r   _turtle_escape_subberrE   U   s:    \\^NFF!&))3vabz2&''r   z5\\(?:([tbnrf"'\\])|(u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}))c                B    d| vr| S t         j                  t        |       S )Nr5   )_turtle_escape_patternr*   rE   )escapeds    r   decodeUnicodeEscaperI   b   s#    7!%%&;WEEr   )zutf-8)rB   z
Match[str]returnr   )rH   r   rJ   r   )__doc__
__future__r   r   rer6   typingr   r   r   r   r%   	long_typer   compiler)   r,   r:   rA   rE   rG   rI   r   r   r   <module>rQ      s   
 #  	  -,
 	 "**EFJ6 
						
	 ( $@ 
Fr   