django-resonant-settings 0.41.0__py3-none-any.whl → 0.43.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: django-resonant-settings
3
- Version: 0.41.0
3
+ Version: 0.43.0
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
@@ -0,0 +1,30 @@
1
+ resonant_settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ resonant_settings/_env.py,sha256=TA97UtDkh7tgBIPc92Osj4FtrBfzMTCmBQ6UR1dPHEk,36
3
+ resonant_settings/allauth.py,sha256=MhTs9eQ1JZW5b07gyLDQ7FcsI6sLcVD3YiTkuz8cCqE,2173
4
+ resonant_settings/celery.py,sha256=Ab2Ugv-7VORzPilCTorz_Pn9rxWBtxMcjXzDHJmgJHI,3614
5
+ resonant_settings/django.py,sha256=j0McDaroPGgmQb3IB5ASr93ZED4o2loTL8gpUjXJpqU,1588
6
+ resonant_settings/django_extensions.py,sha256=aHR6S76Et71O5-KiMapmr-UjOMm7wBHmmZ23gpGdkcs,329
7
+ resonant_settings/logging.py,sha256=f9zCDedg7yKBLnkl_yHxxjolzJjlm4VERoGPcNuerE4,2841
8
+ resonant_settings/oauth_toolkit.py,sha256=wgUntzfpR5pcQvtewNS8mdGK_ZE8hdw6PJWoFq-dBHI,1718
9
+ resonant_settings/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
+ resonant_settings/rest_framework.py,sha256=9jNfFJ8EC-IINTVW41nR8eYtIDsMyD3Ly3k3kOsJ18M,4849
11
+ resonant_settings/allauth_support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ resonant_settings/allauth_support/adapter.py,sha256=GSyublJa-2ZCIY_Adb2A0NOoVAtZUuZxB9ZkA5nl66o,395
13
+ resonant_settings/allauth_support/apps.py,sha256=aMx4hSBL9xOMTr5E93rjsW5QUi6m2iNFuz_Ld4isihA,184
14
+ resonant_settings/allauth_support/createsuperuser.py,sha256=OkpnGXdFLLj21KHAPQgN3Tt1g5Y5-FuEgPsC4vdTlQE,3238
15
+ resonant_settings/allauth_support/receiver.py,sha256=NlMMLIIWsz-psIgaqKltsjP9H76czu1OAIseYvtDYiI,1609
16
+ resonant_settings/allauth_support/utils.py,sha256=1nhH8p8-YqdUUoHQixxYIANveKAqaNE8phzvN3abNp0,497
17
+ resonant_settings/allauth_support/management/commands/createsuperuser.py,sha256=61gF3oxhYXbnn49w78rl9SvZOE28tSLmBNVmGNOaexQ,1423
18
+ resonant_settings/development/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ resonant_settings/development/celery.py,sha256=lEuXJdWea0-EE09EbejEwNjHOLXTvtHQ6bc_rCQoeeM,664
20
+ resonant_settings/development/debug_toolbar.py,sha256=kIapv6Jkpf205M5i33IyqnAcijNd3ctwcv6W6B3cfsc,510
21
+ resonant_settings/development/minio_storage.py,sha256=SlrnVDfm5YfjXcTpdPe2Pzbmw4wLSwWp7ryWoghk3Do,1345
22
+ resonant_settings/production/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ resonant_settings/production/email.py,sha256=6IwqC6yZqlKTsDfykB1xRzVBYfP4_qgOqVMDKvUAKkk,684
24
+ resonant_settings/production/https.py,sha256=rACQoCN0bdUFRVtr-MJmMiOmk56qieZz24atn4rqUXg,884
25
+ resonant_settings/production/s3_storage.py,sha256=rL05dCx49Xszwydp8i3QuRiP8dlxK0qnX55-0zn1rCQ,1468
26
+ django_resonant_settings-0.43.0.dist-info/METADATA,sha256=E4qAifeSCf7jHzeWehV9uHQWa0cVMXbS4kIuB-32kKk,1792
27
+ django_resonant_settings-0.43.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
28
+ django_resonant_settings-0.43.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
29
+ django_resonant_settings-0.43.0.dist-info/licenses/NOTICE,sha256=NU8vSqFl-Z30QJ2VOCAkStAVQon47sNgE3wwz-7nQSo,585
30
+ django_resonant_settings-0.43.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.27.0
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -45,3 +45,18 @@ ACCOUNT_CONFIRM_EMAIL_ON_GET = True
45
45
 
