§
    ˜ŠtjFH  ã                   ó´  — U d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZmZmZmZ d dl	mZmZmZ d dlmZ d dlmZ d d	lmZ d dlZd d
lmZ d dlmZ dZ	 d dlmZ n# e $ r dZY nw xY w ej!        e"¦  «        Z#dZ$dhZ%h d£Z&i dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“d#d$“d%d&“d'd(“d)d*“d+d,“d-d.“d/d0“Z'ee(e(f         e)d1<   d2Z*d3Z+ G d4„ d5e(e¦  «        Z, G d6„ d7e¦  «        Z- G d8„ d9e¦  «        Z. ed:d;¬<¦  «        Z/ G d=„ d;ee¦  «        Z0 G d>„ d?e0¦  «        Z1 ed@¦  «        Z2dAe(dBee2         dCee2         fdD„Z3dEee4         dCe(fdF„Z5dS )Gé    N)ÚABC)ÚEnum)ÚTopologicalSorter)ÚOptionalÚListÚAnyÚDictÚSetÚIterableÚUnion)ÚTypeÚTypeVarÚcast)ÚEnforceOverrides)Úoverride)ÚLiteral)Úfield_validator)ÚBaseSettingsF)Úis_thin_clienta  [91mYou are using a deprecated configuration of Chroma.

[94mIf you do not have data you wish to migrate, you only need to change how you construct
your Chroma client. Please see the "New Clients" section of https://docs.trychroma.com/deployment/migration.
________________________________________________________________________________________________

If you do have data you wish to migrate, we have a migration tool you can use in order to
migrate your data to the new Chroma architecture.
Please `pip install chroma-migrate` and run `chroma-migrate` to migrate your data and then
change how you construct your Chroma client.

See https://docs.trychroma.com/deployment/migration for more information or join our discord at https://discord.gg/MMeYNTmh3x for help![0mÚchroma_db_impl>	   úduckdb+parquetúchromadb.db.duckdb.DuckDBúchromadb.api.local.LocalAPIú!chromadb.db.clickhouse.Clickhouseú#chromadb.db.duckdb.PersistentDuckDBÚrestÚlocalÚduckdbÚ
clickhousezchromadb.api.APIÚchroma_api_implzchromadb.api.ServerAPIz%chromadb.api.async_api.AsyncServerAPIz chromadb.auth.ClientAuthProviderÚchroma_client_auth_providerz*chromadb.auth.ServerAuthenticationProviderÚchroma_server_authn_providerz)chromadb.auth.ServerAuthorizationProviderÚchroma_server_authz_providerzchromadb.db.system.SysDBÚchroma_sysdb_implz-chromadb.execution.executor.abstract.ExecutorÚchroma_executor_implzchromadb.ingest.ConsumerÚchroma_consumer_implzchromadb.ingest.ProducerÚchroma_producer_implzchromadb.quota.QuotaEnforcerÚchroma_quota_enforcer_implz%chromadb.rate_limit.RateLimitEnforcerÚchroma_rate_limit_enforcer_implz*chromadb.rate_limit.AsyncRateLimitEnforcerÚ%chroma_async_rate_limit_enforcer_implzchromadb.segment.SegmentManagerÚchroma_segment_manager_implz-chromadb.segment.distributed.SegmentDirectoryÚchroma_segment_directory_implz/chromadb.segment.distributed.MemberlistProviderÚchroma_memberlist_provider_implz1chromadb.telemetry.product.ProductTelemetryClientÚchroma_product_telemetry_implÚ_abstract_type_keysÚdefault_tenantÚdefault_databasec                   ó   — e Zd ZdZdZdS )Ú
APIVersionz/api/v1z/api/v2N)Ú__name__Ú
__module__Ú__qualname__ÚV1ÚV2© ó    úM/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/config.pyr3   r3   W   s   € € € € € Ø	€BØ	€B€B€Br:   r3   c                   ó   — e Zd ZdZdZdZdS )ÚRoutingModea  
    Routing mode for the segment directory

    node - Assign based on the node name, used in production with multi-node settings with the assumption that
    there is one query service pod per node. This is useful for when there is a disk based cache on the
    node that we want to route to.

    id - Assign based on the member id, used in development and testing environments where the node name is not
    guaranteed to be unique. (I.e a local development kubernetes env). Or when there are multiple query service
    pods per node.
    ÚnodeÚidN)r4   r5   r6   Ú__doc__ÚNODEÚIDr9   r:   r;   r=   r=   _   s$   € € € € € ð
