summaryrefslogtreecommitdiff
path: root/django/apps/registry.py
AgeCommit message (Collapse)Author
2025-07-23Refs #36500 -- Rewrapped long docstrings and block comments via a script.django-bot
Rewrapped long docstrings and block comments to 79 characters + newline using script from https://github.com/medmunds/autofix-w505.
2023-06-30Fixed #34687 -- Made Apps.clear_cache() clear get_swappable_settings_name() ↵sobolevn
cache.
2023-01-18Refs #34233 -- Used @functools.cache.Nick Pope
Python 3.9+ supports @functools.cache as an alias for @functools.lru_cache(maxsize=None).
2023-01-18Refs #34233 -- Used str.removeprefix()/removesuffix().Mariusz Felisiak
2022-03-08Rewrote some references to "master".Adam Johnson
Following d9a266d657f66b8c4fa068408002a4e3709ee669.
2022-02-07Refs #33476 -- Refactored code to strictly match 88 characters line length.Mariusz Felisiak
2022-02-07Refs #33476 -- Reformatted code with Black.django-bot
2021-12-17Fixed #33366 -- Fixed case handling with swappable setting detection in ↵Simon Charette
migrations autodetector. The migration framework uniquely identifies models by case insensitive labels composed of their app label and model names and so does the app registry in most of its methods (e.g. AppConfig.get_model) but it wasn't the case for get_swappable_settings_name() until this change. This likely slipped under the radar for so long and only regressed in b9df2b74b98b4d63933e8061d3cfc1f6f39eb747 because prior to the changes related to the usage of model states instead of rendered models in the auto-detector the exact value settings value was never going through a case folding hoop. Thanks Andrew Chen Wang for the report and Keryn Knight for the investigation.
2020-07-30Bumped minimum isort version to 5.1.0.David Smith
Fixed inner imports per isort 5. isort 5.0.0 to 5.1.0 was unstable.
2019-02-06Fixed #30159 -- Removed unneeded use of OrderedDict.Nick Pope
Dicts preserve order since Python 3.6.
2019-01-13Fixed #27685 -- Added watchman support to the autoreloader.Tom Forbes
Removed support for pyinotify (refs #9722).
2018-09-28Refs #28909 -- Simplifed code using unpacking generalizations.Sergey Fedoseev
2018-09-25Removed unneeded list() calls in list.extend() argument.Sergey Fedoseev
2018-05-13Fixed #17379 -- Removed management commands deactivation of the locale.Claude Paroz
2017-06-01Refs #23968 -- Removed unnecessary lists, generators, and tuple calls.Jon Dufresne
2017-03-04Refs #27656 -- Updated remaining docstring verbs according to PEP 257.Anton Samarchyan
2017-02-25Fixed #27176 -- Raised an exception for reentrant calls to apps.populate().François Freitag
Thanks to Aymeric Augustin, Harry Percival, and Tim Graham.
2017-01-19Refs #23919 -- Stopped inheriting from object to define new style classes.Simon Charette
2017-01-18Refs #23919 -- Stopped using django.utils.lru_cache().Aymeric Augustin
2016-11-20Refs #26207 -- Removed obsolete comments about deferred model classes.Adam Chainz
2016-11-14Fixed E305 flake8 warnings.Ramin Farajpour Cami
2016-10-28Added require_ready argument to get_model methods.Aymeric Augustin
This allows bringing back the behavior of Django < 1.7. Also fixed the check for the app registry being ready in AppConfig.get_model(s), which was inconsistent with the equivalent check in Apps.get_model(s). That part is a backwards-incompatible change.
2016-10-28Simplified AppConfig.import_models().Aymeric Augustin
Since AppConfig now has a reference to its parent Apps registry, it can look up the models there instead of receiving them in argument.
2016-10-28Modified readiness check in AppConfig.get_model(s).Aymeric Augustin
It was inconsistent with the equivalent check in Apps.get_model(s) because I made incorrect assumptions when I wrote that code and needlessly complicated readiness checks. This is a backwards-incompatible change.
2016-05-19Refs #26421 -- Refactored Apps.lazy_model_operation() for better checks and ↵Alex Hill
tests
2016-04-29Fixed #26207 -- Replaced dynamic classes with non-data descriptors for ↵Anssi Kääriäinen
deferred instance loading.
2016-04-08Fixed E128 flake8 warnings in django/.Tim Graham
2015-09-17Refs #24215 -- Fixed Python 3.5 compatiblity for unhandled lazy ops error.Tim Graham
2015-08-27Fixed #24590 -- Cached calls to swappable_setting.Markus Holtermann
Moved the lookup in Field.swappable_setting to Apps, and added an lru_cache to cache the results. Refs #24743 Thanks Marten Kenbeek for the initial work on the patch. Thanks Aymeric Augustin and Tim Graham for the review.
2015-06-30Refs #23621 -- Fixed warning message when reloading models.Marten Kenbeek
2015-05-22Fixed #24776 -- Improved apps.get_app_config() error message on ↵Peter Inglesby
fully-qualified package names.
2015-03-25Fixed #24215 -- Refactored lazy model operationsAlex Hill
This adds a new method, Apps.lazy_model_operation(), and a helper function, lazy_related_operation(), which together supersede add_lazy_relation() and make lazy model operations the responsibility of the App registry. This system no longer uses the class_prepared signal.
2015-03-08Fixed #24397 -- Sped up rendering multiple model states.Marten Kenbeek
Set apps.ready to False when rendering multiple models. This prevents that the cache on Model._meta is expired on all models after each time a single model is rendered. Prevented that Apps.clear_cache() refills the cache on Apps.get_models(), so that the wrong value cannot be cached when cloning a StateApps.
2015-02-08Added check_apps_ready() to Apps.get_containing_app_config()Tim Graham
2015-02-06Sorted imports with isort; refs #23860.Tim Graham
2015-01-18Removed deprecated Apps methods per deprecation timeline.Tim Graham
2015-01-06Fixed #12663 -- Formalized the Model._meta API for retrieving fields.Daniel Pyrathon
Thanks to Russell Keith-Magee for mentoring this Google Summer of Code 2014 project and everyone else who helped with the patch!
2014-10-23Improved warning message when reloading models. Refs #23621.Loic Bistuer
Thanks dfunckt and Tim Graham.
2014-10-23Fixed #23621 -- Warn for duplicate models when a module is reloaded.Loic Bistuer
Previously a RuntimeError was raised every time two models clashed in the app registry. This prevented reloading a module in a REPL; while it's not recommended to do so, we decided not to forbid this use-case by turning the error into a warning. Thanks @dfunckt and Sergey Pashinin for the initial patches.
2014-10-04Revert "Improved AppRegistryNotReady message."Tim Graham
This reverts commit 6fa9fa91a5fcb228b3c385b35a2018b3821a447a. Aymeric: "I chose not to talk about django.setup() here on purpose. This will hardly always be the correct solution."
2014-10-04Improved AppRegistryNotReady message.Collin Anderson
2014-07-12Checked more precisely whether the app registry is ready.Aymeric Augustin
Accounted for the three stages of population: app configs, models, ready() methods of app configs.
2014-06-23Fixed #8033 -- Explained app registry error during translation setupClaude Paroz
Thanks Tim Graham and Aymeric Augustin for the review.
2014-03-08Fixed #21188 -- Introduced subclasses for to-be-removed-in-django-XX warningsClaude Paroz
Thanks Anssi Kääriäinen for the idea and Simon Charette for the review.
2014-01-26Fixed #21877 -- Renamed django.apps.base to config.Aymeric Augustin
2014-01-26Fixed #21702 -- get_model('app_label.ModelName').Aymeric Augustin
Also added tests for get_model.
2014-01-24Fixed #21871 -- Fixed Apps.is_installed() for apps with custom label.Carl Meyer
Thanks Aymeric for design discussion.
2014-01-12Used a regular lock for app registry population.Aymeric Augustin
Since the app registry is always populated before the first request is processed, the situation described in #18251 for the old app cache cannot happen any more. Refs #18251, #21628.
2014-01-06Fixed #21718 -- Renamed has_app to is_installed.Aymeric Augustin
2014-01-05Fixed #21711 -- Enforced unicity of model names.Aymeric Augustin