aa-alumni 0.2.0__tar.gz → 0.4.0__tar.gz

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.

Potentially problematic release.


This version of aa-alumni might be problematic. Click here for more details.

Files changed (24) hide show
  1. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/PKG-INFO +19 -12
  2. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/README.md +10 -2
  3. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/__init__.py +1 -1
  4. aa_alumni-0.4.0/alumni/app_settings.py +9 -0
  5. aa_alumni-0.4.0/alumni/locale/de/LC_MESSAGES/django.mo +0 -0
  6. aa_alumni-0.4.0/alumni/locale/de/LC_MESSAGES/django.po +53 -0
  7. aa_alumni-0.4.0/alumni/locale/en/LC_MESSAGES/django.mo +0 -0
  8. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/locale/en/LC_MESSAGES/django.po +7 -6
  9. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/models.py +1 -1
  10. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/providers.py +5 -6
  11. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/tasks.py +39 -16
  12. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/pyproject.toml +30 -29
  13. aa_alumni-0.2.0/alumni/app_settings.py +0 -5
  14. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/LICENSE +0 -0
  15. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/admin.py +0 -0
  16. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/apps.py +0 -0
  17. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/management/commands/__init__.py +0 -0
  18. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/management/commands/alumni_state.py +0 -0
  19. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/migrations/0001_initial.py +0 -0
  20. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/migrations/0002_auto_20211230_0147.py +0 -0
  21. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/migrations/0003_alter_alumnisetup_options_and_more.py +0 -0
  22. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/migrations/__init__.py +0 -0
  23. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/signals.py +0 -0
  24. {aa_alumni-0.2.0 → aa_alumni-0.4.0}/alumni/tests/__init__.py +0 -0
@@ -1,31 +1,30 @@
1
- Metadata-Version: 2.1
2
- Name: aa_alumni
3
- Version: 0.2.0
1
+ Metadata-Version: 2.4
2
+ Name: aa-alumni
3
+ Version: 0.4.0
4
4
  Summary: Integration with Alliance Auths State System, creates and maintains an Alumni State for past members of an Alliance and/or Corporation
5
5
  Keywords: allianceauth,eveonline
6
6
  Author-email: Joel Falknau <joel.falknau@gmail.com>
7
- Requires-Python: >=3.8
7
+ Requires-Python: >=3.10
8
8
  Description-Content-Type: text/markdown
9
9
  Classifier: Environment :: Web Environment
10
10
  Classifier: Framework :: Celery
11
11
  Classifier: Framework :: Django
12
- Classifier: Framework :: Django :: 4.0
13
12
  Classifier: Framework :: Django :: 4.2
14
13
  Classifier: Intended Audience :: Developers
15
14
  Classifier: License :: OSI Approved :: MIT License
16
15
  Classifier: Operating System :: OS Independent
17
16
  Classifier: Programming Language :: Python
18
- Classifier: Programming Language :: Python :: 3
19
- Classifier: Programming Language :: Python :: 3.8
20
- Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3 :: Only
21
18
  Classifier: Programming Language :: Python :: 3.10
22
19
  Classifier: Programming Language :: Python :: 3.11
23
20
  Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
24
22
  Classifier: Programming Language :: Python :: Implementation :: CPython
25
23
  Classifier: Topic :: Internet :: WWW/HTTP
26
24
  Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
27
- Requires-Dist: allianceauth>=3.0.0,<5.0.0
28
- Requires-Dist: django-solo>=2.0.0,<3.0.0
25
+ License-File: LICENSE
26
+ Requires-Dist: allianceauth>=4.6.4,<6
27
+ Requires-Dist: django-solo>=2,<3
29
28
  Project-URL: Homepage, https://gitlab.com/tactical-supremacy/aa-alumni
30
29
  Project-URL: Source, https://gitlab.com/tactical-supremacy/aa-alumni
31
30
  Project-URL: Tracker, https://gitlab.com/tactical-supremacy/aa-alumni/-/issues
@@ -60,11 +59,13 @@ Configure your Auth settings (`local.py`) as follows:
60
59
  # Tasks
61
60
  CELERYBEAT_SCHEDULE['alumni_run_alumni_check_all'] = {
62
61
  'task': 'alumni.tasks.run_alumni_check_all',
63
- 'schedule': crontab(minute=0, hour=0, day_of_week=4),
62
+ 'schedule': crontab(minute="0", hour="0", day_of_week="4"),
63
+ 'apply_offset': True,
64
64
  }
