Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
util.cpython-313.pyc165 linesDownload Raw Back to __pycache__
1�

2��j�:��t�SSKJr SSKJr SSKJr SSKrSSKrSSKrSSKJ	r	 SSK3r4SSKrSSKrSSKJ
r
 SSKrSSKrSSKJr SS	KJr SS5KJr SSKJr SS
KJr SSKJr SSKJr SSKJr SSKJr SSKJr SSKJr SSKJr SSK J!r! SSK"J#r# SSK"J$r$ SSK"J%r% SSK"J&r& \%(dSr'\'=r(r)O\RTr(Sr)Sr+S6Sjr,Sr-"SS \.5r/S!r0S"r1S#r2S$r3S%r4S&r5\#S'5r6S(r7S)r8S*r9S7S+jr:S,r;"S-S.\<5r=S/r>S8S1jr?S2r@S3rAS4rB\R�S0S9S5jj5rDg):�)�annotations)�deque)�6namedtupleN)�chain)�	getsizeof)�Any�)�config)�mock�)�inspect)�7Connection)�Column)�DropConstraint)�	DropTable)�ForeignKeyConstraint)�MetaData)�Table��schema)�Integer��	decorator)�defaultdict)�has_refcount_gc)�inspect_getfullargspecc�X�[R"5 [R"5 g�N)�gc�collect)�argss �]D:\code\apps\devtools\python\user_packages\Python313\site-packages\sqlalchemy/testing/util.py�non_refcount_gc_collectr#.s��8�9�10��11�12�13��c��gr�r&r$r"�lazy_gcr'7s��r$c#�^# �[SSS/5n[S[RS-5H mU"[RU4Sj5v� M" g7f)N�picklers�loads�dumps�����r	c�2>�[R"UT5$r)�pickler+)�d�protocols �r"�<lambda>�picklers.<locals>.<lambda>?s������a��)Br$)r�ranger.�HIGHEST_PROTOCOLr*)�ntr0s @r"r)r);sE����	�J��'� 2�	3�B��"�f�5�5��9�:������B�C�C�;�s�AAc�*�[R"XS9$)N)�k)�random�choices)�14populationr7s  r"�random_choicesr;Bs���>�>�*�*�*r$c���[U[5(a[X5$U[R"SSU--5-R[R5[SU5-$)N�1�0�15)�16isinstance�float�round�decimal�Decimal�to_integral�ROUND_FLOOR�pow)�value�precs  r"�
round_decimalrJFs]���%�����U�!�!�
�G�O�O�C�#��*�$4�5�5�B�B������B��
��r$c�8�\rSrSrSrSrSrSrSrSr	Sr17g	)18�	RandomSet�Pc��[[RU55n[R"U5 [U5$r)�list�set�__iter__r8�shuffle�iter)�self�ls  r"rQ�RandomSet.__iter__Qs*������d�#�$�����q���A�w�r$c��[R"S[U5S-195n[[RU55UnUR
U5 U$)Nrr	)r8�randint�lenrOrPrQ�remove)rT�index�items   r"�pop�
RandomSet.popVsC�����q�#�d�)�a�-�0���C�L�L��&�'��.�����D���r$c�>�[[RX55$r)rLrP�union�rT�others  r"r`�RandomSet.union\s������4�/�0�0r$c�>�[[RX55$r)rLrP�20differenceras  r"re�RandomSet.difference_s�������4�5�5r$c�>�[[RX55$r)rLrP�intersectionras  r"rh�RandomSet.intersectionbs����)�)�$�6�7�7r$c��[U5$r)rL)rTs r"�copy�RandomSet.copyes�����r$r&N)�__name__�21__module__�__qualname__�__firstlineno__rQr]r`rerhrk�__static_attributes__r&r$r"rLrLPs ���22�1�6�8�r$rLc��[[5nUHup4X#RU5 M [U5HupVXSHnXbU;dM
  g M g)zATrue if the given sorting conforms to the given partial ordering.NFT)rrP�add�	enumerate)�tuples�sorted_elements�deps�parent�child�i�node�ns        r"�conforms_partial_orderingr}is[���s��D��
�������� ��_�-��� ��$�A��A�w���%�.�23r$c�^^�[[5mUHup#TURU5 M UU4Sjm[T"U55$)Nc3��># �[U5S:Xa[U5v� gUHPn[U5RU/5nUR	TU5(aM9T"U5HnU/U-v� M
 MR g7f)Nr	)rYrOrPrerh)�elements�elem�subset�sub_ordering�_all_orderings�edgess    ��r"r��-all_partial_orderings.<locals>._all_orderings|sm�����x�=�A���x�.� � ���X��1�1�4�&�9���*�*�5��;�7�7�(6�v�(>��#�f�|�3�3�)?�!�s�AA8�A8)rrPrsrS)rur�rxryr�r�s    @@r"�all_partial_orderingsr�wsB������E��
