aa-structures 3.0.1__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.1
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=IL7XpCaDfbWxPI8lPbABfS7iBnvgjzCyOJhmV1bGUFI,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
@@ -87,14 +88,17 @@ structures/static/structures/img/panel/1h.png,sha256=Nuuv1cis5LbOxMryyk9dg3e0iqK
87
88
  structures/static/structures/img/panel/1l.png,sha256=SIUm2PRfuGKdmG6o45_AVHO9jhNqFy-UtmfHvcyyi_o,1976
88
89
  structures/static/structures/img/panel/1m.png,sha256=D6W8lgzoO7HSwUm4nmDXDIkmM2rnSBDKi6yp1UwZE7k,2025
89
90
  structures/static/structures/img/panel/1r.png,sha256=va2zvvGmzPc5f7kMFaBASvbbkRFTVYVYY2ZDP5fhDnk,2512
91
+ structures/static/structures/img/panel/1s.png,sha256=7Yo8sNGs62dPyc6_aGnqWFxO0x6ez2kyYyyOHpo0nvc,5837
90
92
  structures/static/structures/img/panel/2h.png,sha256=P-wDsvmEnlAYtw063S3Gi40bqR5sHDpSSM__eYPwZVo,3541
91
93
  structures/static/structures/img/panel/2l.png,sha256=xvpvc-k5xqMGYgC2rAUSw_zQF7xRAfPGV6oqb-FdE_8,2570
92
94
  structures/static/structures/img/panel/2m.png,sha256=c5YQTxnhT7glZjmT5VTny6BcSzsw42G_1xHsMtQrcjo,2766
93
95
  structures/static/structures/img/panel/2r.png,sha256=OZ3clBc4QO76taGLXImX1ayvW8jiVa0IYztS5Acc_UA,3497
96
+ structures/static/structures/img/panel/2s.png,sha256=0Bq3ASrA72n0AXNwi6b_6RGpOdiSKipjTeIxD47OWuc,5077
94
97
  structures/static/structures/img/panel/3h.png,sha256=XevyVyjGoYZTnT39HuO4pgp3G3Xepv9twsP8UYpvNSw,4607
95
98
  structures/static/structures/img/panel/3l.png,sha256=GyM3uIZoVWSWZLYf5XuYUAnWsDoUF938jjnZzxfzDDE,3523
96
99
  structures/static/structures/img/panel/3m.png,sha256=w5irfztEQhG2migCeE9cn8BFjheiJWT6WbXx2IhRbC0,3720
97
100
  structures/static/structures/img/panel/3r.png,sha256=n8Rzo7ZfjZ_plaAcXU_8O-85ZbKmFmrJDnOXiKeajeY,4886
101
+ structures/static/structures/img/panel/3s.png,sha256=hm-YfB0IgsOa_C33P86yBrWTK6U4vzm1CMe6AX5KrF0,6479
98
102
  structures/static/structures/img/panel/4h.png,sha256=OlNmgzkIlpMsZIPq-zf04acm3nUuHuZViJfOiGm2ZC8,5309
99
103
  structures/static/structures/img/panel/4l.png,sha256=IRd7vvggZlSArRrNsvDysnZLZijXUxpD1KQC46dYTk8,4628
100
104
  structures/static/structures/img/panel/4m.png,sha256=E3qYKSLS_fPZ8JyM3o7sgjoCpYUBwzjEK9R4qpJTdmM,4956
@@ -225,7 +229,7 @@ structures/webhooks/models.py,sha256=kUkt9rnRQIJIrU9Bjcs34rvkb-TMbUubHdn-kny08kI
225
229
  structures/webhooks/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
230
  structures/webhooks/tests/test_core.py,sha256=4NcEAQgK2KhQkFOxYh2ad0S-qUWh1DNGDmLo5Mo5opI,6762
227
231
  structures/webhooks/tests/test_utils.py,sha256=ekADFv0JOEtXeqdiejbeqrABO__Q1flJHzVieQ7L9e0,459
228
- aa_structures-3.0.1.dist-info/licenses/LICENSE,sha256=XZiwB_S_40_HhnvLg5xvtBb3g1oGjPrk0rpFwk8iInE,1070
229
- aa_structures-3.0.1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
230
- aa_structures-3.0.1.dist-info/METADATA,sha256=dh5tIejpIOxoAwsJkbAq-UBkzUaWed9os_IWNdk1RoE,6006
231
- aa_structures-3.0.1.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.1"
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
+ )