aa-structures 3.0.2__py3-none-any.whl → 3.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aa-structures
3
- Version: 3.0.2
3
+ Version: 3.1.0
4
4
  Summary: App for managing Eve Online structures with Alliance Auth.
5
5
  Author-email: Erik Kalkoken <kalkoken87@gmail.com>
6
6
  Requires-Python: >=3.8
@@ -1,8 +1,9 @@
1
- structures/__init__.py,sha256=SB9G1NFC5j5Qwz4NIpytjIBCCc0m18mj1Oy_F8qTzCk,203
1
+ structures/__init__.py,sha256=jovzMaFiljR1_CY_-ziun8tZxdShm50nbQ7zDJpjakE,203
2
2
  structures/admin.py,sha256=K7wh8mHFfGHONn7oLdqXsBAxq0rmYrwbZ7S3uIOuMtg,41303
3
3
  structures/app_settings.py,sha256=aWA2bTcv_vVwIyisx-G7GBSpfM6JDyt2MWcXKtHnjK0,6651
4
- structures/apps.py,sha256=MNZH9l3qWCwuS7OGiKGkBVrDzKoOFlqwDdEgyEFzxVA,195
4
+ structures/apps.py,sha256=lTn0cSCzbUr_6To6utVpApkPcBdwJBYHwYFNqeSamk8,298
5
5
  structures/auth_hooks.py,sha256=nRbrixFkAE5gphDokB1E8xhH8FY2VtXVwu0XMmSGBAw,1013
6
+ structures/checks.py,sha256=FbuGC0-pHpv9YBvtZVUH1kwAsJYzdd3nQVqhm0mggbI,1397
6
7
  structures/constants.py,sha256=k5rfD29ZjR7ToRmJw4WnLVd4LmoZvDw4OK5IoiiyJ6w,1063
7
8
  structures/forms.py,sha256=kXs-SGIIj-D9xtFCILKe_PMRU4eHl3-HLNWRhaZKmnQ,391
8
9
  structures/helpers.py,sha256=iadnXcpkHrWciB9snTHyc2bfxk3Hd5Xj1hKshOpvTJU,2542
@@ -228,7 +229,7 @@ structures/webhooks/models.py,sha256=kUkt9rnRQIJIrU9Bjcs34rvkb-TMbUubHdn-kny08kI
228
229
  structures/webhooks/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
229
230
  structures/webhooks/tests/test_core.py,sha256=4NcEAQgK2KhQkFOxYh2ad0S-qUWh1DNGDmLo5Mo5opI,6762
230
231
  structures/webhooks/tests/test_utils.py,sha256=ekADFv0JOEtXeqdiejbeqrABO__Q1flJHzVieQ7L9e0,459
231
- aa_structures-3.0.2.dist-info/licenses/LICENSE,sha256=XZiwB_S_40_HhnvLg5xvtBb3g1oGjPrk0rpFwk8iInE,1070
232
- aa_structures-3.0.2.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
233
- aa_structures-3.0.2.dist-info/METADATA,sha256=2UQo3YRjTWfvaTXy0RPC39eXjrsNLgfwrn_c3bQAzhM,6006
234
- aa_structures-3.0.2.dist-info/RECORD,,
232
+ aa_structures-3.1.0.dist-info/licenses/LICENSE,sha256=XZiwB_S_40_HhnvLg5xvtBb3g1oGjPrk0rpFwk8iInE,1070
233
+ aa_structures-3.1.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
234
+ aa_structures-3.1.0.dist-info/METADATA,sha256=zRsyz3Mdb5Icsa7iKRfsDOtE_J37fWevjyaiVdnOw2Y,6006
235
+ aa_structures-3.1.0.dist-info/RECORD,,
structures/__init__.py CHANGED
@@ -3,5 +3,5 @@
3
3
  # pylint: disable = invalid-name
4
4
  default_app_config = "structures.apps.StructuresConfig"
5
5
 
6
- __version__ = "3.0.2"
6
+ __version__ = "3.1.0"
7
7
  __title__ = "Structures"
structures/apps.py CHANGED
@@ -7,3 +7,6 @@ class StructuresConfig(AppConfig):
7
7
  name = "structures"
8
8
  label = "structures"
9
9
  verbose_name = f"Structures v{__version__}"
10
+
11
+ def ready(self) -> None:
12
+ from . import checks # noqa: F401 pylint: disable=unused-import
structures/checks.py ADDED
@@ -0,0 +1,49 @@
1
+ """Django checks."""
2
+
3
+ import numbers
4
+
5
+ from django.conf import settings
6
+ from django.core.checks import Warning, register
7
+
8
+
9
+ @register()
10
+ def structures_config_check(app_configs, **kwargs): # pylint: disable=W0613
11
+ """structures_config_check is a Django check that verifies that all periodic tasks
12
+ have been configured correctly in settings.
13
+ """
14
+ if not hasattr(settings, "CELERYBEAT_SCHEDULE"):
15
+ return []
16
+
17
+ warnings = []
18
+ for name, obj in settings.CELERYBEAT_SCHEDULE.items():
19
+ _verify_task_config(
20
+ warnings, name, obj, "structures.tasks.update_all_structures"
21
+ )
22
+ _verify_task_config(
23
+ warnings, name, obj, "structures.tasks.fetch_all_notifications"
24
+ )
25
+ return warnings
26
+
27
+
28
+ def _verify_task_config(warnings: list, name: str, obj: dict, task_name: str):
29
+ if obj["task"] != task_name:
30
+ return
31
+
32
+ schedule = obj["schedule"]
33
+ if isinstance(schedule, numbers.Number):
34
+ return
35
+
36
+ warnings.append(
37
+ Warning(
38
+ (
39
+ "Periodic task has deprecated schedule: "
40
+ f'CELERYBEAT_SCHEDULE["{name}"]'
41
+ ),
42
+ hint=(
43
+ 'The value for "schedule" must be a positive number, '
44
+ "not e.g. a cron definition. "
45
+ f"Current value is: {schedule}"
46
+ ),
47
+ id="structures.W001",
48
+ )
49
+ )