��
�e����� � �4���x�(�)�)r$c��XlU$![aE [R"URUR24XRUR5nU$f=f)aKReturn a function with a given __name__.25 26Will assign to __name__ and return the original function if possible on27the Python implementation, otherwise a new function will be constructed.28 29This function should be phased out as much as possible30in favor of @decorator.   Tests that "generate" many named tests31should be modernized.32 33)rm�	TypeError�types�FunctionType�__code__�__globals__�__defaults__�__closure__)�fn�names  r"�function_namedr��sT��34���35�I��	�36�
�
�
��K�K����������37���I�	38�s�39�AA�Ac���UR5nU"U/UQ70UD6nURSSS5 U$! [R"5nUR"U6nU(deUs$=f)z�Run the given function under the given contextmanager,40simulating the behavior of 'with' to support older41Python versions.42 43This is not necessary anymore as we have placed 2.644as minimum Python version, however some tests are still using45this structure.46 47N)�	__enter__�__exit__�sys�exc_info)�ctxr��arg�kw�obj�resultr��raise_s        r"�run_as_contextmanagerr��sh���-�-�/�C�48��C�$�#�$��$�����T�4��&��
����<�<�>�����x�(�����M�s	� 3�0A%c�D�UVs1sHn[U5iM sn$s snf)z�Converts the results of sql execution into a plain set of column tuples.49 50Useful for asserting the results of an unordered query.51��tuple)�results�rows  r"�rowsetr��s ��#*�*�'�3�E�#�J�'�*�*��*s�c��U5err&)�msgs r"�failr��s���#��5r$c�x�SSKJn [R"5nUSn[	USS5nXElU"U0UD6UR
5 URRnU(a0[XG5 UR5R5 Xel$[U[R5 Xel$!UR
5 URRnU(a0[XG5 UR5R5 Xelf[U[R5 Xelf=f)zlProvide bound MetaData for a single test, dropping afterwards.52 53Legacy; use the "metadata" pytest fixture.54 55r	)�fixturesr�metadataN)�r�rr�getattrr��close_all_sessions�base�_connection_fixture_connection�drop_all_tables_from_metadata�get_transaction�commitr56�db)r�r!r�r�r�rT�	prev_meta�cfcs        r"�provide_metadatar��s������� �H���7�D���j�$�/�I��M�"��4��2��	�#�#�%��m�m�:�:���
*�(�8�57
���!�(�(�*�"�
�
*�(�F�I�I�>�!�
��#	�#�#�%��m�m�:�:���
*�(�8�58
���!�(�(�*�"�
�
*�(�F�I�I�>�!�
�s�B:�:A?D9c59�Z^�[5nUHmURT5 M [U5n[R"UV^s/sH5mSRU4SjU554[
U4SjU55-PM7 snSS[U5--SRU5S.6$s snf)aA facade around @testing.combinations() oriented towards boolean60keyword-based arguments.61 62Basically generates a nice looking identifier based on the keywords63and also sets up the argument names.64 65E.g.::66 67    @testing.flag_combinations(68        dict(lazy=False, passive=False),69        dict(lazy=True, passive=False),70        dict(lazy=False, passive=True),71        dict(lazy=False, passive=True, raiseload=True),72    )73    def test_fn(lazy, passive, raiseload): ...74 75would result in::76 77    @testing.combinations(78        ("", False, False, False),79        ("lazy", True, False, False),80        ("lazy_passive", True, True, False),81        ("lazy_passive", True, True, True),82        id_="iaaa",83        argnames="lazy,passive,raiseload",84    )85    def test_fn(lazy, passive, raiseload): ...86 87�_c3�Z># �UH nTRUS5(dMUv� M" g7f�FN��get��.0r7r/s  �r"�	<genexpr>�$flag_combinations.<locals>.<genexpr>s����9��A����q�%��a�a��s�+�	+c3�H># �UHnTRUS5v� M g7fr�r�r�s  �r"r�r�s����2�T��A�E�E�!�U�O�O�T�s�"rz�a�,)�id_�argnames)rP�update�sortedr88�combinations�joinr�rY)r��keysr/s  `r"�flag_combinationsr��s����>�5�D�
�����A����$�<�D����"�89 90�"���X�X�9��9�
9�;��2�T�2�2�
3�!�91 92�93
�3��T��?�#����$�����94 95s�<B(c�^�[T5nT"USVs/sHn[R"5PM sn6nU4Sjn[R"[[
U55Vs/sHoe"U54PM
 sn0UD6$s snfs snf)Nrc�,>^�UU4SjnST-UlU$)Nc�>�T"S0UD6T$)Nr&r&)r��lambda_arg_sets�poss ��r"�fixture�<lambda_combinations.<locals>.create_fixture.<locals>.fixture&s���"�(�R�(��-�-r$z
fixture_%3.3d)rm)r�r�r�s` �r"�create_fixture�+lambda_combinations.<locals>.create_fixture%s���	.�+�S�0����r$)rr�Mockr96r�r3rY)r�r�r!r��arg_setsr�rzs`      r"�lambda_combinationsr� s����!�/�2�D���Q�� @�������� @�A�H�����(-�c�(�m�(<�	=�(<�1�>�!��97�(<�	=��AC����!A��98>s�A>�%Bc��[U5SnUVs0sHo3URU5_M nn[UR5nUR	U5 [99R"URU5nU"S0UD6$s snf)z�Given a no-arg lambda and a namespace, return a new lambda that100has all the values filled in.101 102This is used so that we can have module-level fixtures that103refer to instance-level variables using lambdas.104 105rr&)rr]�dictr�r�r�r�r�)�__fnr��pos_argsr��
pass_pos_args�glb�new_fns       r"�resolve_lambdar�1sv��&�d�+�A�.�H�19�:��#�"�&�&��+�%��M�:�106�t���107 �C��J�J�r�N�
�
�
��
�
�s�
3�F��"�M�"�"��	;s�A?c�^�U4SjnU$)z&Provide MetaData for a pytest fixture.c�F>^�U4Sjn[R"TS9"U5$)Nc3�"># �[R"5=olT"X5nUR[R1085 Uv� UR
[R1095 g!UR
[R1105 f=f7fr)rrr��111create_allr112r��drop_all)rTr�r�r�s   �r"�run_ddl�3metadata_fixture.<locals>.decorate.<locals>.run_ddlFsc����'-���'8�8�H�}�
-��D�+���#�#�F�I�I�.����!�!�&�)�)�,���!�!�&�)�)�,�s�B�+A+� B�+!B�B)�scope)r113r�)r�r��ddls` �r"�decorate�"metadata_fixture.<locals>.decorateEs���		-��~�~�C�(��1�1r$r&)r�r�s` r"�metadata_fixturer�Bs���2��Or$c�&^�[U4Sj5nU$)zaForce the given table names to be dropped after test complete,114isolating for foreign key cycles115 116c��>�U"U0UD6[[R[[R5TS9 $![[R[[R5TS9 f=f)N)�
include_names)�drop_all_tablesr117r�r
)r�r!r��namess   �r"�go�force_drop_names.<locals>.go\sG���	P��t�?�r�?��F�I�I�w�v�y�y�'9��O��O�F�I�I�w�v�y�y�'9��O�s	�;�2A-r)r�r�s` r"�force_drop_namesr�Vs ����P��P��Ir$c�(�\rSrSrSrSrSr\rSrg)�adictifz,Dict keys available as attributes.  Shadows.c�V�X$![a [RX5s$f=fr)�KeyErrorr��__getattribute__)rT�keys  r"r��adict.__getattribute__is/��	4��9����	4��(�(��3�3�	4�s��(�(c�H�[UVs/sHo UPM	 sn5$s snfrr�)rTr�r�s   r"�__call__�adict.__call__os!���4�0�4�C�3�i�4�0�1�1��0s�r&N)	rmrnrorp�__doc__r�r��get_allrqr&r$r"r�r�fs��6�4�2��Gr$r�c��^^�SSKJm UU4Sjn[U[5(d"UR	5nU"U5 SSS5 gU"U5 g!,(df   g=f)Nr	)�enginesc�>�TRRU5 URR(d1SSKJn UR
SSS9 TRU5 SSS5 gTRU5 g!,(df   g=f)Nr	)�118assertionszCan't sort tablesF)�assert_)�testing_reaper�prepare_for_drop_tables�dialect�supports_alterr�r�expect_warningsr�)�119connectionrrr�s  ��r"r��)drop_all_tables_from_metadata.<locals>.goxsv������6�6�z�B��!�!�0�0�$��+�+�#�U�,���!�!�*�-���120
���j�)���s�A;�;121B	)r�rr@r�begin)r��engine_or_connectionr�r122rs`   @r"r�r�usL����*��*�J�7�7�
!�
'�
'�
)�Z��z�N�*�
)�	�� �*�
)�s�	A�123Arc
���Ub[U5nUbUS:XdS5eU4nUR5n[URUS95GHupgU(aAUbUSU;aMUR	[[
US[5USS955 MNU(dMWURR(dMtUH�up�UbUSU;aM[
US[5[S[5[S[5USS9n124UR	[[U125RR/U126RR /U	S	955 M� GM SSS5 g!,(df   g=f)127Nrz2consider_schemas and schema are mutually exclusive)�consider_schemasr	rr�x�y)r�)rPr�reversed�%sort_tables_on_foreign_key_dependency�executerrrrrrrrr�crr)�engine�	inspectorrrr��conn�	table_key�fkcs�t_key�fkc�tbs           r"r�r��sd��� ��M�*�
�
���$128�129�	@�?�	@�130�#�9��	����4�'��;�;�!1�
<�
� 131�O�I�132�!�-�!�!��M�9�������i��l�H�J�y��|�L���133���~�~�4�4��"&�J�E�%�1�!�!�H�M�9� ���a�� �134��s�G�,��s�G�,�$�Q�x��B��L�L�&�0�"�$�$�&�&��B�D�D�F�F�8�#�N���#'�' 135�136���s�A,E*�"B?E*�*137E8c�&^�[U4Sj5nU$)Nc�`>�U"U0UD6TR5 $!TR5 f=fr)�_clear)r�r�r��	event_clss   �r"r��!teardown_events.<locals>.decorate�s,���	��s�>�b�>������I����s��-r)r!r�s` r"�teardown_eventsr#�s��������Or$c��^^^^�Sn[[[[[[[U[138[[[0m[5m[S5mUUUU4SjmT"U5$)z�Returns the approximate memory footprint an object and all of its139contents.140 141source: https://code.activestate.com/recipes/577504/142 143 144c�J�[R"UR55$r)r�
from_iterable�items)r/s r"�dict_handler� total_size.<locals>.dict_handler�s���"�"�1�7�7�9�-�-r$rc145�>�[U5T;agTR[U55 [UT5nTR5H6up#[	X5(dMU[[
TU"U555-
n U$ U$)Nr)�idrsrr'r@�sum�map)�o�s�typ�handler�all_handlers�default_size�seen�sizeofs    ����r"r5�total_size.<locals>.sizeof�su���
�a�5�D�=������A����a��&��(�.�.�0�L�C��!�!�!��S��V�W�Q�Z�0�1�1�����	1��r$)r�rSrOrr�rP�	frozensetr)r.r(r2r3r4r5s  @@@@r"�146total_sizer8�sW���.�	�t��d�
�t��l��T��4�
�L��5�D��Q�<�L�147�148��!�9�r$c���U/n[5nSnU(aRURS5nXBLaUS-
nO.[U[5(aU(a[	U5U/-U-nU(aMRU$)z�given a cache key tuple, counts how many instances of actual149tuples are found.150 151used to alert large jumps in cache key complexity.152 153rr	)�objectr]r@r�rO)�tup�stack�sentinel�num_elementsr�s     r"�count_cache_key_tuplesr?�sk���E�E��x�H��L�154��y�y��|�����A��L�
��e�
$�
$���T�155�h�Z�/�%�7��
�%��r$c	#�# �[R"5nSv� [R"5U-156nX0:�a'U"5 [R"SUSSUS35 gg![R"SUSSUS35 f=f7f)Nztest took too long (z.4fz seconds > �))�timer157�	skip_test)�seconds�cleanup�now�secs    r"�skip_if_timeoutrHs�����)�)�+�C�	�158�)�)�+��159�C�160�}�	��I����&�s�3�i�{�7�)�1�E�
�	��
���&�s�3�i�{�7�)�1�E�
�s�7B�A!� B�! B�B)r	)�function)NrN)rDrArEr)E�161__future__r�collectionsrr�162contextlibrCr�	itertoolsrr.r8r�rrBr��typingrr�r163rr
rrrrrrrrr�sql�sql.sqltypesr�utilrrrrr#�164gc_collectr'r r)r;rJrPrLr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r#r8r?�contextmanagerrHr&r$r"�<module>rTs<��#��"���	��
�
�165����������#��)����"���"�)���3�2�J�����J�
�D�+�����2�*�$�(�2+���("��("�V.�b�"#�"�(
� �D��!�4���5�p�#�L�,�����r$
codekingpro/portable-devtools · Team Ai