File: //lib/python3/dist-packages/libfuturize/fixes/__pycache__/fix_oldstr_wrap.cpython-310.pyc
o
,�]� � @ sp d Z ddlmZ ddlZddlmZ ddlmZ ddlm Z ddl
mZmZm
Z
e�d�ZG d d
� d
ej�ZdS )a
For the ``future`` package.
Adds this import line:
from past.builtins import str as oldstr
at the top and wraps any unadorned string literals 'abc' or explicit byte-string
literals b'abc' in oldstr() calls so the code has the same behaviour on Py3 as
on Py2.6/2.7.
� )�unicode_literalsN)�
fixer_base)�token)�syms)�
future_import�touch_import_top�wrap_in_fn_callz[^uUrR]?[\'\"]c @ s e Zd ZdZdZdd� ZdS )�
FixOldstrWrapT�STRINGc C s\ |j tjkr*tdd|� t�|j�r,|�� }d|_d|j |_t d|g|jd�}|S d S d S )Nz
past.types�oldstr� �b)�prefix)
�typer r
r �_literal_re�match�value�cloner r )�self�node�results�new�wrapped� r �C/usr/lib/python3/dist-packages/libfuturize/fixes/fix_oldstr_wrap.py� transform s �zFixOldstrWrap.transformN)�__name__�
__module__�__qualname__�
BM_compatible�PATTERNr r r r r r s r )�__doc__�
__future__r �re�lib2to3r �
lib2to3.pgen2r �lib2to3.fixer_utilr �libfuturize.fixer_utilr r r �compiler �BaseFixr r r r r �<module> s