
    Fwg                         d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZmZmZ  ej                  d      Z G d	 d
ej                         Zy)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                       e Zd ZdZdZd Zy)FixOldstrWrapTSTRINGc                 $   |j                   t        j                  k(  rst        dd|       t        j                  |j                        rF|j                         }d|_        d|j                  z   |_        t        d|g|j                        }|S y y )Nz
past.typesoldstr b)prefix)
typer   r   r   _literal_rematchvaluecloner   r	   )selfnoderesultsnewwrappeds        X/var/www/horilla/myenv/lib/python3.12/site-packages/libfuturize/fixes/fix_oldstr_wrap.py	transformzFixOldstrWrap.transform   sw    99$]It<  ,jjl !
 399,	)(SE$++N - %    N)__name__
__module____qualname__BM_compatiblePATTERNr    r   r   r   r      s    MG
r   r   )__doc__
__future__r   relib2to3r   lib2to3.pgen2r   lib2to3.fixer_utilr   libfuturize.fixer_utilr   r   r	   compiler   BaseFixr   r$   r   r   <module>r.      sJ   
 ( 	   #5 5 bjj*+J&& r   