ð 
ð €DØ	€B€B€Br:   r=   c                   ó`  — e Zd ZU dZeed<   dZeed<   dZee	         ed<    e
dd¬¦  «        ed	ed
ee	         fd„¦   «         ¦   «         ZdZe	ed<   dZeed<   dZeed<   dZee         ed<   dZeeeef                  ed<   dZee	         ed<   dZee         ed<   dZeeeef                  ed<   ej        Zee         ed<   g Zee         ed<   dZee         ed<   dZ ee	         ed<   dZ!ee	         ed<   dZ"eed<   dZ#eed<   d Z$e	ed!<   dZ%ee         ed"<   dZ&eed#<   dZ'ee         ed$<   dZ(ee         ed%<   dZ)ee         ed&<   ej        › d'gej        › d(�d'gej        › d)�d'gej*        › d'gej*        › d(�d'gej*        › d)�d'giZ+eeee         f         ed*<   dZ,eed+<   dZ-ee         ed,<   dZ.ee         ed-<   dZ/ee         ed.<   dZ0ee         ed/<   dZ1ee         ed0<   dZ2ee         ed1<   d2Z3eed3<   e3Z4eed4<   d5Z5eed6<   dZ6ee         ed7<   d8Z7ee         ed9<   i Z8eeef         ed:<   dZ9ee         ed;<   d<Z:e;d=         ed><   d?Z<e;d@         edA<   dBZ=eedC<   e>j?        Z@e>edD<   dEZAeedF<   dGZBeedH<   dIZCeedJ<   dZDee	         edK<   dLZEeedM<   dLZFeedN<   dLZGeedO<   dPZHeedQ<   dRZIeedS<   dTZJe	edU<   dIZKeedV<   dWZLe	edX<   dZMee         edY<   dZNee         edZ<   d[ZOeed\<   d]ZPeed^<   d_ZQeed`<   daZRe	edb<   daZSe	edc<   ddZTe	ede<   dZUee         edf<   dgZVeedh<   died
efdj„ZWdied
efdk„ZXdldmdndoœZYdS )pÚSettingsÚ Úenvironmentz!chromadb.api.rust.RustBindingsAPIr    NÚchroma_server_nofileÚbefore)ÚmodeÚvÚreturnc                 ód   — t          |t          ¦  «        r|                     ¦   «         dk    rd S |S )NrE   )Ú
isinstanceÚstrÚstrip)ÚclsrJ   s     r;   Úempty_str_to_nonezSettings.empty_str_to_none|   s0   € õ �a�ÑÔð 	 !§'¢'¡)¤)¨r¢/ /Ø�4Øˆr:   é(   Úchroma_server_thread_pool_sizeÚdefaultÚ	tenant_idÚtopic_namespaceÚchroma_server_hostÚchroma_server_headersÚchroma_server_http_portFÚchroma_server_ssl_enabledÚchroma_server_ssl_verifyÚchroma_server_api_default_pathÚ chroma_server_cors_allow_originsg      D@Úchroma_http_keepalive_secsÚchroma_http_max_connectionsÚ%chroma_http_max_keepalive_connectionsÚis_persistentz./chromaÚpersist_directoryr   Úchroma_memory_limit_bytesÚchroma_segment_cache_policyÚallow_resetÚ"chroma_auth_token_transport_headerr!   Úchroma_client_auth_credentialsÚGETz
/heartbeatz/versionÚchroma_server_auth_ignore_pathsÚ;chroma_overwrite_singleton_tenant_database_access_from_authr"   Úchroma_server_authn_credentialsÚ$chroma_server_authn_credentials_filer#   Úchroma_server_authz_configÚchroma_server_authz_config_filez*chromadb.telemetry.product.posthog.Posthogr.   Úchroma_telemetry_implTÚanonymized_telemetryÚchroma_otel_collection_endpointÚchromadbÚchroma_otel_service_nameÚchroma_otel_collection_headersÚchroma_otel_granularityÚapply)ÚnoneÚvalidaterv   Ú
migrationsÚmd5)rz   Úsha256Úmigrations_hash_algorithmzRchromadb.segment.impl.distributed.segment_directory.RendezvousHashSegmentDirectoryr,   Ú%chroma_segment_directory_routing_modezTchromadb.segment.impl.distributed.segment_directory.CustomResourceMemberlistProviderr-   zquery-service-memberlistÚworker_memberlist_nameÚ	localhostÚchroma_coordinator_hostÚchroma_server_grpc_portz chromadb.db.impl.sqlite.SqliteDBr$   r'   r&   z7chromadb.segment.impl.manager.local.LocalSegmentManagerr+   z/chromadb.execution.executor.local.LocalExecutorr%   é   Úchroma_query_replication_factorÚchroma_logservice_hosti„Ã  Úchroma_logservice_portÚchroma_quota_provider_implÚ"chroma_rate_limiting_provider_implz8chromadb.quota.simple_quota_enforcer.SimpleQuotaEnforcerr(   z=chromadb.rate_limit.simple_rate_limit.SimpleRateLimitEnforcerr)   zBchromadb.rate_limit.simple_rate_limit.SimpleAsyncRateLimitEnforcerr*   é   Ú)chroma_logservice_request_timeout_secondsÚ$chroma_sysdb_request_timeout_secondsé<   Ú$chroma_query_request_timeout_secondsr   z9chromadb.ingest.impl.simple_policy.SimpleAssignmentPolicyÚ(chroma_collection_assignment_policy_implÚkeyc                 ó@   — | |         }|€t          d|› d�¦  «        ‚|S )zYReturn the value of a required config key, or raise an exception if it is not
        setNzMissing required config value 'ú')Ú