65
65
  CELERYBEAT_SCHEDULE['alumni_run_update_all_models'] = {
66
66
  'task': 'alumni.tasks.update_all_models',
67
- 'schedule': crontab(minute=0, hour=0, day_of_week=3),
67
+ 'schedule': crontab(minute="0", hour="0", day_of_week="3"),
68
+ 'apply_offset': True,
68
69
  }
69
70
  ```
70
71
 
@@ -85,6 +86,12 @@ python myauth/manage.py alumni_state
85
86
  In the Admin interface, visit `alumni > config > add` or `<AUTH-URL>/admin/alumni/config/add/`
86
87
  Select the Alliances and/or Corporations for which characters with historical membership are Alumni
87
88
 
89
+ ## Settings
90
+
91
+ | Name | Description | Default |
92
+ | --- | --- | --- |
93
+ |`ALUMNI_CHARACTERCORPORATION_RATELIMIT`| Celery Rate Limit _per worker_, 10 tasks * 10 Workers = 100 tasks/min | '10/m' |
94
+
88
95
  ## Contributing
89
96
 
90
97
  Make sure you have signed the [License Agreement](https://developers.eveonline.com/resource/license-agreement) by logging in at <https://developers.eveonline.com> before submitting any pull requests. All bug fixes or features must not include extra superfluous formatting changes.
@@ -28,11 +28,13 @@ Configure your Auth settings (`local.py`) as follows:
28
28
  # Tasks
29
29
  CELERYBEAT_SCHEDULE['alumni_run_alumni_check_all'] = {
30
30
  'task': 'alumni.tasks.run_alumni_check_all',
31
- 'schedule': crontab(minute=0, hour=0, day_of_week=4),
31
+ 'schedule': crontab(minute="0", hour="0", day_of_week="4"),
32
+ 'apply_offset': True,
32
33
  }
33
34
  CELERYBEAT_SCHEDULE['alumni_run_update_all_models'] = {
34
35
  'task': 'alumni.tasks.update_all_models',
35
- 'schedule': crontab(minute=0, hour=0, day_of_week=3),
36
+ 'schedule': crontab(minute="0", hour="0", day_of_week="3"),
37
+ 'apply_offset': True,
36
38
  }
37
39
  ```
38
40
 
@@ -53,6 +55,12 @@ python myauth/manage.py alumni_state
53
55
  In the Admin interface, visit `alumni > config > add` or `<AUTH-URL>/admin/alumni/config/add/`
54
56
  Select the Alliances and/or Corporations for which characters with historical membership are Alumni
55
57
 
58
+ ## Settings
59
+
60
+ | Name | Description | Default |
61
+ | --- | --- | --- |
62
+ |`ALUMNI_CHARACTERCORPORATION_RATELIMIT`| Celery Rate Limit _per worker_, 10 tasks * 10 Workers = 100 tasks/min | '10/m' |
63
+
56
64
  ## Contributing
57
65
 
