XylotrechusZ
�
Β�g
� �` � d dl mZ d dlZd dlmZ d dlmZ ddlmZ d� Z d� Z
dd �Zd
d
�Zdd�Z
y)� )�annotationsN)�Union)�inspect_getfullargspec� )�sqla_2c
�P �� ddl m} t � }| D ] �|j �� � t |� } |j
| D ��cg c]2 �dj
�fd�|D � � ft �fd�|D � � z ��4 c}ddt |� z z dj
|� d ��S c c}w )
a A facade around @testing.combinations() oriented towards boolean
keyword-based arguments.
Basically generates a nice looking identifier based on the keywords
and also sets up the argument names.
E.g.::
@testing.flag_combinations(
dict(lazy=False, passive=False),
dict(lazy=True, passive=False),
dict(lazy=False, passive=True),
dict(lazy=False, passive=True, raiseload=True),
)
would result in::
@testing.combinations(
('', False, False, False),
('lazy', True, False, False),
('lazy_passive', True, True, False),
('lazy_passive', True, True, True),
id_='iaaa',
argnames='lazy,passive,raiseload'
)
r ��config�_c 3 �H �K � | ] }�j |d � s�|�� � y�w�FN��get��.0�k�ds ��C/opt/hc_python/lib/python3.12/site-packages/alembic/testing/util.py� <genexpr>z$flag_combinations.<locals>.<genexpr>9 s �� �� �9��A����q�%��a��s �"�"c 3 �B �K � | ] }�j |d � �� � y�wr
r r s �r r z$flag_combinations.<locals>.<genexpr>: s �� �� �2�T��A�E�E�!�U�O�T�s ��i�a�,)�id_�argnames) �sqlalchemy.testingr
�set�update�sorted�combinations�join�tuple�len)r r
�keysr s `r �flag_combinationsr% s� �� �: *��5�D�
�����A�� � �$�<�D��6��� "�
� "�� �X�X�9��9�
9�;��2�T�2�2�
3�!�
�
�3��T��?�#����$��� ��
s �7B#c � � t | � d }|D �ci c] }||j |� �� }}t | j � }|j |� t j | j |� } |di |��S c c}w )z�Given a no-arg lambda and a namespace, return a new lambda that
has all the values filled in.
This is used so that we can have module-level fixtures that
refer to instance-level variables using lambdas.
r � )r �pop�dict�__globals__r �types�FunctionType�__code__)�__fn�kw�pos_args�arg�
pass_pos_args�glb�new_fns r �resolve_lambdar5 B sx � � &�d�+�A�.�H�19�:��#�S�"�&�&��+�%��M�:�
�t���
�C��J�J�r�N�
�
�
��
�
�s�
3�F��"�M�"�"�� ;s �A<c �2 � ��� ddl m� ddlm� �� �fd�}|S )z&Provide MetaData for a pytest fixture.r r � )�fixture_functionsc �B �� � �� fd�} �j ��� |� S )Nc 3 � �K � ddl m} |j � x}| _ �| |� }|j �j
� |�� |j
�j
� y # |j
�j
� w xY w�w)Nr )�schema)�
sqlalchemyr; �MetaData�metadata�
create_all�db�drop_all)�selfr; r>