Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
conftest.cpython-313.pyc335 linesDownload Raw Back to __pycache__
1�

2��j��� �*�%SSKrSSKrSSKrSSKrSSKrSSKrSSKJrJrJ	r	J3r4JrJrJ
r
JrJr SSKJr SSKrSSKrSSKrSSKJr SSKJr SSKJr SSKJr SSKrSSKJ r J!r!J"r" SS	K#J$r$J%r%J&r& SS5K'J(r( SSK)J*r*J+r+ SSK,J-r.J/r/ SS
K0J1r1J2r3 SSK4J5r5 SSK6r6SSK7r7SSK8r9SSK:J;r; SSKJ<r< SSK=J>r>J?r? SSKr\6R�"\A5rB/SQrC\R�"SS5rE\R�"S5S:HrF\E\C;a\G"S\ES\CS35eS\R�R�\R�R�\R�R�/\R�R�S.rN\O\P\4\QS'\F(af\R�R�1rT\U"\R�SS5rV\Vb\TR�\V5 \NR�\Y"S\R�55SS 9 \R�R�"S�0\ND6 \R�R�S\R�R�S!5S"S#9 \R�R�S$\R�R�S!5S%S#9 \R�R�S&\R�R�S!5S'S%S(9 \R�R�\E5 \R�"S)5S:H=(d \R�"S*5S:Hr^S+r_S,r`S-\"S.S4S/jraS�S\\R�S$\\R�S&\\R�S.\\R�4S0jjrb\R�"S15S:grc\c(+=(a \R�"S25S3:HrdS4re\eS5\$3rfS6rgS.\R�4S7jriS�S8jrjS.\k4S9jrlS�S:\kS;\mS<\\PS=\\PS>\\PS?\\PS@\\PSA\\PSB\\PSC\\PSD\\PSE\\mS.S4SFjjrnS�S-\!SG\kS.S4SHjjroS�S;\mSI\PS=\\PSJ\\PS>\\PS?\\PSK\\PS@\\PSA\\PSB\\PSC\\PSD\\PSE\\mS.\\&SS44SLjjrpS.\\&SS44SMjrqS.\\&SS44SNjrrS.\\&SS44SOjrsS.\\&SS44SPjrtS.\
\P\k44SQjru\R�"5S.\\&SS44SRj5rwS.\\&SS44SSjrxS.\\&SS44STjryS.\\&SS44SUjrzS.\\&SS44SVjr{S�SW\PS.\\&SS44SXjjr|\R�"5S.\\&SS44SYj5r}\R�"5S.\\&SS44SZj5r~\R�"S[S\9S.\\&SS44S]j5r\R�"S[S\9S.\\&SS44S^j5r�\R�"S[S\9S.\\&SS44S_j5r�\R�"S[S\9S.\\&SS44S`j5r�\R�"S)\GR;aSa/OSb/Sc9Sd\GRS.\\&SS44Sej5r�\R�"S)\GR;aSf/OSg/Sc9Sd\GRS.\\&SS44Shj5r�S.\6\P4Sijr�S.\7\P4Sjjr�S.\8\/\\&SS444Skjr�S.\9\/\\&SS444Sljr�S.\10\/\\&SS444Smjr�S.\11\/\\&SS444Snjr�S.\12\/\\&SS444Sojr�\R�"Sp\�"5Sq9Sd\GRS.\\!SS44Srj5r�\R�"Sp\�"5Sq9Sd\GRS.\\!SS44Ssj5r�\R�"\�"5Sc9Sd\GRS.\\!SS44Stj5r�\R�"S[\�"5Sq9Sd\GRS.\\!SS44Suj5r�\R�"Sp\�"5Sq9Sd\GRS.\\!SS44Svj5r�\R�"Sp\�"5Sq9Sd\GRS.\\!SS44Swj5r�\5"SxSy\355r�\5"SzS{\155r�\R�"S[S\9S|\&S.\\!SS44S}j5r�"S~S5r�\R�"S[S\9S|\&S.\\�SS44S�j5r�S�\PS.\\P4S�jr�S�\ S�\PS.S4S�jr�S�\ S.S4S�jr�\R�"S[S\9S|\&S�\PS.\\ SS44S�j5r�\R�Sd\GRS.\P4S�j5r�S�\GR<S.S4S�jr�S�\S�\4S.\4S�jr�\�r�S�\GRDS.S4S�jr�\R�"S[S\9S�\&S�\PS.\\ SS44S�j5r�\R�"S[S\9S�\&S.\\ SS44S�j5r�\R�"S[S\9S�\&S.\\!SS44S�j5r�\R�"S[S\9S�\&S.\\!SS44S�j5r�\R�"S[S\9S�\&S.\\!SS44S�j5r�"S�S�\5r�S�\(S�\S�\	\+S�\kS.\
\\+\\*4413S�jr�S�\(S�\S�\	\+S�\kS.\
\\+\\*4414S�jr�S.\15\�4S�jr�\R�"Sp\�"5Sq9Sd\GRS.\\�SS44S�j5r�S�\GR\S.S4S�jr�S�\ S.\m4S�jr�\R�"SS�9Sd\GRS.\S�4S�j5r�\R�S.\\>/\?44S�j5r�\R�S�\<S.\<4S�j5r�g)��N)	�Any�	Generator�Iterator�List�Optional�Sequence�Tuple�Callable�cast)�UUID)�ConnectError)�Protocol)�AsyncFastAPI)�FastAPI)�	ClientAPI�	ServerAPI�BaseAPI)�DEFAULT_DATABASE�Settings�System)�Producer)�SeqId�OperationRecord)�Client�AdminClient)�AsyncAdminClient�AsyncClient)�async_class_to_sync)�	MagicMock)�MonkeyPatch��	Documents�16Embeddings��fast�normal�slow�PROPERTY_TESTING_PRESETr%�#CHROMA_HYPOTHESIS_CI_REPRODUCE_ONLY�1z!Invalid property testing preset: z. Must be one of �.i�_)�deadline�suppress_health_check�	verbosity�base_hypothesis_settings�explainc#�<# �UHo[;dMUv� M g7f�N)�disabled_phases)�.0�phases  �\D:\code\apps\devtools\python\user_packages\Python313\site-packages\chromadb/test/conftest.py�	<genexpr>r7Ks���17�/�e��3O�E�E�/�s�
�	T)�phases�18print_blob�base�2)�max_examplesr&�dr'i�)r<�stateful_step_count�CHROMA_RUST_BINDINGS_TEST_ONLY�CHROMA_INTEGRATION_TEST_ONLYzPSPANN creation/modification disallowed in Rust bindings or integration test modezMSPANN creation/modification allowed in Rust bindings or integration test mode�api�returnc�$�UR5 gr2)�reset)rAs r6rDrDqs���I�I�K�c�~�/SQnUUUS.nUR[5nUbdURR5VVs0sHupgXc;dMXg_M nnn[R19"[R20R40UD6$[[R21[R22R5$s snnf)a
Override Hypothesis settings for specific profiles.23 24For example, to override max_examples only when the current profile is 'fast':25 26override_hypothesis_profile(27    fast=hypothesis.settings(max_examples=50),28)29 30Settings will be merged with the default/active profile.31)r,r<r>r-r$)�get�CURRENT_PRESET�__dict__�items�32hypothesis�settings�defaultr)	r%r&r'�allowable_override_keys�override_profiles�overriding_profile�key�value�overridden_settingss	         r6�override_hypothesis_profilerTus��� �������+�.�.�~�>���%�1�9�9�?�?�A�33�A�34���-�
�C�J�A�	�35��"�"�:�#6�#6�#>�#>�V�BU�V�V��36�#�#�Z�%8�%8�%@�%@�A�A��37s�B9�B9�CHROMA_CLUSTER_TEST_ONLY�MULTI_REGION�truez
tilt-spanning�+�xc�F�[RR[SS9$)Nz5Requires Kubernetes to be running with a valid config)�reason)�pytest�mark�skipif�NOT_CLUSTER_ONLY�rEr6�skip_if_not_clusterra�s$���;�;����F���rEc��[RR[RR[RR	[3855S5n[
SU35 [RRU5(d[SU35e[R"SSSSSS	S39SSS
SSSSSU/5 g)Nzopenssl.cnfz
Config path: zConfig file not found at �openssl�reqz-x509z-newkeyzrsa:4096z-keyoutz
serverkey.pemz-outzservercert.pemz-days�365z-nodesz-subjz
/CN=localhostz-config)�os�path�join�dirname�abspath�__file__�print�exists�FileNotFoundError�40subprocess�run)�config_paths r6� generate_self_signed_certificaterr�s����'�'�,�,�41�����������1�2�M��K�42�M�+��43'�(�
�7�7�>�>�+�&�&��";�K�=� I�J�J��N�N�����������������!	44�rEc�D�[R"[R[R5nURS5 UR	[R45[RS5 UR5SsSSS5 $!,(df   g=f)N)�r�)�socket�AF_INET�SOCK_STREAM�bind�46setsockopt�47SOL_SOCKET�SO_REUSEADDR�getsockname)�ss r6�find_free_portr�s]��	���v�~�~�v�'9�'9�	:�a�	���w��	���V�&�&��(;�(;�Q�?��}�}��q�!�48;�	:�	:�s�AB�49B�port�
is_persistent�persist_directory�chroma_server_authn_provider�$chroma_server_authn_credentials_file�chroma_server_authn_credentials�"chroma_auth_token_transport_header�chroma_server_authz_provider�chroma_server_authz_config_file�chroma_server_ssl_certfile�chroma_server_ssl_keyfile�;chroma_overwrite_singleton_tenant_database_access_from_authc��U(aU(a[SSSSSUUSUUUUUUUS9nO[SSSSSSSUUUUUUUS9n[RRR	U5n
[50R"U
R5SUS	S51U52U	S9 g)
zRun a Chroma server locally�chromadb.api.segment.SegmentAPI� chromadb.db.impl.sqlite.SqliteDB�7chromadb.segment.impl.manager.local.LocalSegmentManagerT)�chroma_api_impl�chroma_sysdb_impl�chroma_producer_impl�chroma_consumer_impl�chroma_segment_manager_implr�r��allow_resetr�r�r�r�r�r�r�F)r�r�r�r�r�r�r�r�r�r�r�r�r�r�z0.0.0.0�error�)�hostr��	log_level�timeout_keep_alive�ssl_keyfile�ssl_certfileN)r�chromadb�server�fastapir�uvicornrp�app)r�r�r�r�r�r�r�r�r�r�r�r�rLr�s              r6�_run_serverr��s����*��=�@�!C�!C�(a�'�/��)E�1U�,K�/Q�)E�,K�ID�53��$�=�@�!C�!C�(a���)E�1U�,K�/Q�)E�,K�ID�54�� �_�_�
$�
$�
,�
,�X�
6�F��K�K��55�56��
�
���-�/�rE�attemptsc��UR5 g![a6nUS:�aUe[R"S5 [	XS-5 SnAgSnAff=f)N��ru)�	heartbeatr
�time�sleep�
_await_server)rAr��es   r6r�r�sF��-��
�
����-��b�=��G��J�J�q�M��#�!�|�,�,��-�s��57A�,A�Ar��chroma_client_auth_provider�chroma_client_auth_credentialsc
#��^^^^^58^^^# �[5m[R"S5mTSSUUUTUU	T59UT4n
S[S[[60SS44UUUUUU61UU4SjjnU(aO[R"5nTUURUUUTUU	T62UT4n
U"U
5Shv�N UR5 gU"U
5Shv�N gN'![[4a n[RS:XaSnAgUeSnAff=fN:7f)ziFixture generator that launches a server in a separate process, and yields a63fastapi client connect to it�spawnFN�argsrBc
3�># �TR[USS9nUR5 [TSTSTTTT64T65(aSOST	S966n[	U5nUR[5nUR5 [[U[5(aUO67[U55 Uv� UR5 UR5 UR5 g7f)NT)�targetr��daemon�	localhostF)68r��chroma_server_host�chroma_server_http_portr�r�r�r��chroma_server_ssl_verify�chroma_server_ssl_enabledr�)�Processr��startrr�instancerr��69isinstancerr�stop�killrh)
r��procrL�systemrAr�r�r�r�r�r��ctxr�s
     ��������r6rp�_fastapi_fixture.<locals>.runKs������{�{�+�D��{�F���70�71���+�*�$(��(C�+I�/Q�%?�.H�d�e�ID�72����!���o�o�i�(�������Z��W�5�5�c�;N�s�;S�T������
��	�	���	�	��s�CC�nt)
r�multiprocessing�get_contextrrr�tempfile�TemporaryDirectory�name�cleanup�PermissionError�NotADirectoryErrorrf)r�r�r�r�r�r�r�r�r�r�r�r�r�r�rpr�r�r�r�s ` `  ``  ` `    @@r6�_fastapi_fixturer�s����$��D�73�74%�75%�g�76.�C�	
�
��$�,�'�*�$�'�"�!�C�
	�	�8�#��)�F�D�$�$6�7���0�$�7�7�9�����"�"�(�0�+�.�(�+�&�%�G�
77���t�9���78	��%�%�'��t�9���	�� �!3�4�	��w�w�$������	��	�sN�BC<�C�C<�#C�3C<�?C:�C<�C7�C2�+C<�0C2�2C7�7C<c��[SS9$)NF�r��r�r`rEr6r�r��s
���%�0�0rEc��[SSS9$)NF�'chromadb.api.async_fastapi.AsyncFastAPI)r�r�r�r`rEr6�
async_fastapir��s����A��rEc��[SS9$)NTr�r�r`rEr6�fastapi_persistentr��s
���$�/�/rEc�,�[5 [SSSS9$)NFz./servercert.pemz./serverkey.pem)r�r�r�)rrr�r`rEr6�fastapi_sslr��s��$�&���#5�"3��rEc���SnSn[R"S5(a[[R"SS5RS5Sn[[R"SS5RS5S5nX4$)z�Get server host and port from CHROMA_SERVER_HOST environment variable.79 80Returns:81    Tuple of (host, port) from environment, or defaults (localhost, 8000) if not set.82i@r��CHROMA_SERVER_HOSTrt�:rru)rf�getenv�split�int)r�r�s  r6�_get_server_host_port_from_envr��sm���D��D�	�y�y�%�&�&��y�y�-�r�2�8�8��=�a�@���2�9�9�1�2�6�<�<�S�A�!�D�E���:�rEc#��# �[5up[SUUSS9n[U5nUR[5n[U5 UR
5 Uv� UR5 g7f)N�chromadb.api.fastapi.FastAPIT)r�r�r�r�)r�rrr�rr�r�r�)r�r�rLr�rAs     r6�basic_http_clientr��s^���/�1�J�D��6� $���	�H��H�
�F�83�/�/�)�84$�C��#��85�L�L�N�86�L�87�K�K�M�s�A)A+c	#��# �[R"SSSS9nURS5 UR5 [	SSUR88SSS	9HnUv� M	 SSS5 g!,(df   g=f7f)89N�w�	.htpasswdF��suffix�delete�Cadmin:$2y$05$e5sRb6NCcSH3YfbIxe1AGu2h5K7OOd982OXKmd8WyQ3DRQ4MvpnZS90�;chromadb.auth.basic_authn.BasicAuthenticationServerProvider�1chromadb.auth.basic_authn.BasicAuthClientProvider�admin:admin�r�r�r�r�r��r��NamedTemporaryFile�write�closer�r���f�items  r6�0fastapi_server_basic_auth_valid_cred_single_userr��sf���9192�	$�	$�S��U�	K�q�	���V�W�	���	�$��)f�12���([�+8�93�D��J�94�	95L�	K�	K���A7�AA&�	A7�&96A4�0A7c	#�<# �SSSS.n[R"SSSS9nUR5Hup#URUS	US9735 M UR	5 [SSURSS
S9HnUv� M	 SSS5 g!,(df   g=f7f)Nz<$2y$10$kY9hn.Wlfcj7n1Cnjmy1kuIhEFIVBsfbNWLQ5ahoKmdc2HLA4oP6iz<$2y$10$CymQ63tic/DRj8dD82915eoM4ke3d6RaNKU4dj4IVJlHyea0yeGDSz<$2y$05$e5sRb6NCcSH3YfbIxe1AGu2h5K7OOd982OXKmd8WyQ3DRQ4MvpnZS)�user�user2�adminr�r�Fr�r��98r�r�r�r�)r�r�rJr�r�r�r�)�credsr�r��credr�s     r6�3fastapi_server_basic_auth_valid_cred_multiple_usersr��s����O�O�O�
�E�99100�	$�	$�S��U�	K�q��+�+�-�J�D�
�G�G�t�f�A�d�V�2�&�'�(�	���	�$��)f�12���([�+8�101�D��J�102�103L�	K�	K�s�B�A#B�	B�104B�Bc	#��# �[R"SSSS9nURS5 UR5 [	SSUR105SSS	9HnUv� M	 SSS5 g!,(df   g=f7f)106Nr�r�Fr�r�r�r�zadmin:admin1r�r�r�s  r6�&fastapi_server_basic_auth_invalid_credr��sd���	�	$�	$�S��U�	K�q�	���V�W�	���	�$��)f�12���([�+9�107�D��J�108�	109L�	K�	K�r�c#�# �[R"SSSS9nURS5 UR5 [R"SSSS9nURS5 UR5 [	SSS	S110UR111SUR112S9HnUv� M	 SSS5 SSS5 g!,(df   N=f!,(df   g=f7f)
Nr�r�Fr�r�z.authzaL113roles_mapping:114    admin:115        actions:116            [117                "system:reset",118                "tenant:create_tenant",119                "tenant:get_tenant",120                "db:create_database",121                "db:get_database",122                "db:list_collections",123                "db:create_collection",124                "db:get_or_create_collection",125                "collection:get_collection",126                "collection:delete_collection",127                "collection:update_collection",128                "collection:add",129                "collection:delete",130                "collection:get",131                "collection:query",132                "collection:peek",133                "collection:update",134                "collection:upsert",135                "collection:count",136            ]137users:138- id: admin139  role: admin140    r�r�r�z?chromadb.auth.simple_rbac_authz.SimpleRBACAuthorizationProvider)r�r�r�r�r�r�r�r�)�server_authn_file�server_authz_filer�s   r6�%fastapi_server_basic_authn_rbac_authzr�s����	�	$�	$��K��141�	����R�	142�	���!�
�
(�
(����143�
��#�#��
�>
�#�#�%�(�#�,_�/<�-j�5F�5K�5K�-n�0A�0F�0F����144��I145�146�147�148�149��150�151�s5�C�8C�AB2�!C�)	C�2152C	�<C�153C�
C�singleton_databasec154#��# �[R"S5(af[(d[[5up[	SUUSSSSS9n[U5nUR
[5n[U5 UR5 Uv� g[R"SS	SS1559nURSUS35 UR5 [SSSSS
URS9HnUv� M	 SSS5 g!,(df   g=f7f)Nr�r�Tz1chromadb.auth.token_authn.TokenAuthClientProviderzadmin-tokenF)r�r�r�r�r�r�r�r�z.authnr�z�156users:157  - id: admin158    tokens:159      - admin-token160  - id: singleton_user161    tenant: singleton_tenant162    databases:163      - z%164    tokens:165      - singleton-token166z;chromadb.auth.token_authn.TokenAuthenticationServerProvider)r�r�r�r�r�r�)rfr�r_r�rrr�rr�r�r�r�r�r�r�r�)rr�r�rLr�rAr�r�s        r6�2fastapi_fixture_admin_and_singleton_tenant_db_userr2s����167�y�y�%�&�&�/?�/?�3�5�168���:�#�$(��([�+8�HM�	169����!���o�o�i�(���c���������170�	$�	$�S��%�	H�A�	���	�171���
�
	172�	173���	�$��HL�([�+8�)f�12���
174�D��J�175�#176I�	H�	H�s�BC=�A	C,�#	C=�,177C:�6C=c#�~# �[SSS9n[U5nUR5 Uv� UR5 g7f)��Fixture generator for returning a client configured via environmenet178variables, intended for externally configured integration tests179Tr��r�r�N�rrr�r��rLr�s  r6�integrationrhs:���180��*H��H��H�
�F�181�L�L�N�182�L�183�K�K�M���;=c#�~# �[SSS9n[U5nUR5 Uv� UR5 g7f)rTr�rNr	r184s  r6�async_integrationrvs:���185��*S��H��H�
�F�186�L�L�N�187�L�188�K�K�M�r�function)�scopec189#�# �[SSSSSSSS9n[U5nUR5 Uv� UR5 g7f)z>Fixture generator for segment-based API using in-memory Sqliter�r�r�FT)r�r�r�r�r�r�r�Nr	r190s  r6�python_sqlite_ephemeralr�sI����9�<�?�?�$]����H��H�
�F�191�L�L�N�192�L�193�K�K�M�s�AAc#�P# �[R"5n[SSSSSSSURS9n[	U5nUR5 Uv� UR
5 UR5 g![[4a n[RS:XaSnAgUeSnAff=f7f)z?Fixture generator for segment-based API using persistent Sqliter�r�r�T)r�r�r�r�r�r�r�r�r�N)r�r�rr�rr�r�r�r�r�rf)�	save_pathrLr�r�s    r6�python_sqlite_persistentr�s�����+�+�-�I��9�<�?�?�$]���#�.�.�	�H��H�
�F�194�L�L�N�195�L�196�K�K�M�197������
�/�0��
�7�7�d�?���G���s6�AB&�"A3�2B&�3B#�B�B&�B�B#�#B&c#�# �[SSSSSSSSS9n[U5nUR5 Uv� UR5 g7f)	z:Fixture generator for system using ephemeral Rust bindings�!chromadb.api.rust.RustBindingsAPIr�r�FTrt�r�r�r�r�r�r�r�r�Nr	r198s  r6�rust_sqlite_ephemeralr�sL����;�<�?�?�$]����	�H��H�
�F�199�L�L�N�200�L�201�K�K�M�s�AAc#��# �[R"5n[SSSSSSSURS9n[	U5nUR5 Uv� UR
5 g7f)z0Fixture generator for system using Rust bindingsrr�r�TrN)r�r�rr�rr�r�)rrLr�s   r6�rust_sqlite_persistentr�s^����+�+�-�I��;�<�?�?�$]���#�.�.�	�H��H�
�F�202�L�L�N�203�L�204�K�K�M�s�A A"rr)�params�requestc�8�URUR5$r2��getfixturevalue�param�rs r6�sqliter#�����"�"�7�=�=�1�1rErrc�8�URUR5$r2rr"s r6�sqlite_persistentr&�r$rEc��/SQnS[R;a"URS5 URS5 S[R;aSS/nS[R;aS/nS[R;aS	S205/nU$)N)r�r�r��sqlite_fixturer&�CHROMA_INTEGRATION_TESTrrr@rUr�r?rr)rf�environ�append��fixturess r6�filtered_fixture_namesr.�sw���H�!�B�J�J�.����
�&����+�,�%����3�!�#6�7��!�R�Z�Z�/�'�(��'�2�:�:�5�+�-E�F���OrEc�T�[5Vs/sH
nUS;dMUPM nnU$s snf)N)rrrr)r.)�fixturer-s  r6�"filtered_http_server_fixture_namesr1s@��.�/�206�/�G��207�208�	�/�
�209��O��210s�211%�%c��[[/nU$r2)r�r�r,s r6�system_fixtures_authr3s��8�;��H��OrEc��[/nU$r2)rr,s r6� system_fixtures_authn_rbac_authzr5s��6�6�H��OrEc��[/nU$r2)rr,s r6�1system_fixtures_root_and_singleton_tenant_db_userr7"s��C�C�H��OrEc��[/nU$r2)r�r,s r6�system_fixtures_wrong_authr9)s��6�7�H��OrEc��[/nU$r2)r�r,s r6�system_fixtures_sslr;.s���}�H��OrE�module)rrc#�@# �UR5Shv�N gN7fr2�r!r"s r6�system_wrong_authr?3�����}�}��������c#�@# �UR5Shv�N gN7fr2r>r"s r6�system_authn_rbac_authzrC:r@rAc�8�URUR5$r2rr"s r6�system_http_serverrEAs���"�"�7�=�=�1�1rEc�8�URUR5$r2rr"s r6r�r�Hs���"�"�7�=�=�1�1rEc#�@# �UR5Shv�N gN7fr2r>r"s r6�212system_sslrHM�����}�}����rAc#�@# �UR5Shv�N gN7fr2r>r"s r6�system_authrKRrIrAc��\rSrSrSrg)�AsyncClientCreatorSynciWr`N��__name__�213__module__�__qualname__�__firstlineno__�__static_attributes__r`rEr6rMrMW���rErMc��\rSrSrSrg)�AsyncAdminClientSynci\r`NrNr`rEr6rVrV\rTrErVr�c#�# �UR5 UR[5n[U[5(a[U5nUv� gUv� g7fr2)�reset_stater�rr�rr)r�rA�transformeds   r6rArAasA���214����215�/�/�)�216$�C��#�|�$�$�)�#�.�����	�s�AAc��\rSrSr%Sr\\S'/r\\	\S'S\4Sjr217S\S\S	\4S218jr
S	\4SjrS\S\S	\4SjrS	\4S
jrSrg)�ClientFactoriesimz�This allows consuming tests to be parameterized by async/sync versions of the client and papers over the async implementation.219If you don't need to manually construct clients, use the `client` fixture instead.220�_system�_created_clientsr�c��Xlgr2�r\)�selfr�s  r6�__init__�ClientFactories.__init__vs���rEr��kwargsrBc��URS5cURRUS'URS5c[(a	[US'URRR221S:XaA[
[[R"U0UD65nURRU5 U$[U0UD6nURRU5 U$)NrL�databaser�)rGr\rL�MULTI_REGION_ENABLED�DEFAULT_MCMR_DATABASEr�r�
ClientCreatorrM�creater]r+�r`r�rc�clients    r6�
create_client�ClientFactories.create_clientys����:�:�j�!�)�!%���!6�!6�F�:���:�:�j�!�)�.B�.B�!6�F�:��
�L�L�!�!�1�1�8�
9��-�)?�)F�)F��)W�PV�)W�X�F��!�!�(�(��0��M���/��/�����$�$�V�,��
rEc�X�URRRS:XaJ[[[222R
UR55nURRU5 U$[R"UR5nURRU5 U$�Nr�)223r\rLr�rrhrM�from_system_asyncr]r+�from_system�r`rks  r6�create_client_from_system�)ClientFactories.create_client_from_system�s����L�L�!�!�1�1�8�
9���5�G�G����U��F�
�!�!�(�(��0��M��*�*�4�<�<�8�����$�$�V�,��
rEc��URRRS:Xa6[[[U0UD65nURRU5 U$[	U0UD6nURRU5 U$ro)r\rLr�rrrVr]r+rjs    r6�create_admin_client�#ClientFactories.create_admin_client�sw���L�L�!�!�1�1�8�
9��+�';�T�'L�V�'L�M�F��!�!�(�(��0��M��d�-�f�-�����$�$�V�,��
rEc�X�URRRS:XaJ[[[224R
UR55nURRU5 U$[R"UR5nURRU5 U$ro)	r\rLr�rrrVrqr]r+rrs  r6�create_admin_client_from_system�/ClientFactories.create_admin_client_from_system�s����L�L�!�!�1�1�8�
9��+�';�'G�'G����'U�V�F��!�!�(�(��0��M��(�(����6�����$�$�V�,��
rEr_N)rOrPrQrR�__doc__r�__annotations__r]rrrarrhrlrsrrvryrSr`rEr6r[r[msu����O�(*��d�9�o�*��v���3��#��-��&
�=�
����������rEr[c#�225# �UR5 [U5nUv� [UR5S:�aGURR	5nUR5 A[UR5S:�aMFgg7f)Nr)rXr[�lenr]�pop�clear_system_cache)r��	factoriesrks   r6�client_factoriesr��sk���226������'�I�227�O�228
�i�(�(�229)�A�230-��+�+�/�/�1���!�!�#���i�(�(�231)�A�232-�s�A=B�B�
database_namec�j�[URS55S:�aURS5S$S$)NrXrur)r~r�)r�s r6�get_topology_namer��s5��*-�m�.A�.A�#�.F�*G�!�*K�=���s�#�A�&�U�QU�UrErkc��UR5nURS:XaSUl[U5nURU5 g)Nr�r�)�get_settingsr�r�create_database)rkr��admin_settingsr�s    r6r�r��s?���(�(�*�N��%�%�)R�R�)G��&���'�E�	���-�(rEc��S[[R"55-n[UR5nUbUS-U-n[X5 UR
U5 g)zHCreate an isolated database for a test and updates the client to use it.�test_NrX)�str�uuid�uuid4r�rer��set_database)rkre�	topo_names   r6�create_isolated_databaser��sO����T�Z�Z�\�*�*�H�!�&�/�/�2�I����s�?�X�-���F�%�233����!rEc#��# �UR5 URRS:Xa"[[[234R
XS95nO[R"XS9nUv� UR5 g7f�Nr�)re)235rXrLr�rrrMrprhrqr�)r�r�rks   r6rkrk�se���236����
���&�&�*S�S���"�4�4�V�4�T�237��238�*�*�6�J��239�L�240����s�A6A8c�6�[[UR5$r2)rr�r!r"s r6r�r��s����W�]�]�#�#rE�metafuncc�T�SUR;a�[R"[SS9/n[(aaUR241R
S5(aAUR[R"[S[RRS95 URSUSS9 g	g	)242zNParameterize database_name based on whether the test opted in to multi-region.r��classic)�id�test_with_multi_regionzmulti-region-db)r��marksT)�indirectN)�fixturenamesr\r!rrf�243definition�get_closest_markerr+rgr]r��parametrize)r�rs  r6�pytest_generate_testsr��s����(�/�/�/��,�,�/�I�>�?����H�$7�$7�$J�$J�$�%244�%245�
�M�M����)�(� �+�+�<�<��
�	���_�f�t��D�0rE�	test_func.c�@�[RRU5$)z�Opt-in decorator for multi-region testing.246 247If MULTI_REGION_ENABLED: Test runs with MCMR database (tilt-spanning+default_database)248If not MULTI_REGION_ENABLED: Test runs with default database only249)r\r]r�)r�s r6�multi_region_testr��s���;�;�-�-�i�8�8rEr�c���[US5(abUR5H9nURS:XdM[(aSOSnURU3Ul g URS3Ulgg)z'Modify test names to show database type�iter_markersr�z[multi-region]z[single-region]N)�hasattrr�r�rf�_nodeid)r��markerr�s   r6�pytest_itemcollectedr�sm���t�^�$�$��'�'�)�F��{�{�6�6�-A�-A�)�GX��"&�,�,���x�8����*�#�l�l�^�?�;�D�L�%rErEc#�# �UR5 URRS:Xa6[[[250R
XS95nUv� UR5 g[R"XS9nUv� UR5 g7fr�)251rXrLr�rrrMrpr�rhrq)rEr�rks   r6�http_clientr�s�����"�"�$�	�#�#�3�3�4�	5���"�4�4�"�
5�
�252�����!�!�#��*�*�+=�V�����!�!�#�s�B253BrHc#�# �UR5 [R"U5nUv� UR5 g7fr2)rXrhrqr�)rHrks  r6�254client_sslr�2s2�������
�
&�
&�z�
2�F�255�L�256����s�<>r?c#�^# �UR5 UR[5nUv� g7fr2�rXr�r)r?rAs  r6�api_wrong_credr�:s(����!�!�#�257�258$�259$�Y�260/�C�261
�I���+-rCc#�^# �UR5 UR[5nUv� g7fr2r�)rCrAs  r6�api_with_authn_rbac_authzr�Cs(����'�'�)�262!�263*�264*�9�2655�C�266
�I�r�rKc#�b# �UnUR5 UR[5nUv� g7fr2r�)rK�_sysrAs   r6�api_with_server_authr�Ls)����D�����267�-�-�	�268"�C�269
�I�s�-/c
�N�\rSrSrS\S\S\\S\S\	\270\\271\44272SjrSr
g	)273�274ProducerFniW�producer�
collection_id�275embeddings�nrBc��gr2r`)r`r�r�r�r�s     r6�__call__�ProducerFn.__call__Xs��=@rEr`N)rOrPrQrRrrrrr�r	rrr�rSr`rEr6r�r�WsU��@��@��@��_�-�	@�276�@�277�x��(�(�5�/�9�	:�
@rEr�r�r�r�r�c��/n/n[U5HAn[U5nURX5nURU5 URU5 MC XE4$r2)�range�next�submit_embeddingr+)	r�r�r�r��submitted_embeddings�seq_ids�_r��seq_ids	         r6�produce_n_singler�as\�����G�
�1�X�������*�*�=�<���#�#�A�&����v��	�278 �(�(rEc��/n/n[U5Hn[U5nURU5 M! URX5nXE4$r2)r�r�r+�submit_embeddings)r�r�r�r�r�r�r�r�s        r6�produce_n_batchr�qsP����!�G�
�1�X�������#�#�A�&���(�(��M�G��(�(rEc��[[/$r2)r�r�r`rEr6�produce_fn_fixturesr��s
���o�.�.rEc#�(# �URv� g7fr2r>r"s r6�produce_fnsr��s����-�-��s��configc�L�URSS5 URSS5 g)zRegister custom markers�markersz+dual_database: run test with both databaseszMtest_with_multi_region: run test with MCMR database when MULTI_REGION_ENABLEDN)�addinivalue_line)r�s r6�pytest_configurer��s'��279���I�'T�U�280����W�rEc�:�UR5RSL$)ziReturns True if the client is in-process (a SQLite client), False if it's out-of-process (a HTTP client).N)r�r�)rks r6�is_client_in_processr��s����� �8�8�D�@�@rE)�autouse)NNNc#�# �URRn[RSU35 Sv� [RSU35 g7f)z2Automatically logs the start and end of each test.zStarting test: NzFinished test: )�noder��logger�debug)r�	test_names  r6�	log_testsr��sA������!�!�I�281�L�L�?�9�+�.�/�282�283�L�L�?�9�+�.�/�s�AAc�(�S[S[4SjnU$)z"Return mock embeddings for testing�inputrBc�x�UVs/sH(n[R"/SQ[RS9PM* sn$s snf)N�g�������?g�������?g333333�?)�dtype)�np�array�float32)r�r�s  r6�_mock_embeddings�)mock_embeddings.<locals>._mock_embeddings�s)��EJ�K�U�������284�285�;�U�K�K��Ks�/7r!)r�s r6�mock_embeddingsr��s ��L�	�L�j�L��rE�monkeypatchc���[5[5[5[5[5[5[5[5[5[5[5S.nUR[S[[R40UD65 [5[5[5[5[5[5S.n[5n[286R"/SQ/5URl[287R"/SQ/5URlU[5U4USRlUR5HupEURXESS9 M U$)zMock common dependencies)�PIL�torch�openai�cohere�sentence_transformers�ollama�InstructorEmbedding�voyageai�text2vec�	open_clip�boto3�modules)z	PIL.Imagez)sentence_transformers.SentenceTransformerz
ollama.ClientzInstructorEmbedding.INSTRUCTORzvoyageai.Clientztext2vec.SentenceModelr�r�F)�raising)r�setattr�sys�dictr�r�r��encode_text�return_value�encode_image�create_model_and_transformsrJ)r��mock_modules�mock_attributes�288mock_modelrg�mocks      r6�mock_common_depsr�s��289�{����+��+�!*���+�(�{��K��K��[����L�����Y��S�[�[�(I�L�(I�J��[�5>�[�"��*3�+�$�;�"+�+�
�O���J�*,�(�(�O�3D�*E�J���'�+-�8�8�_�4E�+F�J���(�����J�L���9�9�F�&�+�+�-�290�����D���6�.��rE)r:)rBN)FNNNNNNNNNF)r)
Fr�NNNNNNNNNNF)r)�r�rfrvror�r��typingrrrrrrr	r291rr�rrKr\r��httpxr
�typing_extensionsr�chromadb.api.async_fastapir�chromadb.api.fastapir�chromadb.server.fastapir��chromadb.apirrr�chromadb.configrrr�chromadb.ingestr�chromadb.typesrr�chromadb.api.clientrrhr�chromadb.api.async_clientrr�AsyncClientCreator�chromadb.utils.async_to_syncr�loggingr��numpyr��
unittest.mockrr �chromadb.api.typesr"r#�	getLoggerrOr��
VALID_PRESETSr�rH�HYPOTHESIS_CI_REPRODUCE_ONLY�292ValueError�HealthCheck�data_too_large�large_base_example�function_scoped_fixture�	Verbosity�verboser/r�r�r|�Phase�shrinkr3�getattr�
explain_phase�add�update�tuplerL�register_profile�get_profile�load_profile�is_spann_disabled_mode�skip_reason_spann_disabled�skip_reason_spann_enabledrDrTr_rf�MULTI_REGION_TOPOLOGYrg�COMPACTION_SLEEP�
MarkDecoratorrarrr�r�boolr�r�r�r�r�r�r�r�r0r�r�r�r�rrrrrrrrr*�FixtureRequestr#r&r.r1r3r5r7r9r;r?rCrEr�rHrKrMrVrAr[r�r�r�r�rkr��Metafuncr�r�r��Itemr�r�r�r�r�r�r�r�r�r�r��Configr�r�r�r�rr`rEr6�<module>r5s����	�
����293�294�295���
���&�3�(��6�6�>�>�$�1�D��=��296��#��4��	�	�	�8�	$��*�
����4�f�=��!�y�y�)N�O�SV�V����&�297�298+�N�+;�;L�]�O�[\�]���299����-�-����1�1����6�6��300�%�%�-�-�,��$�s�C�x�.�� �!�'�'�.�.�/�O��J�,�,�i��>�M�� ����M�*��#�#��301�)�/�/�302�303��	$�����$�$�H�/G�H�304���$�$�305�J���+�+�F�3�"�%�����$�$��j�!�!�-�-�f�5�C�%�����$�$�306����#�#�F�+���	%����� � ��0�307�I�I�.�/�3�6�8�	�y�y�/�0�C�7��308W��T��309�w��4��310+/�,0�*.�(B�311�:�&�&�312'�(B��Z�(�(�)�(B��:�&�&�313'�(B��j�!�!�"�	(B�V�9�9�7�8�C�?��+�+�S��	�	�.�0I�V�0S��'��0�1��3C�2D�E�����V�1�1���:"��"� �'+�26�:>�59�8<�26�59�04�/3�RW�;�314
�;��;� ��}�;�#+�3�-�	;�315+3�3�-�;�&.�c�]�
;�)1��
�;�#+�3�-�;�&.�c�]�;�!)��
�;� (��}�;�BJ�$��;�316�;�|-�y�-�C�-��-� �9�26�15�:>�59�48�8<�26�59�04�/3�RW�h��h��h�#+�3�-�h�"*�#��	h�317+3�3�-�h�&.�c�]�
h�%-�S�M�h�)1��
�h�#+�3�-�h�&.�c�]�h�!)��
�h� (��}�h�BJ�$��h��v�t�T�!�"�h�V1��6�4��-�.�1��y���t�!3�4��0�I�f�d�D�&8�9�0��Y�v�t�T�1�2��
��c�3�h��
� �����9�V�T�4�%7�8����"�)�F�D�RV�DV�:W��&�Y�318�D�$��>��.�	�&�$��:L�0M��6�y���t�9K�/L�6�t3�3��3��v�t�T�!�"�3�l����319�Y�v�t�T�1�2�320��321�����322�9�V�T�4�%7�8�323��324����j�!���6�4��+=�!>��"��"���j�!��)�F�D�$�,>�"?��"��>���j�!��y���t�);�<��"��$���j�!��	�&�$��*<� =��"��&���'�2�:�:�5�
$�$�325#�	$��3262�F�)�)�2�i���d�8J�.K�2��3272����'�2�:�:�5�
%�%�328$�	%��3292�v�4�4�2��6�4�QU�CU�9V�2��3302���S�	��*�D��I���d�8�B�	�&�$��:L�0M�,M�#N�O���$��R��6�4��-�.�
.�/�+���4��R��6�4��-�.�
.�/�<���D��"�i���d�@R�6S�2S�)T�$U��331�T�(�2�y���t�9K�/L�+L�"M�N��332���h�'A�'C�D��
�
"�
"���y�$��$�%��E�����h�'G�'I�J��
�
"�
"���y�$��$�%��K�����9�;�<�2�
�
"�
"�2��y�$��$�%�2�=�2����j�)?�)A�B�2�F�)�)�2�i�	�4��8M�.N�2�C�2����h�':�'<�=���-�-��)�I�t�T�<Q�2R��>�����h�';�'=�>���.�.��9�Y��d�=R�3S��?���	�/�	��	��	�+�	��	����j�!����9�Y��d�%:�;��"��F�F�R���j�!�	�V�	�	�/�4��2M�(N�	�"�	�V�S�V�X�c�]�V�)�I�)�c�)�d�)�"�Y�"�4�"����j�!� �6� �#� �)�I�t�T�<Q�2R� �"� ����$�6�0�0�$�S�$��$�E�F�O�O�E��E�"9��#�s�(�!3�9��9�+��<�v�{�{�<�t�<����j�!�$��$�/2�$��y�$��$�%�$�"�$�.���j�!� �6� �i�	�4��0E�&F� �"� ����j�!�����y�$��$�%��"�����j�!��#���y�$��$�%��"�����j�!��f���9�d�D�;P�1Q��"��@��@�
)��
)��
)���)�
)��	
)�333�8�O�$�h�u�o�5�6�
)� )��)��)���)�)��	)�334�8�O�$�h�u�o�5�6�)�/�T�*�-�/����h�':�'<�=��
�
"�
"���z�4��%�&��>���V�]�]��t��A��A�t�A�335�����0�v�,�,�0��;K�1L�0��0������9�+�z�"9�:�������,�+�,�+�,��,rE
codekingpro/portable-devtools · Team Ai