58
66
  Make sure you have signed the [License Agreement](https://developers.eveonline.com/resource/license-agreement) by logging in at <https://developers.eveonline.com> before submitting any pull requests. All bug fixes or features must not include extra superfluous formatting changes.
@@ -1,5 +1,5 @@
1
1
  """
2
2
  Integration with Alliance Auths State System, creates and maintains an Alumni State for past members of an Alliance and/or Corporation
3
3
  """
4
- __version__ = "0.2.0"
4
+ __version__ = "0.4.0"
5
5
  __title__ = "Alumni"
@@ -0,0 +1,9 @@
1
+ from django.conf import settings
2
+
3
+ ALUMNI_STATE_NAME = getattr(settings, 'ALUMNI_STATE_NAME', "Alumni")
4
+
5
+ ALUMNI_TASK_PRIORITY = getattr(settings, 'ALUMNI_TASK_PRIORITY', 7)
6
+
7
+ ALUMNI_CHARACTERCORPORATION_RATELIMIT = getattr(settings, 'ALUMNI_CHARACTERCORPORATION_RATELIMIT', '10/m') # 10*10workers = 100/300 per min
8
+
9
+ ALUMNI_TASK_JITTER = getattr(settings, 'ALUMNI_TASK_PRIORITY', 600)
@@ -0,0 +1,53 @@
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ # Translators:
7
+ # Peter Pfeufer, 2024
8
+ #
9
+ #, fuzzy
10
+ msgid ""
11
+ msgstr ""
12
+ "Project-Id-Version: PACKAGE VERSION\n"
13
+ "Report-Msgid-Bugs-To: \n"
14
+ "POT-Creation-Date: 2024-05-11 18:13+1000\n"
15
+ "PO-Revision-Date: 2024-05-11 10:42+0000\n"
16
+ "Last-Translator: Peter Pfeufer, 2024\n"
17
+ "Language-Team: German (https://app.transifex.com/alliance-auth/teams/107430/de/)\n"
18
+ "MIME-Version: 1.0\n"
19
+ "Content-Type: text/plain; charset=UTF-8\n"
20
+ "Content-Transfer-Encoding: 8bit\n"
21
+ "Language: de\n"
22
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
23
+
24
+ #: alumni/models.py:14
25
+ msgid ""
26
+ "Characters with these Corps in their History will be given Alumni Status"
27
+ msgstr ""
28
+ "Charaktere mit diesen Corps in ihrer Vergangenheit erhalten den Alumni-"
29
+ "Status"
30
+
31
+ #: alumni/models.py:18
32
+ msgid ""
33
+ "Characters with these Alliances in their History will be given Alumni Status"
34
+ msgstr ""
35
+ "Charaktere mit diesen Allianzen in ihrer Vergangenheit erhalten den Alumni-"
36
+ "Status"
37
+
38
+ #: alumni/models.py:21 alumni/models.py:24 alumni/models.py:25
39
+ msgid "Alumni Config"
40
+ msgstr "Alumni-Konfiguration"
41
+
42
+ #: alumni/models.py:37 alumni/models.py:52
43
+ msgid "True if the corporation has been deleted"
44
+ msgstr "Wahr, wenn die Corporation gelöscht wurde"
45
+
46
+ #: alumni/models.py:39 alumni/models.py:54
47
+ msgid ""
48
+ "An incrementing ID that can be used to canonically establish order of "
49
+ "records in cases where dates may be ambiguous"
50
+ msgstr ""
51
+ "Eine aufsteigende ID, die zur kanonischen Festlegung der Reihenfolge von "
52
+ "Datensätzen in Fällen verwendet werden kann, in denen Daten möglicherweise "
53
+ "nicht eindeutig sind"
@@ -8,7 +8,7 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: PACKAGE VERSION\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2024-05-11 18:13+1000\n"
11
+ "POT-Creation-Date: 2024-08-29 14:59+1000\n"
12
12
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,25 +17,26 @@ msgstr ""
17
17
  "Content-Type: text/plain; charset=UTF-8\n"
18
18
  "Content-Transfer-Encoding: 8bit\n"
19
19
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
- #: alumni/models.py:14
20
+
21
+ #: alumni/models.py:15
21
22
  msgid ""
22
23
  "Characters with these Corps in their History will be given Alumni Status"
23
24
  msgstr ""
24
25
 
25
- #: alumni/models.py:18
26
+ #: alumni/models.py:19
26
27
  msgid ""
27
28
  "Characters with these Alliances in their History will be given Alumni Status"
28
29
  msgstr ""
29
30
 
30
- #: alumni/models.py:21 alumni/models.py:24 alumni/models.py:25
31
+ #: alumni/models.py:22 alumni/models.py:25 alumni/models.py:26
31
32
  msgid "Alumni Config"
32
33
  msgstr ""
33
34
 
34
- #: alumni/models.py:37 alumni/models.py:52
35
+ #: alumni/models.py:38 alumni/models.py:53
35
36
  msgid "True if the corporation has been deleted"
36
37
  msgstr ""
37
38
 
38
- #: alumni/models.py:39 alumni/models.py:54
39
+ #: alumni/models.py:40 alumni/models.py:55
39
40
  msgid ""
40
41
  "An incrementing ID that can be used to canonically establish order of "
41
42
  "records in cases where dates may be ambiguous"
@@ -18,7 +18,7 @@ class AlumniSetup(SingletonModel):
18
18
  blank=True,
19
19
  help_text=_("Characters with these Alliances in their History will be given Alumni Status"))
20
20
 
