shell bypass 403
�
}��g�V � � � d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ ddlm Z
dd lmZ dd
lm
Z
ddlmZ erd dlmZ d d
lmZ d dlmZ ddlmZ dd�Z d d!d�Z d" d#d�Zd$d�Z d% d&d�Z d' d(d�Z d' d(d�Zd)d�Z d* d+d�Z d, d-d�Z d.d/d�Z!d.d/d�Z" d0 d1d�Z#d)d�Z$d.d2d�Z%y)3� )�annotationsN)�List)�Optional)�
TYPE_CHECKING)�Union� )�autogenerate)�util)�EnvironmentContext)�ScriptDirectory)�Config)�Script)�
_RevIdType)�ProcessRevisionDirectiveFnc � � | j d� t j | j � � D ]o }t t j
j
| j � |d� � 5 }t |� j � }ddd� | j d|� �q | j d� | j d� y# 1 sw Y �AxY w)zNList available templates.
:param config: a :class:`.Config` object.
zAvailable templates:
�READMENz%s - %sz1
Templates are used via the 'init' command, e.g.:z,
alembic init --template generic ./scripts) �print_stdout�os�listdir�get_template_directory�open�path�join�next�rstrip)�config�tempname�readme�synopsiss �>/opt/hc_python/lib/python3.12/site-packages/alembic/command.py�list_templatesr! s� � � ���0�1��J�J�v�<�<�>�?��
��G�G�L�L��6�6�8�(�H�M�
�
��F�|�*�*�,�H�
� ���I�x��:� @� ���L�M�
���G�H�
�
�s �0C
�
C c � � t j |t j � r-t j |� rt j
d|z � �t j j | j � |� }t j |t j � st j
d|z � �t j |t j � s^t j dt j j |� ��fi | j ��5 t j |� ddd� t j j |d� }t j dt j j |� ��fi | j ��5 t j |� ddd� t |� }d}t j |� D �] }t j j ||� } |dk( r�| j �J �t j j | j � }t j |t j � r%t j d|�d�fi | j �� ��|j! | ||� � ��t j j# | � s��t j j ||� }
|j% | |
� �� |r�t j j t j j |� d
� t j j t j j |� d
� fD ]D }t j d|��fi | j ��5 t'