| Server IP : 104.21.21.239 / Your IP : 216.73.216.55 Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.7 System : Linux ip-172-31-69-123.ec2.internal 6.1.177-224.371.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Jul 27 20:28:29 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.24 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib/python3.9/site-packages/elementpath/regex/__pycache__/ |
Upload File : |
a
���c* � @ s� d Z ddlZddlmZ ddlmZmZmZ ddlm Z m
Z
mZ e�d�Z
e�d�Ze�d �Ze�d
�Ze�d�Ze�d�Zdeeeeeeed�dd�ZdS )zL
Parse and translate XML Schema regular expressions to Python regex syntax.
� N)�
maxunicode� )�
RegexError�
UnicodeSubset�unicode_subset)�I_SHORTCUT_REPLACE�C_SHORTCUT_REPLACE�CharacterClassz (?<!\\)--z[^\\]-[^\\]-[^\\]z\d+z{\d+(,(\d+)?)?}zQ(?<!\\)\\(U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{2}|o{\d+}|\d+|A|Z|z|B|b|o)zM(?<!\\)\\(U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{2}|o{\d+}|A|Z|z|B|b|o)�1.0T)�pattern�flags�xsd_version�back_references�lazy_quantifiers�anchors�returnc s� � ����fdd��|rdnd}|r(g nd| g}d�t ��}d} d}
|tj@ }|r`t���}n
t���}|r�d� t� �|�� |� � d �����|k �rn�� }
|
dkr�|�
|r�|
nd � �n�|
d
v �r |s�|�
d|
� n>|
dk�r|�
|tj@ r�d
nd� n|�
|tj@ �rdnd� �nD|
dk�r�zt�� �}W n( t
�y` d� t� ������Y n"0 |dk�rx|�
d� n
|�
|� �n�|
dk�r8�dk�r�d� t� �|
�����t���d� �}|du �r�d� t� �|
�����|�
|�� � �t |�� �7 �|s��|k r��� dv r�d� t� ��� �����q��n,|
dk�r����d � dk�rld� t� ������| d7 } |
d7 }
|�
|� �n�|
dk�r�d� t� �|
������n�|
dk�r�|
dk�r�d � t� ������|
d8 }
|�
|
� �nx|
dv �rp�dk�rd� t� �|
�����nJ|�r nB�|d k �rb��d d!v �rbd� t� ���d �d ����|�
|
� �n�|
d"k�rZ�d7 �|tj@ �r��|k �r��� d#k�r��d7 ��q��|k�r�|�
d"� �qd�� �� �r~|�
d�� � t���d� ��� }t |�dk�rXd}tdt |��D ]P}| t|d|d � �k �r\|�
d$��| � �qrn|�
��| � �q �|7 ��qd�� d%k�r�|�
d$t � �qd�� d&k�r�|�
d't � �qd�� d(k�r�|�
d$t � �qd�� d)k�r�|�
d't � �qd�� d*v �rF�d }zD��d dk�r<td+��d ���� d,k�rV�d7 ��q<W n, t
tf�y� d-� t� �|����Y n0 �|d. �� }|tj@ �r�|�d#d/�}zt|�}W n> t�y� �d0k�s�|�d1��s� d$tdtfg� }Y n&0 �|d d2k�rd$| }nd'| }|tj@ �r:|�
d3| � n
|�
|� n|�
d�� � n
|�
|
� �d7 �q�|
dk�r�td4� ��|�s�|�
d5� d/�|�S )6a
Translates a pattern regex expression to a Python regex pattern. With default
options the translator processes XPath 2.0/XQuery 1.0 regex patterns. For XML
Schema patterns set all boolean options to `False`.
:param pattern: the source XML Schema regular expression.
:param flags: regex flags as represented by Python's re module.
:param xsd_version: apply regex rules of a specific XSD version, '1.0' for default.
:param back_references: if `True` supports back-references and capturing groups.
:param lazy_quantifiers: if `True` supports lazy quantifiers (\*?, +?).
:param anchors: if `True` supports ^ and $ anchors, otherwise the translated pattern is anchored to its boundaries and anchors are treated as normal characters.
c s� �d7 ��� dkr"�d7 �d} nd} �}�� dkrLd� t � ������q*�� dkr���d �� r|d� t � �������d 7 �q*�� d
ks����d � dk�r^�|kr�d� t � �������|�� }t�|�r��| d kr�d
� t � �������dk�r@t�|�}|d u�r@||�� d d }d� t � �|����t|��}| �rh|�� �qhq*�d7 �q*�� d
k�r��d7 ��� }�d7 �||8 }|S )Nr �^TF�[z*invalid character '[' at position {}: {!r}�\z>illegal back-reference in character class at position {}: {!r}� �]z-[z*empty character class at position {}: {!r}z1invalid character range '--' at position {}: {!r}r
z,unescaped character '-' at position {}: {!r}) r �format�isdigit�HYPHENS_PATTERN�search�INVALID_HYPHEN_PATTERN�spanr Z
complement)�negativeZchar_class_posZchar_class_patternZhyphen_matchZ
hyphen_posZ
char_classZsubtracted_class��msg�parse_character_classr �posr
� �>/usr/lib/python3.9/site-packages/elementpath/regex/patterns.pyr / sN
"
z0translate_pattern.<locals>.parse_character_class�(z(?:z^%sr z5not allowed escape sequence {!r} at position {}: {!r}�.z[^
])r �$z\%sr z
(?<!\n\Z)^r&