ValueError©ÚselfrŽ   Úvals      r;   ÚrequirezSettings.require1  s1   € ð �3ŒiˆØˆ;ÝÐE¸sÐEÐEÐEÑFÔFÐFØˆ
r:   c                 óŠ   — t          | |¦  «        }t          |t          ¦  «        r|t          v rt	          t
          ¦  «        ‚|S ©N)ÚgetattrrM   rN   Ú_legacy_config_valuesr‘   ÚLEGACY_ERRORr’   s      r;   Ú__getitem__zSettings.__getitem__9  sA   € Ý�d˜CÑ Ô ˆå�c�3ÑÔð 	+ CÕ+@Ð$@Ð$@Ý�\Ñ*Ô*Ð*Øˆ
r:   z.envzutf-8Úignore)Úenv_fileÚenv_file_encodingÚextra)Zr4   r5   r6   rF   rN   Ú__annotations__r    rG   r   Úintr   Úclassmethodr   rQ   rS   rU   rV   rW   rX   r	   rY   rZ   Úboolr[   r   r3   r8   r\   r]   r   r^   Úfloatr_   r`   ra   rb   rc   rd   re   rf   r!   rg   r7   ri   rj   r"   rk   rl   r#   rm   rn   r.   ro   rp   rq   rs   rt   ru   ry   r   r|   r,   r=   rB   r}   r-   r~   r€   r�   r$   r'   r&   r+   r%   rƒ   r„   r…   r†   r‡   r(   r)   r*   r‰   rŠ   rŒ   r   r�   r•   r›   Úmodel_configr9   r:   r;   rD   rD   p   su  € € € € € € ð
 €K�ÐÐÑð ?€O�SÐ>Ð>Ñ>à*.Ð˜( 3œ-Ð.Ð.Ñ.à€_Ð+°(Ð;Ñ;Ô;Øð #ð ¨(°3¬-ð ð ð ñ „[ñ <Ô;ðð +-Ð" CÐ,Ð,Ñ,ð €IˆsÐÐÑØ$€O�SÐ$Ð$Ñ$à(,Ð˜ œÐ,Ð,Ñ,Ø6:Ð˜8 D¨¨c¨¤NÔ3Ð:Ð:Ñ:Ø-1Ð˜X cœ]Ð1Ð1Ñ1Ø05Ð˜x¨œ~Ð5Ð5Ñ5à;?Ð˜h u¨T°3¨YÔ'7Ô8Ð?Ð?Ñ?Ø;E¼=Ð" H¨ZÔ$8ÐHÐHÑHà24Ð$ d¨3¤iÐ4Ð4Ñ4à26Ð ¨¤Ð6Ð6Ñ6Ø15Ð ¨#¤Ð5Ð5Ñ5Ø;?Ð)¨8°C¬=Ð?Ð?Ñ?ð  €M�4ÐÐÑØ'Ð�sÐ'Ð'Ñ'à%&Ð˜sÐ&Ð&Ñ&Ø15Ð ¨#¤Ð5Ð5Ñ5à€K�ÐÐÑð 9=Ð&¨°¬Ð<Ð<Ñ<ð 26Ð ¨#¤Ð5Ð5Ñ5ð 59Ð" H¨S¤MÐ8Ð8Ñ8ð Œ=Ð˜U˜GØŒ=Ð$Ð$Ð$ u gØŒ=Ð"Ð"Ð" U GØŒ=Ð˜U˜GØŒ=Ð$Ð$Ð$ u gØŒ=Ð"Ð"Ð" U Gð=Ð# T¨#¨t°C¬y¨.Ô%9ð ð ñ ð INÐ?ÀÐMÐMÑMð 37Ð  (¨3¤-Ð6Ð6Ñ6à59Ð# X¨c¤]Ð9Ð9Ñ9Ø:>Ð(¨(°3¬-Ð>Ð>Ñ>ð 37Ð  (¨3¤-Ð6Ð6Ñ6à04Ð ¨¤Ð4Ð4Ñ4Ø59Ð# X¨c¤]Ð9Ð9Ñ9ð *VÐ! 3ÐUÐUÑUà!>Ð˜3Ð>Ð>Ñ>à!%Ð˜$Ð%Ð%Ñ%à57Ð# X¨c¤]Ð7Ð7Ñ7Ø.8Ð˜h sœmÐ8Ð8Ñ8Ø57Ð" D¨¨c¨¤NÐ7Ð7Ñ7Ø-1Ð˜X cœ]Ð1Ð1Ñ1ð 8?€J�Ð3Ô4Ð>Ð>Ñ>ð ;@Ð˜w Ô7Ð?Ð?Ñ?ð *~Ð! 3Ð}Ð}Ñ}Ø9D¼Ð)¨;ÐGÐGÑGð ,BÐ# Sð  Bð  Bñ  BØ"<Ð˜CÐ<Ð<Ñ<à#.Ð˜SÐ.Ð.Ñ.à-1Ð˜X cœ]Ð1Ð1Ñ1Ø?Ð�sÐ?Ð?Ñ?à BÐ˜#ÐBÐBÑBØ BÐ˜#ÐBÐBÑBð 	Bð   ð ð ñ ð !RÐ˜#ÐQÐQÑQØ+,Ð# SÐ,Ð,Ñ,à"-Ð˜CÐ-Ð-Ñ-Ø"'Ð˜CÐ'Ð'Ñ'à04Ð ¨¤Ð4Ð4Ñ4Ø8<Ð&¨°¬Ð<Ð<Ñ<ð 	Cð  ð ð ñ ð
 	Hð $ Sð ð ñ ð
 	Mð *¨3ð ð ñ ð 67Ð-¨sÐ6Ð6Ñ6Ø01Ð(¨#Ð1Ð1Ñ1Ø02Ð(¨#Ð2Ð2Ñ2ð %)€N�H˜S”MÐ(Ð(Ñ(àCð -¨cð ð ñ ð˜3ð  3ð ð ð ð ð˜sð  sð ð ð ð ð !'¸WÈxÐXÐX€L€L€Lr:   rD   ÚTÚ	Component)Úboundc                   óŽ   — e Zd ZU ed          ed<   ded<   eed<   dd„Zdee         defd	„Z	ded          fd
„Z
dd„Zdd„Zdd„ZdS )r§   Ú_dependenciesÚSystemÚ_systemÚ_runningÚsystemc                 óH   — t          ¦   «         | _        || _        d| _        d S )NF)Úsetrª   r¬   r­   )r“   r®   s     r;   Ú__init__zComponent.__init__K  s    € Ý ™UœUˆÔØˆŒØˆŒˆˆr:   ÚtyperK   c                 ón   — | j                              |¦  «        }| j                             |¦  «         |S )zbGet a Component instance of the given type, and register as a dependency of
        that instance.)r¬   Úinstancerª   Úadd)r“   r²   Úinsts      r;   r•   zComponent.requireP  s5   € ð Œ|×$Ò$ TÑ*Ô*ˆØÔ×Ò˜tÑ$Ô$Ð$Øˆr:   c                 ó   — | j         S )z<Return the full set of components this component depends on.)rª   ©r“   s    r;   ÚdependencieszComponent.dependenciesW  s   € àÔ!Ð!r:   Nc                 ób   — t                                d| j        j        › �¦  «         d| _        dS )zWIdempotently stop this component's execution and free all associated
        resources.zStopping component FN©ÚloggerÚdebugÚ	__class__r4   r­   r¸   s    r;   ÚstopzComponent.stop[  s/   € õ 	�ŠÐD¨4¬>Ô+BÐDÐDÑEÔEÐEØˆŒˆˆr:   c                 ób   — t                                d| j        j        › �¦  «         d| _        dS )z-Idempotently start this component's executionzStarting component TNr»   r¸   s    r;   ÚstartzComponent.starta  s-   € å�ŠÐD¨4¬>Ô+BÐDÐDÑEÔEÐEØˆŒˆˆr:   c                 óT   — t                                d| j        j        › �¦  «         dS )zgReset this component's state to its initial blank state. Only intended to be
        called from tests.zResetting component N)r¼   r½   r¾   r4   r¸   s    r;   Úreset_statezComponent.reset_statef  s*   € õ 	�ŠÐE¨D¬NÔ,CÐEÐEÑFÔFÐFÐFÐFr:   )r®   r«   ©rK   N)r4   r5   r6   r
   r    r£   r±   r   r¦   r•   r¹   r¿   rÁ   rÃ   r9   r:   r;   r§   r§   F  sØ   € € € € € € Ø�{Ô#Ð#Ð#Ñ#ØÐÐÑØ€N€N�Nðð ð ð ð
˜D œGð ¨ð ð ð ð ð"˜c +Ô.ð "ð "ð "ð "ðð ð ð ðð ð ð ð
Gð Gð Gð Gð Gð Gr:   c                   óÚ   ‡ — e Zd ZU eed<   eee         ef         ed<   defˆ fd„Zdee	         de	fd„Z
dee         fd„Zedˆ fd	„¦   «         Zedˆ fd
„¦   «         Zedd„¦   «         Zˆ xZS )r«   ÚsettingsÚ
_instancesc           	      óê  •— t           r|d         dvrt          d¦  «        ‚t          D ]}||         �t          t          ¦  «        ‚Œ|d         �L|d         dk    r@t
                               d¦  «         |d         dk    rt
                               d	¦  «         |d
         ��t          j        ¦   «         dk    rîdd l	}| 
                    |j        ¦  «        \  }}|d
         }||k    rt          j        d|› d|› �¦  «         n¾||k    rv	 |                     |j        ||f¦  «         t
                               d|› �¦  «         n|# t           $ r-}t
                               d|› d|› d|› �¦  «         Y d }~nJd }~ww xY w||k     r!t
                               d|› d|› d�¦  «         nt
                               d¦  «         || _        i | _        t'          ¦   «                              | ¦  «         d S )Nr    )zchromadb.api.fastapi.FastAPIz'chromadb.api.async_fastapi.AsyncFastAPIa  Chroma is running in http-only client mode, and can only be run with 'chromadb.api.fastapi.FastAPI' or 'chromadb.api.async_fastapi.AsyncFastAPI' as the chroma_api_impl.             see https://docs.trychroma.com/guides#using-the-python-http-only-client for more information.rd   ÚLRUzAFailed to set chroma_segment_cache_policy: Only LRU is available.rc   r   zPFailed to set chroma_segment_cache_policy: chroma_memory_limit_bytes is require.rG   ÚWindowszUchroma_server_nofile cannot be set to a value greater than the current hard limit of z. Keeping soft limit at zSet chroma_server_nofile to z&Failed to set chroma_server_nofile to z: z" nofile soft limit will remain at zchroma_server_nofile is set to z., but this is less than current soft limit of z'. chroma_server_nofile will not be set.zWchroma_server_nofile is not supported on Windows. chroma_server_nofile will not be set.)r   ÚRuntimeErrorÚ_legacy_config_keysr‘   rš   r¼   ÚerrorÚplatformr®   ÚresourceÚ	getrlimitÚRLIMIT_NOFILEÚloggingÚwarningÚ	setrlimitÚinfoÚ	ExceptionrÆ   rÇ   Úsuperr±   )	r“   rÆ   rŽ   rÏ   Ú	curr_softÚ	curr_hardÚdesired_softÚer¾   s	           €r;   r±   zSystem.__init__p  sÜ  ø€ Ýð 		àÐ)Ô*ð 3ð ð õ #ðkñô ð õ
 'ð 	/ð 	/ˆCØ˜Œ}Ð(Ý ¥Ñ.Ô.Ð.ð )ð Ð2Ô3Ð?ØÐ6Ô7¸5Ò@Ð@å�LŠLØSñô ð ð Ð3Ô4¸Ò9Ð9Ý—’Øfñô ð ð
 Ð*Ô+Ñ7ÝŒÑ Ô  IÒ-Ð-Ø���à'/×'9Ò'9¸(Ô:PÑ'QÔ'QÑ$�	˜9Ø'Ð(>Ô?�à )Ò+Ð+Ý”Oð _Ðpyð  _ð  _ð  T]ð  _ð  _ñô ð ð ð " IÒ-Ð-ðØ ×*Ò*Ø$Ô2°\À9Ð4Mñô ð õ ŸšÐ$QÀ<Ð$QÐ$QÑRÔRÐRÐRøÝ$ð ð ð ÝŸšð FÀ\ð  Fð  FÐUVð  Fð  Fð  {Dð  Fð  Fñô ð ð ð ð ð ð øøøøðøøøð
 " IÒ-Ð-Ý—N’Nð i¸,ð  ið  iÐvð  ið  ið  iñô ð øõ —’Ømñô ð ð !ˆŒØˆŒÝ‰Œ×Ò˜ÑÔÐÐÐs   Ä:E Å
E?Å#E:Å:E?r²   rK   c                 ó¢  — t          j        |¦  «        rat          |¦  «        }|t          vrt	          d|› �¦  «        ‚t          |         }| j                             |¦  «        }t          ||¦  «        }|| j        vr0 || ¦  «        }|| j        |<   | j	        r| 
                    ¦   «          | j        |         }t          t          |¦  «        S )z|Return an instance of the component type specified. If the system is running,
        the component will be started as well.z"Cannot instantiate abstract type: )ÚinspectÚ
isabstractÚget_fqnr/   r‘   rÆ   r•   Ú	get_classrÇ   r­   rÁ   r   r¦   )r“   r²   Útype_fqnrŽ   ÚfqnÚimplr¶   s          r;   r´   zSystem.instance±  sÊ   € õ Ô˜dÑ#Ô#ð 	(Ý˜t‘}”}ˆHØÕ2Ð2Ð2Ý Ð!LÀdÐ!LÐ!LÑMÔMÐMÝ% hÔ/ˆCØ”-×'Ò'¨Ñ,Ô,ˆCÝ˜S $Ñ'Ô'ˆDà�t”Ð&Ð&Ø�4˜‘:”:ˆDØ$(ˆDŒO˜DÑ!ØŒ}ð Ø—
’
‘”�àŒ˜tÔ$ˆÝ•A�t‰}Œ}Ðr:   c                 ó¾   — t          ¦   «         }| j                             ¦   «         D ]"} |j        |g|                     ¦   «         ¢R Ž  Œ#|                     ¦   «         S )zYReturn the full set of all components and their dependencies in dependency
        order.)r   rÇ   Úvaluesrµ   r¹   Ústatic_order)r“   ÚsorterÚ	components      r;   Ú
componentszSystem.componentsÆ  sh   € õ 0AÑ/BÔ/BˆØœ×/Ò/Ñ1Ô1ð 	=ð 	=ˆIØˆFŒJ�yÐ< 9×#9Ò#9Ñ#;Ô#;Ð<Ð<Ð<Ð<Ð<à×"Ò"Ñ$Ô$Ð$r:   Nc                 óž   •— t          ¦   «                              ¦   «          |                      ¦   «         D ]}|                     ¦   «          Œd S r—   )r×   rÁ   ré   ©r“   rè   r¾   s     €r;   rÁ   zSystem.startÏ  sJ   ø€ å‰Œ�Š‰ŒˆØŸšÑ*Ô*ð 	ð 	ˆIØ�OŠOÑÔÐÐð	ð 	r:   c                 óÒ   •— t          ¦   «                              ¦   «          t          t          |                      ¦   «         ¦  «        ¦  «        D ]}|                     ¦   «          Œd S r—   )r×   r¿   ÚreversedÚlistré   rë   s     €r;   r¿   zSystem.stopÕ  sZ   ø€ å‰Œ�Š‰ŒˆÝ!¥$ t§¢Ñ'8Ô'8Ñ"9Ô"9Ñ:Ô:ð 	ð 	ˆIØ�NŠNÑÔÐÐð	ð 	r:   c                 óÆ   — | j         j        st          d¦  «        ‚t          t	          |                      ¦   «         ¦  «        ¦  «        D ]}|                     ¦   «          ŒdS )zOReset the state of this system and all constituents in reverse dependency orderz©Resetting is not allowed by this configuration (to enable it, set `allow_reset` to `True` in your Settings() or include `ALLOW_RESET=TRUE` in your environment variables)N)rÆ   re   r‘   rí   rî   ré   rÃ   )r“   rè   s     r;   rÃ   zSystem.reset_stateÛ  ss   € ð Œ}Ô(ð 	Ýð |ñô ð õ "¥$ t§¢Ñ'8Ô'8Ñ"9Ô"9Ñ:Ô:ð 	$ð 	$ˆIØ×!Ò!Ñ#Ô#Ð#Ð#ð	$ð 	$r:   rÄ   )r4   r5   r6   rD   r    r	   r   r§   r±   r¦   r´   r   ré   r   rÁ   r¿   rÃ   Ú__classcell__)r¾   s   @r;   r«   r«   l  s'  ø€ € € € € € ØÐÐÑØ�T˜)”_ iÐ/Ô0Ð0Ð0Ñ0ð? ð ?ð ?ð ?ð ?ð ?ð ?ðB˜T !œWð ¨ð ð ð ð ð*%˜H YÔ/ð %ð %ð %ð %ð ðð ð ð ð ñ „Xðð
 ðð ð ð ð ñ „Xðð
 ð$ð $ð $ñ „Xð$ð $ð $ð $ð $r:   r«   ÚCrâ   r²   rK   c                 ó¼   — |                       dd¦  «        \  }}t          j        |¦  «        }t          ||¦  «        }t	          t
          t                   |¦  «        S )zIGiven a fully qualifed class name, import the module and return the classú.é   )ÚrsplitÚ	importlibÚimport_moduler˜   r   r   rñ   )râ   r²   Úmodule_nameÚ
class_nameÚmodulerP   s         r;   rà   rà   é  sM   € à!Ÿjšj¨¨aÑ0Ô0Ñ€K�ÝÔ$ [Ñ1Ô1€FÝ
�&˜*Ñ
%Ô
%€CÝ••Q”˜ÑÔÐr:   rP   c                 ó$   — | j         › d| j        › �S )z.Given a class, return its fully qualified nameró   )r5   r4   )rP   s    r;   rß   rß   ñ  s   € àŒnÐ-Ð-˜sœ|Ð-Ð-Ð-r:   )6rö   rÝ   rÒ   Úabcr   Úenumr   Úgraphlibr   Útypingr   r   r   r	   r
   r   r   r   r   r   Ú	overridesr   r   Útyping_extensionsr   rÎ   Úpydanticr   Úpydantic_settingsr   r   Úchromadb.is_thin_clientÚImportErrorÚ	getLoggerr4   r¼   rš   rÌ   r™   r/   rN   r    ÚDEFAULT_TENANTÚDEFAULT_DATABASEr3   r=   rD   r¦   r§   r«   rñ   rà   Úobjectrß   r9   r:   r;   ú<module>r
     s  ðØ Ð Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &à &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø €€€à $Ð $Ð $Ð $Ð $Ð $Ø *Ð *Ð *Ð *Ð *Ð *ð €ðØ6Ð6Ð6Ð6Ð6Ð6Ð6øØð ð ð Ø€N€N€Nðøøøð 
ˆÔ	˜8Ñ	$Ô	$€ðR€ð ðÐ ð
ð 
ð 
Ð ð 'ð Ð)ð	'ð
 Ð/ð'ð ,Ð->ð'ð 'Ð(Eð'ð 1Ð2Pð'ð 0Ð1Oð'ð Ð 3ð'ð 4Ð5Kð'ð Ð 6ð'ð Ð 6ð'ð #Ð$@ð'ð ,Ð-Nð'ð  1Ð2Yð!'ð" &Ð'Dð#'ð$ 4Ð5Tð%'ð& 6Ð7Xð''ð( 8Ð9Xð)'Ð �T˜#˜s˜(”^ð ð ñ ð. "€Ø%Ð ðð ð ð ð ��dñ ô ð ðð ð ð ð �$ñ ô ð ð"PYð PYð PYð PYð PYˆ|ñ PYô PYð PYðf €GˆC�{Ð#Ñ#Ô#€ð#Gð #Gð #Gð #Gð #G�Ð%ñ #Gô #Gð #GðLw$ð w$ð w$ð w$ð w$ˆYñ w$ô w$ð w$ðt €GˆC�L„L€ð�3ð ˜d 1œgð ¨$¨q¬'ð ð ð ð ð.��f”ð . #ð .ð .ð .ð .ð .ð .s   Á!A( Á(A2Á1A2