46
46
  # This will likely become the default in the future, but enable it now
47
47
  ACCOUNT_PRESERVE_USERNAME_CASING = False
48
+
49
+ __all__ = [
50
+ "SITE_ID",
51
+ "AUTHENTICATION_BACKENDS",
52
+ "ACCOUNT_EMAIL_VERIFICATION",
53
+ "ACCOUNT_LOGIN_METHODS",
54
+ "ACCOUNT_SIGNUP_FIELDS",
55
+ "ACCOUNT_ADAPTER",
56
+ "ACCOUNT_USER_MODEL_USERNAME_FIELD",
57
+ "ACCOUNT_SESSION_REMEMBER",
58
+ "ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION",
59
+ "ACCOUNT_LOGIN_ON_PASSWORD_RESET",
60
+ "ACCOUNT_CONFIRM_EMAIL_ON_GET",
61
+ "ACCOUNT_PRESERVE_USERNAME_CASING",
62
+ ]
@@ -1,12 +1,18 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import Any, ClassVar
3
+ from typing import TYPE_CHECKING, Any, ClassVar
4
4
 
5
+ from django.contrib.auth import get_user_model
5
6
  from django.contrib.auth.management.commands import createsuperuser
6
- from django.contrib.auth.models import User, UserManager
7
7
 
8
8
  from resonant_settings.allauth_support.utils import temporarily_change_attributes
9
9
 
10
+ if TYPE_CHECKING:
11
+ from django.contrib.auth.models import User, UserManager
12
+ else:
13
+ User = get_user_model()
14
+ UserManager = User._default_manager.__class__
15
+
10
16
 
11
17
  class Command(createsuperuser.Command):
12
18
  def __init__(self, *args: Any, **kwargs: Any):
@@ -69,3 +69,18 @@ CELERY_WORKER_CONCURRENCY: int | None = None
69
69
  celery.app.trace.LOG_RECEIVED = """\
70
70
  Task %(name)s[%(id)s] received: (%(args)s, %(kwargs)s)\
71
71
  """
72
+
73
+ __all__ = [
74
+ "CELERY_BROKER_URL",
75
+ "CELERY_RESULT_BACKEND",
76
+ "CELERY_TASK_ACKS_LATE",
77
+ "CELERY_TASK_REJECT_ON_WORKER_LOST",
78
+ "CELERY_TASK_ACKS_ON_FAILURE_OR_TIMEOUT",
79
+ "CELERY_WORKER_CANCEL_LONG_RUNNING_TASKS_ON_CONNECTION_LOSS",
80
+ "CELERY_BROKER_POOL_LIMIT",
81
+ "CELERY_BROKER_HEARTBEAT",
82
+ "CELERY_BROKER_CONNECTION_TIMEOUT",
83
+ "CELERY_EVENT_QUEUE_EXPIRES",
84
+ "CELERY_WORKER_PREFETCH_MULTIPLIER",
85
+ "CELERY_WORKER_CONCURRENCY",
86
+ ]
@@ -10,3 +10,10 @@ CELERY_TASK_EAGER_PROPAGATES = CELERY_TASK_ALWAYS_EAGER
10
10
 
11
11
  # In development, run without concurrency.
12
12
  CELERY_WORKER_CONCURRENCY: int | None = 1
