
    LKiH                        % S SK r S SKrS SKrS SKJr  S SKJr  S SKJr  S SK	J
r
JrJrJrJrJrJr  S SK	JrJrJr  S SKJr  S SKJr  S S	KJr  S SKrS
r S SKJr  \(       d  S SKJr  S
r  S SK!J r   \RD                  " \#5      r$Sr%S1r&1 Skr'0 SS_SS_SS_SS_SS_SS_SS_SS_S S!_S"S#_S$S%_S&S'_S(S)_S*S+_S,S-_S.S/_S0S1_r(\\)\)4   \*S2'   S3r+S4r, " S5 S6\)\5      r- " S7 S8\5      r. " S9 S:\5      r/\" S;S<S=9r0 " S> S<\\5      r1 " S? S@\15      r2\" SA5      r3SB\)SC\\3   SD\\3   4SE jr4SF\\5   SD\)4SG jr6g! \ a    SrS SKJr  S SKJr   Nf = f! \ a    S
r  Nf = f)H    N)ABC)Enum)TopologicalSorter)OptionalListAnyDictSetIterableUnion)TypeTypeVarcast)EnforceOverrides)override)LiteralF)BaseSettingsT)	validator)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>	   restlocalduckdb
clickhouseduckdb+parquetchromadb.db.duckdb.DuckDBchromadb.api.local.LocalAPI!chromadb.db.clickhouse.Clickhouse#chromadb.db.duckdb.PersistentDuckDBz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                       \ rS rSrSrSrSrg)
APIVersion_   z/api/v1z/api/v2 N)__name__
__module____qualname____firstlineno__V1V2__static_attributes__r5       Q/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/chromadb/config.pyr3   r3   _   s    	B	Br=   r3   c                        \ rS rSrSrSrSrSrg)RoutingModeg   a  
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idr5   N)r6   r7   r8   r9   __doc__NODEIDr<   r5   r=   r>   r@   r@   g   s    
 D	Br=   r@   c                      \ rS rSr% Sr\\S'   Sr\\S'   \" SSSSS9S	\S