21
- def __str__(self):
21
+ def __str__(self) -> str:
22
22
  return _("Alumni Config")
23
23
 
24
24
  class Meta:
@@ -1,14 +1,13 @@
1
- from typing import Dict
2
-
3
1
  from allianceauth import __version__ as aa__version__
4
2
  from allianceauth.services.hooks import get_extension_logger
3
+ from esi import __version__ as esi__version__
5
4
  from esi.clients import EsiClientProvider
6
5
 
7
- from . import __version__ as a__version__
6
+ from . import __version__
8
7
 
9
8
  logger = get_extension_logger(__name__)
10
9
 
11
- APP_INFO_TEXT = f"allianceauth v{aa__version__} & aa-alumni v{a__version__}"
10
+ APP_INFO_TEXT = f"aa-alumni/{__version__} allianceauth/{aa__version__} django-esi/{esi__version__}"
12
11
 
13
12
  """
14
13
  Swagger spec operations:
@@ -19,14 +18,14 @@ get_characters_character_id_corporationhistory
19
18
  esi = EsiClientProvider(app_info_text=APP_INFO_TEXT)
20
19
 
21
20
 
22
- def get_corporations_corporation_id_alliancehistory(corporation_id: int) -> Dict:
21
+ def get_corporations_corporation_id_alliancehistory(corporation_id: int) -> dict:
23
22
  result = esi.client.Corporation.get_corporations_corporation_id_alliancehistory(
24
23
  corporation_id=corporation_id
25
24
  ).results()
26
25
  return result
27
26
 
28
27
 
29
- def get_characters_character_id_corporationhistory(character_id: int) -> Dict:
28
+ def get_characters_character_id_corporationhistory(character_id: int) -> dict:
30
29
  result = esi.client.Character.get_characters_character_id_corporationhistory(
31
30
  character_id=character_id
32
31
  ).results()
@@ -1,12 +1,19 @@
1
1
  import datetime
2
+ from random import randint
2
3
 
4
+ from bravado.exception import HTTPClientError, HTTPInternalServerError
3
5
  from celery import shared_task
4
6
 
7
+ from django.db import IntegrityError
8
+
5
9
  from allianceauth.authentication.models import State
6
10
  from allianceauth.eveonline.models import EveCharacter
7
11
  from allianceauth.services.hooks import get_extension_logger
8
12
 
9
- from .app_settings import ALUMNI_STATE_NAME, ALUMNI_TASK_PRIORITY
13
+ from .app_settings import (
14
+ ALUMNI_CHARACTERCORPORATION_RATELIMIT, ALUMNI_STATE_NAME,
15
+ ALUMNI_TASK_JITTER, ALUMNI_TASK_PRIORITY,
16
+ )
10
17
  from .models import (
11
18
  AlumniSetup, CharacterCorporationHistory, CorporationAllianceHistory,
12
19
  )
@@ -22,7 +29,8 @@ logger = get_extension_logger(__name__)
22
29
  def run_alumni_check_all():
23
30
  for character in EveCharacter.objects.all().values('character_id'):
24
31
  alumni_check_character.apply_async(
25
- args=[character['character_id']], priority=ALUMNI_TASK_PRIORITY
32
+ args=[character['character_id']],
33
+ priority=ALUMNI_TASK_PRIORITY
26
34
  )
27
35
 
28
36
 
@@ -134,7 +142,7 @@ def char_alliance_datecompare(alliance_id: int, character_id: int) -> bool:
134
142
  pass
135
143
  except Exception as e:
136
144
  # Need to actually add some IndexError handling to above tasks, but lets log this gracefully so as not to cactus up the whole thing.
137
- logger.error(e)
145
+ logger.exception(e)
138
146
  return False
139
147
 
140
148
 
@@ -144,7 +152,9 @@ def update_all_models():
144
152
 
145
153
  for character in EveCharacter.objects.all().values('character_id'):
146
154
  update_charactercorporationhistory.apply_async(
147
- args=[character['character_id']], priority=ALUMNI_TASK_PRIORITY
155
+ args=[character['character_id']],
156
+ priority=ALUMNI_TASK_PRIORITY,
157
+ countdown=randint(1, ALUMNI_TASK_JITTER)
148
158
  )
149
159
 
150
160
  # Once all charactercorporations are updated/exist.
@@ -159,12 +169,13 @@ def update_all_models_followup():
159
169
  for char_corp_record in CharacterCorporationHistory.objects.values('corporation_id').distinct():
160
170
  update_corporationalliancehistory.apply_async(
161
171
  args=[char_corp_record['corporation_id']],
162
- priority=ALUMNI_TASK_PRIORITY
172
+ priority=ALUMNI_TASK_PRIORITY,
173
+ countdown=randint(1, ALUMNI_TASK_JITTER)
163
174
  )
164
175
 
165
176
 
166
- @shared_task
167
- def update_corporationalliancehistory(corporation_id: int):
177
+ @shared_task(bind=True, rate_limit=ALUMNI_CHARACTERCORPORATION_RATELIMIT)
178
+ def update_corporationalliancehistory(self, corporation_id: int):
168
179
  """Update CorporationAllianceHistory models from ESI
