← Back
Editing: expand_builtins.cpython-311.pyc
� cR�a� � �b � d Z ddlmZmZ ddlmZ ddlmZ ddlm Z ddl Z G d� de� � ZdS ) z7 ExpandBuiltins replaces builtins by their full paths. � )�Globals�Locals)�Transformation)�PythranSyntaxError)�MODULESNc �$ � e Zd ZdZd� Zd� Zd� ZdS )�ExpandBuiltinsaj Expands all builtins into full paths. >>> import gast as ast >>> from pythran import passmanager, backend >>> node = ast.parse("def foo(): return list()") >>> pm = passmanager.PassManager("test") >>> _, node = pm.apply(ExpandBuiltins, node) >>> print(pm.dump(backend.Python, node)) def foo(): return builtins.list() c �F � t j | t t � � d S )N)r �__init__r r )�selfs �I/usr/lib/python3/dist-packages/pythran/transformations/expand_builtins.pyr zExpandBuiltins.__init__ s � ����f�g�6�6�6�6�6� c �� � d| _ t j t j dt j � � d d � � t |j � � t j � � � � S )NT�builtins)�update�ast� Attribute�Name�Load�str�value)r �nodes r �visit_NameConstantz!ExpandBuiltins.visit_NameConstant sJ � �����}��H�Z�����T�4�8�8��� �O�O��H�J�J�� � r c �\ � |j }t |j t j � � r�|| j | vrv|| j vrm|t d v r^|dk rt d|� � �d| _ t j t j dt j � � d d � � ||j � � S |S )Nr �getattrzYou fool! Trying a getattr?T)�id� isinstance�ctxr r �locals�globalsr r r r r )r r �ss r � visit_NamezExpandBuiltins.visit_Name$ s� � ��G���d�h���)�)� ��D�K��%�%�%��D�L� � ��� �#�#�#��I�~�~�(�)F��M�M�M��D�K��=����S�X�Z�Z��t�<�<����� � � �Kr N)�__name__� __module__�__qualname__�__doc__r r r"