OwlCyberSecurity - MANAGER
Edit File: reflection.cpython-312.pyc
� ̓�gw& � �@ � d Z ddlmZ ddlZddlmZ ddlmZ ddlmZ ddlm Z ddl mZ dd l mZ dd l m Z ddl mZ ddl mZ dd l mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl mZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddlm!Z! ddlm"Z# dd l$m%Z% dd!l&m'Z' dd"l&m(Z( dd#l)m*Z* dd$l+m,Z, dd%l m-Z- dd&l.m/Z/ er6dd'l0m1Z1 dd(l0m2Z2 dd)l0m3Z3 dd*l0m4Z4 dd+l0m5Z5 dd,l0m6Z6 dd-l0m7Z7 dd.l0m8Z8 dd/l0m9Z9 ed0� Z:e jv d=d1�� Z< d>d2�Z=e G d3� d4e� � Z>e G d5� d6e� � Z?ej� G d7� d8ej� d8 � � ZBe/ G d9� d:� � ZCe G d;� d<� � ZDy)?a� Provides an abstraction for obtaining database schema information. Usage Notes: Here are some general conventions when accessing the low level inspector methods such as get_table_names, get_columns, etc. 1. Inspector methods return lists of dicts in most cases for the following reasons: * They're both standard types that can be serialized. * Using a dict instead of a tuple allows easy expansion of attributes. * Using a list for the outer structure maintains order and is easy to work with (e.g. list comprehension [d['name'] for d in cols]). 2. Records that contain a name, such as the column name in a column record use the key 'name'. So for most return values, each record will have a 'name' attribute.. � )�annotationsN)� dataclass)�auto)�Flag)�unique)�Any)�Callable)� Collection)�Dict)� Generator)�Iterable)�List)�Optional)�Sequence)�Set)�Tuple)� TYPE_CHECKING)�TypeVar)�Union� )� Connection)�Engine� )�exc)� inspection)�sql)�util)� operators)�schema)�_ad_hoc_cache_key_from_args)�quoted_name)� TextClause)� TypeEngine)�InternalTraversal)�topological)�final)�Dialect)�ReflectedCheckConstraint)�ReflectedColumn)�ReflectedForeignKeyConstraint)�ReflectedIndex)�ReflectedPrimaryKeyConstraint)�ReflectedTableComment)�ReflectedUniqueConstraint)�TableKey�_Rc � �� |j dd � }|� | ||g|��i |��S ddh�| j t d� |D � � t �fd�|j � D � � f}|j |� }|� | ||g|��i |��}|||<