mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	Fixes an import cycle that breaks mypy inference with django-stubs: zproject.settings → django_stubs_ext → django_stubs_ext.patch → django.contrib.admin.options → django.contrib.contenttypes.models → confirmation.models → django.conf → zproject.settings. Signed-off-by: Anders Kaseorg <anders@zulip.com>
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# Django settings for zulip project.
 | 
						|
########################################################################
 | 
						|
# Here's how settings for the Zulip project work:
 | 
						|
#
 | 
						|
# * configured_settings.py imports default_settings.py, which contains
 | 
						|
#   default values for settings configurable in prod_settings.py.
 | 
						|
#
 | 
						|
# * configured_settings.py imports prod_settings.py, and any site-specific
 | 
						|
#   configuration belongs there.  The template for prod_settings.py is
 | 
						|
#   prod_settings_template.py.
 | 
						|
#
 | 
						|
# * computed_settings.py contains non-site-specific and settings
 | 
						|
#   configuration for the Zulip Django app.
 | 
						|
#
 | 
						|
# See https://zulip.readthedocs.io/en/latest/subsystems/settings.html for more information
 | 
						|
#
 | 
						|
########################################################################
 | 
						|
from typing import TYPE_CHECKING
 | 
						|
 | 
						|
# Monkey-patch certain types that are declared as generic types
 | 
						|
# generic in django-stubs, but not (yet) as generic types in Django
 | 
						|
# itself. This is necessary to ensure type references like
 | 
						|
# django.db.models.Lookup[int] work correctly at runtime.
 | 
						|
#
 | 
						|
# Hide this from mypy to avoid creating stupid cycles like
 | 
						|
# zproject.settings → django_stubs_ext → django_stubs_ext.patch →
 | 
						|
# django.contrib.admin.options → django.contrib.contenttypes.models →
 | 
						|
# confirmation.models → django.conf → zproject.settings.
 | 
						|
if not TYPE_CHECKING:
 | 
						|
    import django_stubs_ext
 | 
						|
 | 
						|
    django_stubs_ext.monkeypatch()
 | 
						|
 | 
						|
from .configured_settings import *  # noqa: F403 isort: skip
 | 
						|
from .computed_settings import *  # noqa: F403 isort: skip
 | 
						|
 | 
						|
# Do not add any code after these wildcard imports!  Add it to
 | 
						|
# computed_settings instead.
 |