13
+
14
+ __all__ = [
15
+ "CELERY_TASK_ACKS_LATE",
16
+ "CELERY_TASK_ALWAYS_EAGER",
17
+ "CELERY_TASK_EAGER_PROPAGATES",
18
+ "CELERY_WORKER_CONCURRENCY",
19
+ ]
@@ -5,9 +5,15 @@ Configure Django Debug Toolbar with the following features:
5
5
  This requires the `django-debug-toolbar` package to be installed.
6
6
  """
7
7
 
8
- DEBUG_TOOLBAR_CONFIG = {
8
+ from typing import Any
9
+
10
+ DEBUG_TOOLBAR_CONFIG: dict[str, Any] = {
9
11
  # The default size often is too small, causing an inability to view queries
10
12
  "RESULTS_CACHE_SIZE": 250,
11
13
  # If this setting is True, large sql queries can cause the page to render slowly
12
14
  "PRETTIFY_SQL": False,
13
15
  }
16
+
17
+ __all__ = [
18
+ "DEBUG_TOOLBAR_CONFIG",
19
+ ]
@@ -26,3 +26,15 @@ MINIO_STORAGE_AUTO_CREATE_MEDIA_BUCKET = True
26
26
  MINIO_STORAGE_AUTO_CREATE_MEDIA_POLICY = "NONE"
27
27
  # Issue signed URLs to provide any read access
28
28
  MINIO_STORAGE_MEDIA_USE_PRESIGNED = True
29
+
30
+ __all__ = [
31
+ "MINIO_STORAGE_USE_HTTPS",
32
+ "MINIO_STORAGE_ENDPOINT",
33
+ "MINIO_STORAGE_ACCESS_KEY",
34
+ "MINIO_STORAGE_SECRET_KEY",
35
+ "MINIO_STORAGE_MEDIA_BUCKET_NAME",
36
+ "MINIO_STORAGE_MEDIA_URL",
37
+ "MINIO_STORAGE_AUTO_CREATE_MEDIA_BUCKET",
38
+ "MINIO_STORAGE_AUTO_CREATE_MEDIA_POLICY",
39
+ "MINIO_STORAGE_MEDIA_USE_PRESIGNED",
40
+ ]
@@ -33,3 +33,9 @@ AUTH_PASSWORD_VALIDATORS = [
33
33
  {"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator"},
34
34
  {"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator"},
35
35
  ]
36
+
37
+ __all__ = [
38
+ "TEMPLATES",
39
+ "PASSWORD_HASHERS",
40
+ "AUTH_PASSWORD_VALIDATORS",
41
+ ]
@@ -7,3 +7,9 @@ This requires the `django-extensions` package to be installed.
7
7
  SHELL_PLUS_PRINT_SQL = True
8
8
  SHELL_PLUS_PRINT_SQL_TRUNCATE = None
9
9
  RUNSERVER_PLUS_PRINT_SQL_TRUNCATE = None
10
+
11
+ __all__ = [
12
+ "SHELL_PLUS_PRINT_SQL",
13
+ "SHELL_PLUS_PRINT_SQL_TRUNCATE",
14
+ "RUNSERVER_PLUS_PRINT_SQL_TRUNCATE",
15
+ ]
@@ -87,3 +87,7 @@ LOGGING = {
87
87
  },
88
88
  },
89
89
  }
90
+
91
+ __all__ = [
92
+ "LOGGING",
93
+ ]
@@ -8,8 +8,9 @@ This requires the `django-oauth-toolkit` package to be installed.
8
8
  """
9
9
 
10
10
  from datetime import timedelta
11
+ from typing import Any
11
12
 
