django-resonant-settings 0.29__py3-none-any.whl → 0.30__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,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-resonant-settings
3
- Version: 0.29
3
+ Version: 0.30
4
4
  Summary: Shared Django settings for Resonant applications.
5
5
  Project-URL: Repository, https://github.com/kitware-resonant/cookiecutter-resonant
6
6
  Project-URL: Bug Reports, https://github.com/kitware-resonant/cookiecutter-resonant/issues
7
7
  Maintainer-email: "Kitware, Inc." <kitware@kitware.com>
8
- License: Apache 2.0
8
+ License-Expression: Apache-2.0
9
9
  License-File: LICENSE
10
10
  Keywords: django,resonant,setting,settings
11
11
  Classifier: Development Status :: 3 - Alpha
@@ -13,8 +13,8 @@ Classifier: Environment :: Web Environment
13
13
  Classifier: Framework :: Django
14
14
  Classifier: Framework :: Django :: 5
15
15
  Classifier: Framework :: Django :: 5.1
16
+ Classifier: Framework :: Django :: 5.2
16
17
  Classifier: Intended Audience :: Developers
17
- Classifier: License :: OSI Approved :: Apache Software License
18
18
  Classifier: Operating System :: OS Independent
19
19
  Classifier: Programming Language :: Python
20
20
  Classifier: Programming Language :: Python :: 3
@@ -1,9 +1,9 @@
1
1
  resonant_settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  resonant_settings/_env.py,sha256=TA97UtDkh7tgBIPc92Osj4FtrBfzMTCmBQ6UR1dPHEk,36
3
3
  resonant_settings/allauth.py,sha256=jhAu6SqCUarWiHCrHUcED_2ewBJLpScXAZncYuLKISc,1766
4
- resonant_settings/celery.py,sha256=CcY6ky46F0WzTzdlSTNJJe1pItLgsTt_9S6eqOTl5EM,3049
5
- resonant_settings/debug_toolbar.py,sha256=GhIMbjYsHjiRhrRF6qhYwg-f4gqfO_9OPtD9x-wXz2o,427
4
+ resonant_settings/celery.py,sha256=JZld5ch3Kf657MHiHQzjo0mPJI1BY5iz-BZeoJ14YRI,2928
6
5
  resonant_settings/django.py,sha256=x7YKyP3KTiit_lPGpGYyepFg9gWKQEIXmCyHnCOBYZs,1500
6
+ resonant_settings/django_extensions.py,sha256=kHXU3m4DyM2o8mS3peJ0YcvDeHu3g0Hsq1PzH5K4DrU,208
7
7
  resonant_settings/logging.py,sha256=sPjCN-vvLqozCOpDMKiZ-S9AWzaxH_S7LCuyuc7js4A,2811
8
8
  resonant_settings/oauth_toolkit.py,sha256=_3nArvejI97bdzowOPdV1oniBY0goJ9Jg_Rul1CJLGY,1641
9
9
  resonant_settings/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -11,20 +11,20 @@ resonant_settings/rest_framework.py,sha256=xMp9uXmHYhlN9UKiv2KtJkivnv85bIsh1VaHv
11
11
  resonant_settings/allauth_support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  resonant_settings/allauth_support/adapter.py,sha256=GSyublJa-2ZCIY_Adb2A0NOoVAtZUuZxB9ZkA5nl66o,395
13
13
  resonant_settings/allauth_support/apps.py,sha256=aMx4hSBL9xOMTr5E93rjsW5QUi6m2iNFuz_Ld4isihA,184
14
- resonant_settings/allauth_support/createsuperuser.py,sha256=izQC0jxvOPnr0tJ97cCMgWlRe2yfmOt4RCNg-w9ajec,2954
14
+ resonant_settings/allauth_support/createsuperuser.py,sha256=KA_CJxEixlOI322zQNsL9xoUQ4SjNxLRqut2m9Cc4rA,3049
15
15
  resonant_settings/allauth_support/receiver.py,sha256=iqiEPbWqgMd4i4qbkfcJMzQZdXAHw-jmc5JyKzJu8Io,1573
16
16
  resonant_settings/allauth_support/utils.py,sha256=F2cjjiZXy6KFQi2iGajS4daKg3h2MfMHS1FWwpeDJzs,404
17
- resonant_settings/allauth_support/management/commands/createsuperuser.py,sha256=4wNXyYsDWnf5buuo9tK6MSGSFhtBsRyJi0Dle5Tgm2Y,1327
17
+ resonant_settings/allauth_support/management/commands/createsuperuser.py,sha256=61gF3oxhYXbnn49w78rl9SvZOE28tSLmBNVmGNOaexQ,1423
18
18
  resonant_settings/development/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  resonant_settings/development/celery.py,sha256=nFac1F3Z12TlAbpzxmF2Y9QedNtNFabXTqrMncqA0Rg,330
