
    hZ	                     B    S SK Jr  S SKJr  S SKJrJr   " S S\5      r	g)    )settings)apps)has_multi_type_tenantsget_tenant_typesc                   (    \ rS rSrSrS rSS jrSrg)TenantSyncRouter   zx
A router to control which applications will be synced,
depending if we are syncing the shared apps or the tenant apps.
c                     US:X  a  g[         R                  " U5      nSR                  UR                  UR                  R
                  5      nUR                  U;   =(       d    XB;   $ )a  
Is 'app_label' present in 'apps_list'?

apps_list is either settings.SHARED_APPS or settings.TENANT_APPS, a
list of app names.

We check the presence of the app's name or the full path to the apps's
AppConfig class.
https://docs.djangoproject.com/en/1.8/ref/applications/#configuring-applications

We also short-circut check for 'django_cache' app in case someone is using
Django's DatabaseCache backend and needs to create a cache table
django_cacheTz{}.{})django_appsget_app_configformat
__module__	__class____name__name)self	app_label	apps_list	appconfigappconfig_full_names        H/var/www/html/env/lib/python3.13/site-packages/django_tenants/routers.pyapp_in_listTenantSyncRouter.app_in_list   s^     &..y9	%nn  )"5"5">">@)+R1D1QR    Nc                    SSK Jn  SSKJnJn  X" 5       :w  a  gXQ   nU" 5       n	[        5       (       aD  [        5       n
UR                  U	:X  a  X   S   nOSUR                  R                  5       nX   S   nO1UR                  U	:X  a  [        R                  nO[        R                  nU R                  X+5      (       d  gg )Nr   )connections)get_public_schema_nameget_tenant_database_aliasFAPPS)	django.dbr   django_tenants.utilsr   r   r   r   schema_nametenantget_tenant_typer   SHARED_APPSTENANT_APPSr   )r   dbr   
model_namehintsr   r   r   
connectionpublic_schema_nametenant_typesinstalled_appstenant_types                r   allow_migrateTenantSyncRouter.allow_migrate"   s     	*Z*,, _
35!##+-L%%);;!-!A&!I(//??A!-!:6!B%%);;!)!5!5!)!5!5	::r    )N)r   r   __qualname____firstlineno____doc__r   r0   __static_attributes__r2   r   r   r   r      s    
S*r   r   N)
django.confr   django.appsr   r   r"   r   r   objectr   r2   r   r   <module>r:      s      + I4v 4r   