|
1 | 1 | import collections |
2 | 2 |
|
3 | 3 | from django.apps import AppConfig |
4 | | -from django.conf import settings |
5 | | -from django.db.models.signals import post_migrate |
6 | 4 | from django.utils.module_loading import autodiscover_modules |
7 | 5 |
|
8 | 6 | from elasticsearch_metrics.registry import djelme_registry |
9 | 7 |
|
10 | | -AUTOSETUP_SETTING = "DJELME_AUTOSETUP" |
11 | | - |
12 | | - |
13 | | -def do_djelme_setup(*, app_config, stdout, **kwargs): |
14 | | - _types_by_backend = djelme_registry.recordtypes_by_backend( |
15 | | - app_label=app_config.label |
16 | | - ) |
17 | | - breakpoint() |
18 | | - for _backend_name, _recordtypes in _types_by_backend.items(): |
19 | | - _backend = djelme_registry.get_backend(_backend_name) |
20 | | - _backend.djelme_setup(_recordtypes) |
21 | | - |
22 | 8 |
|
23 | 9 | class ElasticsearchMetricsConfig(AppConfig): |
24 | 10 | name = "elasticsearch_metrics" |
25 | 11 |
|
26 | 12 | def ready(self) -> None: |
27 | | - # connect django signals |
28 | | - if getattr(settings, AUTOSETUP_SETTING, False) is True: |
29 | | - post_migrate.connect(do_djelme_setup) |
30 | 13 | # discover any `foo.metrics` in installed apps |
31 | 14 | autodiscover_modules("metrics") |
32 | | - # load backends settings |
33 | | - _backend_names_by_module = collections.defaultdict(list) |
34 | | - for ( |
35 | | - _backend_name, |
36 | | - _imp_module_name, |
37 | | - _, |
38 | | - ) in djelme_registry.each_backend_settings(): |
39 | | - _backend_names_by_module[_imp_module_name].append(_backend_name) |
40 | | - # call `djelme_when_ready` once for each imp module |
41 | | - for _imp_module_name, _backend_names in _backend_names_by_module.items(): |
| 15 | + # call `djelme_when_ready` once for each djelme imp module used by a backend |
| 16 | + _backends_by_imp: dict[str, list[str]] = collections.defaultdict(list) |
| 17 | + for _backend_name, _imp_name, _ in djelme_registry.each_backend_settings(): |
| 18 | + _backends_by_imp[_imp_name].append(_backend_name) |
| 19 | + for _imp_module_name, _backend_names in _backends_by_imp.items(): |
42 | 20 | _imp_module = djelme_registry.get_imp_module(_imp_module_name) |
43 | 21 | _imp_module.djelme_when_ready( |
44 | 22 | backends=[ |
|
0 commit comments