12
- OAUTH2_PROVIDER = {
13
+ OAUTH2_PROVIDER: dict[str, Any] = {
13
14
  "ALLOWED_REDIRECT_URI_SCHEMES": ["https"],
14
15
  # Don't require users to re-approve scopes each time
15
16
  "REQUEST_APPROVAL_PROMPT": "auto",
@@ -30,3 +31,7 @@ OAUTH2_PROVIDER = {
30
31
  # every 30 days.
31
32
  "REFRESH_TOKEN_EXPIRE_SECONDS": timedelta(days=30).total_seconds(),
32
33
  }
34
+
35
+ __all__ = [
36
+ "OAUTH2_PROVIDER",
37
+ ]
@@ -14,3 +14,8 @@ vars().update(env.email_url("DJANGO_EMAIL_URL"))
14
14
 
15
15
  DEFAULT_FROM_EMAIL: str = env.str("DJANGO_DEFAULT_FROM_EMAIL")
16
16
  SERVER_EMAIL = DEFAULT_FROM_EMAIL
17
+
18
+ __all__ = [
19
+ "DEFAULT_FROM_EMAIL",
20
+ "SERVER_EMAIL",
21
+ ]
@@ -16,3 +16,12 @@ SECURE_HSTS_INCLUDE_SUBDOMAINS = False
16
16
  # opt-in to preload by overriding this setting. Additionally, all subdomains must have HSTS to
17
17
  # register for preloading.
18
18
  SECURE_HSTS_PRELOAD = False
19
+
20
+ __all__ = [
21
+ "SECURE_SSL_REDIRECT",
22
+ "SESSION_COOKIE_SECURE",
23
+ "CSRF_COOKIE_SECURE",
24
+ "SECURE_HSTS_SECONDS",
25
+ "SECURE_HSTS_INCLUDE_SUBDOMAINS",
26
+ "SECURE_HSTS_PRELOAD",
27
+ ]
@@ -33,3 +33,14 @@ AWS_S3_MAX_MEMORY_SIZE = 5 * 1024 * 1024
33
33
  # the event of a collision, which can be confusing.
34
34
  AWS_S3_FILE_OVERWRITE = True
35
35
  AWS_QUERYSTRING_EXPIRE = int(timedelta(hours=6).total_seconds())
36
+
37
+ __all__ = [
38
+ "AWS_S3_REGION_NAME",
39
+ "AWS_S3_ACCESS_KEY_ID",
40
+ "AWS_S3_SECRET_ACCESS_KEY",
41
+ "AWS_STORAGE_BUCKET_NAME",
42
+ "AWS_S3_SIGNATURE_VERSION",
43
+ "AWS_S3_MAX_MEMORY_SIZE",
44
+ "AWS_S3_FILE_OVERWRITE",
45
+ "AWS_QUERYSTRING_EXPIRE",
46
+ ]
@@ -12,7 +12,7 @@ from typing import Any
12
12
  SESSION_COOKIE_SAMESITE = "Lax"
13
13
  CORS_ALLOW_CREDENTIALS = False
14
14
 
15
- REST_FRAMEWORK = {
15
+ REST_FRAMEWORK: dict[str, Any] = {
16
16
  "DEFAULT_AUTHENTICATION_CLASSES": [
17
17
  "oauth2_provider.contrib.rest_framework.OAuth2Authentication",
18
18
  # Allow SessionAuthentication, as this is much more convenient for Ajax requests
@@ -75,3 +75,11 @@ SWAGGER_SETTINGS: dict[str, Any] = {
75
75
  }
76
76
 
77
77
  REDOC_SETTINGS: dict[str, Any] = {}
78
+
79
+ __all__ = [
80
+ "SESSION_COOKIE_SAMESITE",
81
+ "CORS_ALLOW_CREDENTIALS",
82
+ "REST_FRAMEWORK",
83
+ "SWAGGER_SETTINGS",
84
+ "REDOC_SETTINGS",
85
+ ]
@@ -1,30 +0,0 @@
1
- resonant_settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- resonant_settings/_env.py,sha256=TA97UtDkh7tgBIPc92Osj4FtrBfzMTCmBQ6UR1dPHEk,36
3
- resonant_settings/allauth.py,sha256=jhAu6SqCUarWiHCrHUcED_2ewBJLpScXAZncYuLKISc,1766
4
- resonant_settings/celery.py,sha256=G2-MnaEmX2zhJhXqHm9SuaOFbbVwpIGaM0vTNzyYHo4,3152
5
- resonant_settings/django.py,sha256=x7YKyP3KTiit_lPGpGYyepFg9gWKQEIXmCyHnCOBYZs,1500
6
- resonant_settings/django_extensions.py,sha256=kHXU3m4DyM2o8mS3peJ0YcvDeHu3g0Hsq1PzH5K4DrU,208
7
- resonant_settings/logging.py,sha256=sPjCN-vvLqozCOpDMKiZ-S9AWzaxH_S7LCuyuc7js4A,2811
8
- resonant_settings/oauth_toolkit.py,sha256=_3nArvejI97bdzowOPdV1oniBY0goJ9Jg_Rul1CJLGY,1641
9
- resonant_settings/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- resonant_settings/rest_framework.py,sha256=xMp9uXmHYhlN9UKiv2KtJkivnv85bIsh1VaHvZud9kk,4689
11
- resonant_settings/allauth_support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- resonant_settings/allauth_support/adapter.py,sha256=GSyublJa-2ZCIY_Adb2A0NOoVAtZUuZxB9ZkA5nl66o,395
13
- resonant_settings/allauth_support/apps.py,sha256=aMx4hSBL9xOMTr5E93rjsW5QUi6m2iNFuz_Ld4isihA,184
14
- resonant_settings/allauth_support/createsuperuser.py,sha256=tnv1BxKJ_5m635F-9m9qswd7t8WIZYedte-AdqEG5J8,3069
15
- resonant_settings/allauth_support/receiver.py,sha256=NlMMLIIWsz-psIgaqKltsjP9H76czu1OAIseYvtDYiI,1609
16
- resonant_settings/allauth_support/utils.py,sha256=1nhH8p8-YqdUUoHQixxYIANveKAqaNE8phzvN3abNp0,497
17
- resonant_settings/allauth_support/management/commands/createsuperuser.py,sha256=61gF3oxhYXbnn49w78rl9SvZOE28tSLmBNVmGNOaexQ,1423
18
- resonant_settings/development/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
- resonant_settings/development/celery.py,sha256=6t4hEjf9q6XOT-qiS3BgJViOjOJ1etiPwxghhpB4118,519
20
- resonant_settings/development/debug_toolbar.py,sha256=GhIMbjYsHjiRhrRF6qhYwg-f4gqfO_9OPtD9x-wXz2o,427
21
- resonant_settings/development/minio_storage.py,sha256=4FIC3ZHyfej8IgbSgylFqXOcNx_-_sTUlCoBZLkeLYs,1002
22
- resonant_settings/production/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- resonant_settings/production/email.py,sha256=EQJ7f9jhcu4NxnBa1Wo0gs7JFqaUB87_ETHbVdUo8HY,623
24
- resonant_settings/production/https.py,sha256=WeWLXoV1Z3vsZNuXLHClm_Ea5_yD8d9BBFdg9qHlhjc,695
25
- resonant_settings/production/s3_storage.py,sha256=50LEgNAVt9pZUT6y0INiQEaGxPpl-aScESC2GobpY4k,1215
26
- django_resonant_settings-0.41.0.dist-info/METADATA,sha256=YuSJfeiaDhgvA5kR0Rez7obS074QIldDuoGgs0wufGw,1792
27
- django_resonant_settings-0.41.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
28
- django_resonant_settings-0.41.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
29
- django_resonant_settings-0.41.0.dist-info/licenses/NOTICE,sha256=NU8vSqFl-Z30QJ2VOCAkStAVQon47sNgE3wwz-7nQSo,585
30
- django_resonant_settings-0.41.0.dist-info/RECORD,,