\	\   4S j5       r
Sr\	\   \S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\	\   \S'   Sr\	\\\4      \S'   Sr\	\   \S'   Sr\	\   \S'   Sr\	\\\4      \S'   \R2                  r\	\   \S'   / r\\   \S'   Sr\	\   \S'   Sr\	\   \S'   Sr \	\   \S'   Sr!\\S'   Sr"\\S '   S!r#\\S"'   Sr$\	\   \S#'   Sr%\\S$'   Sr&\	\   \S%'   Sr'\	\   \S&'   Sr(\	\   \S''   \R2                   S(/\R2                   S)3S(/\R2                   S*3S(/\RR                   S(/\RR                   S)3S(/\RR                   S*3S(/0r*\\\\   4   \S+'   Sr+\\S,'   Sr,\	\   \S-'   Sr-\	\   \S.'   Sr.\	\   \S/'   Sr/\	\   \S0'   Sr0\	\   \S1'   Sr1\	\   \S2'   S3r2\\S4'   \2r3\\S5'   Sr4\\S6'   Sr5\	\   \S7'   S8r6\	\   \S9'   0 r7\\\4   \S:'   Sr8\	\   \S;'   S<r9\:S=   \S>'   S?r;\:S@   \SA'   SBr<\\SC'   \=R|                  r?\=\SD'   SEr@\\SF'   SGrA\\SH'   SIrBSrC\	\   \SJ'   SKrD\\SL'   SKrE\\SM'   SKrF\\SN'   SOrG\\SP'   SQrH\\SR'   SSrI\\ST'   SIrJSUrKSrL\	\   \SV'   SrM\	\   \SW'   SXrN\\SY'   SZrO\\S['   S\rP\\S]'   S^rQ\\S_'   S^rR\\S`'   SarS\\Sb'   SrT\	\   \Sc'   SdrU\\Se'   Sf\S
\V4Sg jrWSf\S
\V4Sh jrX " Si Sj5      rYSkrZg)lSettingsx    environmentz!chromadb.api.rust.RustBindingsAPIr    chroma_server_nofileT)prealwaysallow_reusevreturnc                 T    [        U5      [        L a  UR                  5       S:X  a  g U$ )NrJ   )typestrstrip)clsrP   s     r>   empty_str_to_noneSettings.empty_str_to_none   s!    7c>aggi2or=   N(   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_implanonymized_telemetrychroma_otel_collection_endpointchromadbchroma_otel_service_namechroma_otel_collection_headerschroma_otel_granularityapply)nonevalidater}   
migrationsmd5)r   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_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_factori  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                 2    X   nUc  [        SU S35      eU$ )zQReturn the value of a required config key, or raise an exception if it is not
setzMissing required config value '')
ValueErrorselfr   vals      r>   requireSettings.require7  s*     i;>se1EFF
r=   c                 x    [        X5      n[        U[        5      (       a  U[        ;   a  [	        [
        5      eU$ N)getattr
isinstancerT   _legacy_config_valuesr   LEGACY_ERRORr   s      r>   __getitem__Settings.__getitem__?  s1    d c3C+@$@\**
r=   c                       \ rS rSrSrSrSrg)Settings.ConfigiF  z.envzutf-8r5   N)r6   r7   r8   r9   env_fileenv_file_encodingr<   r5   r=   r>   Configr   F  s    #r=   r   r5   )[r6   r7   r8   r9   rK   rT   __annotations__r    r   r   rW   rL   intrZ   r\   r]   r^   r_   r	   r`   ra   boolrb   r   r3   r;   rc   rd   r   re   floatrf   rg   rh   ri   rj   rk   rl   rm   r!   rn   r:   rp   rq   r"   rr   rs   r#   rt   ru   r.   rv   rw   rx   rz   r{   r|   r   r   r   r,   r@   rF   r   r-   r   chroma_coordinator_hostr   r$   r'   r&   r+   r%   r   chroma_logservice_hostchroma_logservice_portr   r   r(   r)   r*   r   r   r   r   r   r   r   r   r   r<   r5   r=   r>   rH   rH   x   s{   
 K ?OS>%4$O# (3-  P
 +/(3-.*,"C, Is$OS$(,,6:8DcN3:-1Xc]105x~5;?huT3Y'78?;E=="HZ$8H24$d3i426615#5;?)8C=?  M4's'%&s&15#5K 9=&< 26#5 59"HSM8 ==/UG==/$ug==/"UG==/UG==/$ug==/"UG=#T#tCy.%9  IN?M 37 (3-659#Xc]9:>((3-> 37 (3-604459#Xc]9 *V!3U!>3>!%$%57#Xc]7.8hsm857"DcN7-1Xc]1 8?J34> ;@w7? *~!3}9D);G ,B#S  B"<C<)-1Xc]1?s? B#B B#B 	B    !R#Q+,#S,("0448<&< 	C  
 	H $S 
 	M *3  67-s601(#102(#2 %)NHSM(C -c 3 3 s s $ $r=   rH   T	Component)boundc                       \ rS rSr% \S    \S'   S\S'   \\S'   SS jrS\\	   S\	4S	 jr
S\S    4S
 jrSS jrSS jrSS jrSrg)r   iN  _dependenciesSystem_system_runningc                 <    [        5       U l        Xl        SU l        g )NF)setr   r   r   )r   systems     r>   __init__Component.__init__S  s     Ur=   rS   rQ   c                 r    U R                   R                  U5      nU R                  R                  U5        U$ )zZGet a Component instance of the given type, and register as a dependency of
that instance.)r   instancer   add)r   rS   insts      r>   r   Component.requireX  s1     ||$$T*t$r=   c                     U R                   $ )z<Return the full set of components this component depends on.)r   r   s    r>   dependenciesComponent.dependencies_  s    !!!r=   Nc                 j    [         R                  SU R                  R                   35        SU l        g)zOIdempotently stop this component's execution and free all associated
resources.zStopping component FNloggerdebug	__class__r6   r   r   s    r>   stopComponent.stopc  s*     	*4>>+B+B*CDEr=   c                 j    [         R                  SU R                  R                   35        SU l        g)z-Idempotently start this component's executionzStarting component TNr   r   s    r>   startComponent.starti  s(    *4>>+B+B*CDEr=   c                 \    [         R                  SU R                  R                   35        g)z_Reset this component's state to its initial blank state. Only intended to be
called from tests.zResetting component N)r   r   r   r6   r   s    r>   reset_stateComponent.reset_staten  s#     	+DNN,C,C+DEFr=   )r   r   r   )r   r   rQ   N)r6   r7   r8   r9   r
   r   r   r   r   r   r   r   r   r   r   r<   r5   r=   r>   r   r   N  sU    {##N
DG  "c+. "
Gr=   c                      ^  \ rS rSr% \\S'   \\\   \4   \S'   S\4U 4S jjr	S\\
   S\
4S jrS\\   4S jr\SU 4S	 jj5       r\SU 4S
 jj5       r\SS j5       rSrU =r$ )r   it  settings
