MCPcopy
hub / github.com/django/django / UserSettingsHolder

Class UserSettingsHolder

django/conf/__init__.py:300–357  ·  view source on GitHub ↗

Holder for user configured settings.

Source from the content-addressed store, hash-verified

298
299
300class UserSettingsHolder:
301 """Holder for user configured settings."""
302
303 # SETTINGS_MODULE doesn't make much sense in the manually configured
304 # (standalone) case.
305 SETTINGS_MODULE = None
306
307 def __init__(self, default_settings):
308 """
309 Requests for configuration variables not in this class are satisfied
310 from the module specified in default_settings (if possible).
311 """
312 self.__dict__["_deleted"] = set()
313 self.default_settings = default_settings
314
315 def __getattr__(self, name):
316 if not name.isupper() or name in self._deleted:
317 raise AttributeError
318 return getattr(self.default_settings, name)
319
320 def __setattr__(self, name, value):
321 self._deleted.discard(name)
322 if name == "USE_BLANK_CHOICE_DASH":
323 _show_settings_deprecation_warning(
324 USE_BLANK_CHOICE_DASH_DEPRECATED_MSG, RemovedInDjango70Warning
325 )
326 # RemovedInDjango70Warning.
327 if name in DEPRECATED_EMAIL_SETTINGS:
328 _show_settings_deprecation_warning(
329 EMAIL_SETTING_DEPRECATED_MSG.format(name=name), RemovedInDjango70Warning
330 )
331
332 super().__setattr__(name, value)
333
334 def __delattr__(self, name):
335 self._deleted.add(name)
336 if hasattr(self, name):
337 super().__delattr__(name)
338
339 def __dir__(self):
340 return sorted(
341 s
342 for s in [*self.__dict__, *dir(self.default_settings)]
343 if s not in self._deleted
344 )
345
346 def is_overridden(self, setting):
347 deleted = setting in self._deleted
348 set_locally = setting in self.__dict__
349 set_on_default = getattr(
350 self.default_settings, "is_overridden", lambda s: False
351 )(setting)
352 return deleted or set_locally or set_on_default
353
354 def __repr__(self):
355 return "<%(cls)s>" % {
356 "cls": self.__class__.__name__,
357 }

Callers 2

enableMethod · 0.90
configureMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected