Server : Apache System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64 User : dh_edsupp ( 6597262) PHP Version : 8.2.26 Disable Function : NONE Directory : /lib/python3/dist-packages/genshi/template/__pycache__/ |
Upload File : |
o !�b�k � @ sP d Z ddlmZmZmZmZmZ dZdd� Z G dd� de �ZG dd � d e �Zd S )z?Support classes for generating code from abstract syntax trees.� )�ast� _ast_Constant� IS_PYTHON2�isstring� _ast_Ellipsiszrestructuredtext enc C s t | d|tj�S )N� )�compile�_ast� PyCF_ONLY_AST)�source�mode� r �9/usr/lib/python3/dist-packages/genshi/template/astutil.py�parse � r c @ s� e Zd ZdZdd� Zdd� Zdd� Zdd � Zd d� Zdd � Z e Z e Zdd� Zdd� Z es0dd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zd,d-� Zd.d/� Zd0d1� ZeZd2d3� Z d4d5� Z!d6d7� Z"d8d9� Z#d:d;� Z$d<d=� Z%d>d?� Z&d@dA� Z'dBdC� Z(dDdE� Z)dFdG� Z*dHdI� Z+dJdK� Z,e-j.dLe-j/dMiZ0e,dNdO� �Z1e-j2dPe-j3dQe-j4dRe-j5dSe-j6dTe-j7dUe-j8dVe-j9dWe-j:dXe-j;dYe-j<dZe-j=d[iZ>e,d\d]� �Z?e-j@d^e-jAd_e-jBdPe-jCdQiZDd`da� ZEe,dbdc� �ZFe,ddde� �ZGdfdg� ZHdhdi� ZIdjdk� ZJdldm� ZKe-jLdne-jMdoe-jNdpe-jOdqe-jPdre-jQdse-jRdte-jSdue-jTdve-jUdwi ZVe,dxdy� �ZWdzd{� ZXd|d}� ZYd~d� ZZd�d�� Z[d�d�� Z\e�sKd�d�� Z]d�d�� Z^d�d�� Z_d�d�� Z`d�d�� Zad�d�� Zbd�d�� Zcd�S )��ASTCodeGeneratorz�General purpose base class for AST transformations. Every visitor method can be overridden to return an AST node that has been altered or replaced in some way. c C sp g | _ d | _d| _d | _d | _d| _g | _| �|� | j�� r0| j| jd 7 _| j � | j� d | _d | _d S )Nr r � ) � lines_info� line_info�code�line�last�indent�blame_stack�visit�strip�append)�self�treer r r �__init__ s zASTCodeGenerator.__init__c C s | j |7 _ d S �N)r )r �deltar r r �_change_indent. s zASTCodeGenerator._change_indentc C sx | j d ur| j| j d 7 _| j�| j� d| j | _ t| j�dkr+g | _d | _d S d| jd fg| _| jd | _d S )Nr z r ���) r r r r r r �lenr r �r r r r � _new_line1 s zASTCodeGenerator._new_linec C s� t |�dkrd S t | j�dkr$| jd ur#d | _| j�t | j�| jf� n| j| jd kr>| jd | _| j�t | j�| jf� | j|7 _d S )Nr r# )r$ r r r r r )r �sr r r �_write= s �zASTCodeGenerator._writec s� |d u rd S t |�tu rt� fdd�|D ��S z� j�|j|jf� d}W n ty0 d}Y nw t|tt t ttf�r?t |�}t� d|jj d �}|d u rUtdt |� ��||�}|r`� j�� |S )Nc � g | ]}� � |��qS r �r ��.0�nr% r r � <listcomp>N � z*ASTCodeGenerator.visit.<locals>.<listcomp>TF�visit_%szUnhandled node type %r)�type�tupler r �lineno� col_offset�AttributeError� isinstance�bool�bytes�float�int�strr �getattr� __class__�__name__� Exception�pop)r �node�info�visitor�retr r% r r J s&