_instancesc           	      `  > [         (       a  US   S;  a  [        S5      e[         H  nX   c  M
  [        [        5      e   US   b<  US   S:w  a3  [
        R                  S5        US   S:X  a  [
        R                  S	5        US
   b  [        R                  " 5       S:w  a  SS K	nUR                  UR                  5      u  pEUS
   nXe:  a  [        R                  " SU SU 35        OsXd:  a7   UR                  UR                  Xe45        [
        R                  SU 35        O7Xd:  a  [
        R                  SU SU S35        O[
        R                  S5        Xl        0 U l        [&        TU ]Q  U 5        g ! [          a(  n[
        R                  SU SU SU 35         S nANJS nAff = f)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.rk   LRUzAFailed to set chroma_segment_cache_policy: Only LRU is available.rj   r   zPFailed to set chroma_segment_cache_policy: chroma_memory_limit_bytes is require.rL   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   System.__init__x  s   >)* 3  #k 
 'C}( .. '
 23?675@LLS 349f
 *+7 I-'/'9'9(:P:P'Q$	'(>?+OOopyoz  {S  T]  S^  _ "- **$22\4M &B<.$QR "-NN9,Guv  vA  Ah  i m !! % D\NRTUVTWWy  {D  zE  F s   15E; ;
F-F((F-rS   rQ   c                    [         R                  " U5      (       aR  [        U5      nU[        ;  a  [	        SU 35      e[        U   nU R
                  R                  U5      n[        XA5      nXR                  ;  a7  U" U 5      nXPR                  U'   U R                  (       a  UR                  5         U R                  U   n[        [        U5      $ )ztReturn 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   rS   type_fqnr   fqnimplr   s          r>   r   System.instance  s     d##t}H22 #EdV!LMM%h/C--'',CS'D&:D$(OOD!}}

t$At}r=   c                     [        5       nU R                  R                  5        H$  nUR                  " U/UR	                  5       Q76   M&     UR                  5       $ )zQReturn the full set of all components and their dependencies in dependency
order.)r   r   valuesr   r   static_order)r   sorter	components      r>   
componentsSystem.components  sO     0A/B//1IJJy<9#9#9#;< 2 ""$$r=   c                 p   > [         TU ]  5         U R                  5        H  nUR                  5         M     g r   )r   r   r   r   r   r   s     r>   r   System.start  s'    *IOO +r=   c                    > [         TU ]  5         [        [        U R	                  5       5      5       H  nUR                  5         M     g r   )r   r   reversedlistr   r   s     r>   r   System.stop  s1    !$t'8"9:INN ;r=   c                     U R                   R                  (       d  [        S5      e[        [	        U R                  5       5      5       H  nUR                  5         M     g)zOReset the state of this system and all constituents in reverse dependency orderzResetting 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   rl   r   r   r   r   r   )r   r   s     r>   r   System.reset_state  sM     }}(( |  "$t'8"9:I!!# ;r=   )r   r   r   )r6   r7   r8   r9   rH   r   r	   r   r   r   r   r   r   r   r   r   r   r   r<   __classcell__)r   s   @r>   r   r   t  s    T)_i/00? ?BT!W  *%HY/ %  
  
 $ $r=   r   Cr   rS   rQ   c                     U R                  SS5      u  p#[        R                  " U5      n[        XC5      n[	        [
        [           U5      $ )zIGiven a fully qualifed class name, import the module and return the class.   )rsplit	importlibimport_moduler   r   r   r  )r   rS   module_name
class_namemodulerV   s         r>   r   r     s@    !jja0K$$[1F
&
%CQr=   rV   c                 8    U R                    SU R                   3$ )z.Given a class, return its fully qualified namer  )r7   r6   )rV   s    r>   r   r     s    nnQs||n--r=   )7r
  r   r   abcr   enumr   graphlibr   typingr   r   r   r	   r
   r   r   r   r   r   	overridesr   r   typing_extensionsr   r   in_pydantic_v2pydanticr   ImportErrorpydantic.v1r   r   chromadb.is_thin_client	getLoggerr6   r   r   r   r   r/   rT   r   DEFAULT_TENANTDEFAULT_DATABASEr3   r@   rH   r   r   r   r  r   objectr   r5   r=   r>   <module>r     sT        & B B B & & &  % &% " 6 
		8	$R  
  ' )	'
 /' ,->' '(E' 12P' 01O'  3' 45K'  6'  6' #$@' ,-N'  12Y!'" &'D#'$ 45T%'& 67X''( 89X)' T#s(^ . "% d $ "P$| P$f C{##G% #GLw$Y w$t CL3 d1g $q' .f .# .O  &N(%&  Ns$   D5 +E 5EEEE