169
180
 
170
181
  Parameters
@@ -177,19 +188,26 @@ def update_corporationalliancehistory(corporation_id: int):
177
188
  deleted = True
178
189
  else:
179
190
  deleted = False
180
- CorporationAllianceHistory.objects.update_or_create(
191
+ CorporationAllianceHistory.objects.create(
181
192
  corporation_id=corporation_id,
182
193
  alliance_id=dat['alliance_id'],
183
194
  is_deleted=deleted,
184
195
  record_id=dat['record_id'],
185
196
  start_date=dat['start_date'],
186
197
  )
198
+ except IntegrityError:
199
+ # This already exists, move on
200
+ pass
201
+ except HTTPClientError as e: # 429?
202
+ raise self.retry(exc=e, countdown=61)
203
+ except HTTPInternalServerError as e: # Custom timeouts are defined as a 500 on this endpoint
204
+ raise self.retry(exc=e, countdown=61)
187
205
  except Exception as e:
188
- logger.error(e)
206
+ logger.exception(e)
189
207
 
190
208
 
191
- @shared_task
192
- def update_charactercorporationhistory(character_id: int):
209
+ @shared_task(bind=True, rate_limit=ALUMNI_CHARACTERCORPORATION_RATELIMIT)
210
+ def update_charactercorporationhistory(self, character_id: int) -> None:
193
211
  """Update CharacterCorporationHistory models from ESI
194
212
 
195
213
  Parameters
@@ -200,7 +218,7 @@ def update_charactercorporationhistory(character_id: int):
200
218
  try:
201
219
  character = EveCharacter.objects.get(character_id=character_id)
202
220
  except Exception as e:
203
- logger.error(e)
221
+ logger.exception(e)
204
222
  return
205
223
 
206
224
  for dat in get_characters_character_id_corporationhistory(character_id):
@@ -209,14 +227,19 @@ def update_charactercorporationhistory(character_id: int):
209
227
  deleted = True
210
228
  else:
211
229
  deleted = False
212
-
213
- model = CharacterCorporationHistory(
230
+ CharacterCorporationHistory.objects.create(
214
231
  character=character,
215
232
  corporation_id=dat['corporation_id'],
216
233
  is_deleted=deleted,
217
234
  record_id=dat['record_id'],
218
235
  start_date=dat['start_date'],
219
236
  )
220
- model.save()
237
+ except IntegrityError:
238
+ # This already exists, move on
239
+ pass
240
+ except HTTPClientError as e: # 429?
241
+ raise self.retry(exc=e, countdown=61)
242
+ except HTTPInternalServerError as e: # Custom timeouts are defined as a 500 on this endpoint
243
+ raise self.retry(exc=e, countdown=61)
221
244
  except Exception as e:
222
- logger.error(e)
245
+ logger.exception(e)
@@ -1,49 +1,50 @@
1
1
  [build-system]
2
- requires = ["flit_core >=3.2,<4"]
3
2
  build-backend = "flit_core.buildapi"
3
+ requires = [
4
+ "flit-core>=3.2,<4",
5
+ ]
4
6
 
5
7
  [project]
6
- name = "aa_alumni"
7
- dynamic = ["version", "description" ]
8
+ name = "aa-alumni"
8
9
  readme = "README.md"
9
- license = {file = "LICENSE"}
10
- requires-python = ">=3.8"
11
- authors = [
12
- { name = "Joel Falknau", email = "joel.falknau@gmail.com" },
13
- ]
14
10
  keywords = [
15
11
  "allianceauth",
16
12
  "eveonline",
17
13
  ]
14
+ license = { file = "LICENSE" }
15
+ authors = [
16
+ { name = "Joel Falknau", email = "joel.falknau@gmail.com" },
17
+ ]
18
+ requires-python = ">=3.10"
18
19
  classifiers = [
19
20
  "Environment :: Web Environment",
20
21
  "Framework :: Celery",
21
22
  "Framework :: Django",
22
- "Framework :: Django :: 4.0",
23
23
  "Framework :: Django :: 4.2",
24
24
  "Intended Audience :: Developers",
25
25
  "License :: OSI Approved :: MIT License",
26
26
  "Operating System :: OS Independent",
27
27
  "Programming Language :: Python",
28
- "Programming Language :: Python :: 3",
29
- "Programming Language :: Python :: 3.8",
30
- "Programming Language :: Python :: 3.9",
28
+ "Programming Language :: Python :: 3 :: Only",
31
29
  "Programming Language :: Python :: 3.10",
32
30
  "Programming Language :: Python :: 3.11",
33
31
  "Programming Language :: Python :: 3.12",
32
+ "Programming Language :: Python :: 3.13",
34
33
  "Programming Language :: Python :: Implementation :: CPython",
35
34
  "Topic :: Internet :: WWW/HTTP",
36
- "Topic :: Internet :: WWW/HTTP :: Dynamic Content"
35
+ "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
36
+ ]
37
+ dynamic = [
38
+ "description",
39
+ "version",
37
40
  ]
38
41
  dependencies = [
39
- "allianceauth>=3.0.0,<5.0.0",
40
- "django-solo>=2.0.0,<3.0.0"
42
+ "allianceauth>=4.6.4,<6",
43
+ "django-solo>=2,<3",
41
44
  ]
42
-
43
- [project.urls]
44
- Homepage = "https://gitlab.com/tactical-supremacy/aa-alumni"
45
- Source = "https://gitlab.com/tactical-supremacy/aa-alumni"
46
- Tracker = "https://gitlab.com/tactical-supremacy/aa-alumni/-/issues"
45
+ urls.Homepage = "https://gitlab.com/tactical-supremacy/aa-alumni"
46
+ urls.Source = "https://gitlab.com/tactical-supremacy/aa-alumni"
47
+ urls.Tracker = "https://gitlab.com/tactical-supremacy/aa-alumni/-/issues"
47
48
 
48
49
  [tool.flit.module]
49
50
  name = "alumni"
@@ -57,19 +58,19 @@ sections = [
57
58
  "DJANGO",
58
59
  "ALLIANCEAUTH",
59
60
  "FIRSTPARTY",
60
- "LOCALFOLDER"
61
+ "LOCALFOLDER",
61
62
  ]
62
- known_allianceauth = ["allianceauth", "esi"]
63
- known_django = ["django"]
63
+ known_allianceauth = [ "allianceauth", "esi" ]
64
+ known_django = [ "django" ]
64
65
  skip_gitignore = true
65
66
 
66
67
  [tool.flake8]
67
- exclude = [".git", "*migrations*", ".tox", "dist", "htmlcov"]
68
+ exclude = [ ".git", "*migrations*", ".tox", "dist", "htmlcov" ]
68
69
  max-line-length = 119
69
- select = ["C", "E", "F", "W", "B", "B950"]
70
- ignore = ['E203', 'E231', 'E501', 'W503', 'W291', 'W293']
70
+ select = [ "C", "E", "F", "W", "B", "B950" ]
71
+ ignore = [ 'E203', 'E231', 'E501', 'W503', 'W291', 'W293' ]
71
72
 
72
73
  [tool.djlint]
73
- max_attribute_length=119
74
- max_line_length=119
75
- max_blank_lines=1
74
+ max_attribute_length = 119
75
+ max_line_length = 119
76
+ max_blank_lines = 1
@@ -1,5 +0,0 @@
1
- from django.conf import settings
2
-
3
- ALUMNI_STATE_NAME = getattr(settings, 'ALUMNI_STATE_NAME', "Alumni")
4
-
5
- ALUMNI_TASK_PRIORITY = getattr(settings, 'ALUMNI_TASK_PRIORITY', 7)
File without changes
File without changes
File without changes
File without changes