20
- resonant_settings/development/extensions.py,sha256=kHXU3m4DyM2o8mS3peJ0YcvDeHu3g0Hsq1PzH5K4DrU,208
20
+ resonant_settings/development/debug_toolbar.py,sha256=GhIMbjYsHjiRhrRF6qhYwg-f4gqfO_9OPtD9x-wXz2o,427
21
21
  resonant_settings/production/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  resonant_settings/production/email.py,sha256=EQJ7f9jhcu4NxnBa1Wo0gs7JFqaUB87_ETHbVdUo8HY,623
23
23
  resonant_settings/production/https.py,sha256=2mru4jteqwW4z1AJJwvqy5sZhpxTh-9OidHOb94X1vY,860
24
24
  resonant_settings/production/s3_storage.py,sha256=MDqpxX92t91E50Or_cMXpPzR40OuN52QrGcYJYRmXCQ,968
25
25
  resonant_settings/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
26
  resonant_settings/testing/minio_storage.py,sha256=3t7F_mA-p9U06kfn7tz5rOfSwefjhauVPj_1D0x4toM,921
27
- django_resonant_settings-0.29.dist-info/METADATA,sha256=5RRsdL-WhJQueGfr0VNTwoxahIZV1WCPoUr9bSl3Inw,1667
28
- django_resonant_settings-0.29.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
29
- django_resonant_settings-0.29.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
30
- django_resonant_settings-0.29.dist-info/RECORD,,
27
+ django_resonant_settings-0.30.dist-info/METADATA,sha256=XQOOFY46ARv7ZYPCtA4t0M6SbyvASRoS66lWOxAc5bs,1654
28
+ django_resonant_settings-0.30.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
29
+ django_resonant_settings-0.30.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
30
+ django_resonant_settings-0.30.dist-info/RECORD,,
@@ -14,7 +14,9 @@ class Command(createsuperuser.Command):
14
14
  self.UserModel = EmailAsUsernameProxyUser
15
15
  self.username_field = self.UserModel._meta.get_field(self.UserModel.USERNAME_FIELD)
16
16
 
17
- def _validate_username(self, username, verbose_field_name, database):
17
+ def _validate_username(
18
+ self, username: str, verbose_field_name: str, database: str
19
+ ) -> str | None:
18
20
  # Since "username" is actually unique, "email" (i.e. "self.username_field") is logically
19
21
  # unique too. Explicitly setting the "_unique" attribute ensures that app-level duplicate
20
22
  # checking is done by "_validate_username", which produces better, earlier error messages.
@@ -23,7 +25,9 @@ class Command(createsuperuser.Command):
23
25
  with temporarily_change_attributes(self.username_field, _unique=True):
24
26
  # Normalize (as it would be done before saving) for better duplicate detection
25
27
  username = self.UserModel.normalize_username(username)
26
- return super()._validate_username(username, verbose_field_name, database)
28
+ return super()._validate_username( # type: ignore[misc]
29
+ username, verbose_field_name, database
30
+ )
27
31
 
28
32
 
29
33
  class EmailAsUsernameProxyUserManager(UserManager):
@@ -15,8 +15,12 @@ When Allauth is configured to use a User's `email` as the `username`, override t
15
15
  management command to only prompt for an email address.
16
16
  """
17
17
 
18
+ username_required: bool | None = allauth_settings.SIGNUP_FIELDS.get("username", {}).get(
19
+ "required", None
20
+ )
21
+
18
22
  # If using email as username
19
- if not allauth_settings.USERNAME_REQUIRED:
23
+ if not username_required:
20
24
  # Expose the modified command
21
25
  Command: type[BaseCommand] = allauth_support_createsuperuser.Command
22
26
  user_model: type[AbstractUser] = allauth_support_createsuperuser.EmailAsUsernameProxyUser
@@ -45,9 +45,6 @@ CELERY_TASK_ACKS_ON_FAILURE_OR_TIMEOUT = True
45
45
  # and this will be Celery's default in 6.0.
46
46
  CELERY_WORKER_CANCEL_LONG_RUNNING_TASKS_ON_CONNECTION_LOSS = True
47
47
 
48
- # This is the default, but is necessary to suppress warnings in Celery
49
- CELERY_BROKER_CONNECTION_RETRY_ON_STARTUP = True
50
-
51
48
  # CloudAMQP-suggested settings
52
49
  # https://www.cloudamqp.com/docs/celery.html
53
50
  CELERY_BROKER_POOL_LIMIT = 1