Ë
    	š„jD  ã                   ój   — d Z ddlmZmZmZmZ ddlmZ ddlm	Z	m
Z
 ddlmZ ddlmZ  G d„ de«      Zy	)
a¶  
Fixer for import statements, with a __future__ import line.

Based on lib2to3/fixes/fix_import.py, but extended slightly so it also
supports Cython modules.

If spam is being imported from the local directory, this import:
    from spam import eggs
becomes:
    from __future__ import absolute_import
    from .spam import eggs

and this import:
    import spam
becomes:
    from __future__ import absolute_import
    from . import spam
é    )ÚdirnameÚjoinÚexistsÚsep)Ú	FixImport)Ú
FromImportÚsyms)Útraverse_imports)Úfuture_importc                   ó   — e Zd ZdZd„ Zd„ Zy)ÚFixAbsoluteImporté	   c                 ó$  — | j                   ry|d   }|j                  t        j                  k(  rut	        |d«      s|j
                  d   }t	        |d«      sŒ| j                  |j                  «      r1d|j                  z   |_        |j                  «        t        d|«       yyd}d}t        |«      D ]  }| j                  |«      rd}Œd}Œ |r|r| j                  |d	«       yt        d|g«      }|j                  |_        t        d|«       |S )
zÅ
        Copied from FixImport.transform(), but with this line added in
        any modules that had implicit relative imports changed:

            from __future__ import absolute_import"
        NÚimpÚvaluer   ú.Úabsolute_importFTz#absolute and local imports together)ÚskipÚtyper	   Úimport_fromÚhasattrÚchildrenÚprobably_a_local_importr   Úchangedr   r
   Úwarningr   Úprefix)ÚselfÚnodeÚresultsr   Ú
have_localÚhave_absoluteÚmod_nameÚnews           ú\/var/www/html/GAP/venv/lib/python3.12/site-packages/libfuturize/fixes/fix_absolute_import.pyÚ	transformzFixAbsoluteImport.transform   s  € ð �9Š9ØØ�e‰nˆà�9‰9œ×(Ñ(Ò(ô
 ˜c 7Ô+Ø—l‘l 1‘o�ô ˜c 7Õ+à×+Ñ+¨C¯I©IÔ6Ø  3§9¡9Ñ,�”	Ø—‘”ÜÐ0°$Õ7ð 7ð
 ˆJØ!ˆMÜ,¨SÓ1ò )�Ø×/Ñ/°Ô9Ø!%‘Jà$(‘Mð	)ñ
 Ùð —L‘L Ð'LÔMØä˜T C 5Ó)ˆCØŸ™ˆCŒJÜÐ,¨dÔ3ØˆJó    c                 ó  — |j                  d«      ry|j                  dd«      d   }t        | j                  «      }t	        ||«      }t        t	        t        |«      d«      «      sydt        ddd	d
dfD ]  }t        ||z   «      sŒ y y)zq
        Like the corresponding method in the base class, but this also
        supports Cython modules.
        r   Fé   r   z__init__.pyz.pyz.pycz.soz.slz.pydz.pyxT)Ú
startswithÚsplitr   Úfilenamer   r   r   )r   Úimp_nameÚ	base_pathÚexts       r$   r   z)FixAbsoluteImport.probably_a_local_importI   s�   € ð
 ×Ñ˜tÔ$àØ—>‘> $¨Ó*¨1Ñ-ˆÜ˜DŸM™MÓ*ˆ	Ü˜ HÓ-ˆ	ô ”dœ7 9Ó-¨}Ó=Ô>ØØœ3 ¨¨u°f¸fÐEò 	ˆCÜ�i #‘oÕ&Ùð	ð r&   N)Ú__name__Ú
__module__Ú__qualname__Ú	run_orderr%   r   © r&   r$   r   r      s   „ Ø€Iò(óTr&   r   N)Ú__doc__Úos.pathr   r   r   r   Úlib2to3.fixes.fix_importr   Úlib2to3.fixer_utilr   r	   r
   Úlibfuturize.fixer_utilr   r   r3   r&   r$   ú<module>r9      s*   ðñ÷& /Ó .Ý .ß /Ý 5å 0ô?˜	õ ?r&   