plain 0.10.0__tar.gz → 0.11.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.
Files changed (147) hide show
  1. {plain-0.10.0 → plain-0.11.0}/PKG-INFO +1 -1
  2. {plain-0.10.0 → plain-0.11.0}/plain/http/request.py +3 -3
  3. {plain-0.10.0 → plain-0.11.0}/plain/runtime/global_settings.py +14 -12
  4. {plain-0.10.0 → plain-0.11.0}/pyproject.toml +1 -1
  5. {plain-0.10.0 → plain-0.11.0}/LICENSE +0 -0
  6. {plain-0.10.0 → plain-0.11.0}/README.md +0 -0
  7. {plain-0.10.0 → plain-0.11.0}/plain/README.md +0 -0
  8. {plain-0.10.0 → plain-0.11.0}/plain/__main__.py +0 -0
  9. {plain-0.10.0 → plain-0.11.0}/plain/assets/README.md +0 -0
  10. {plain-0.10.0 → plain-0.11.0}/plain/assets/__init__.py +0 -0
  11. {plain-0.10.0 → plain-0.11.0}/plain/assets/compile.py +0 -0
  12. {plain-0.10.0 → plain-0.11.0}/plain/assets/finders.py +0 -0
  13. {plain-0.10.0 → plain-0.11.0}/plain/assets/fingerprints.py +0 -0
  14. {plain-0.10.0 → plain-0.11.0}/plain/assets/urls.py +0 -0
  15. {plain-0.10.0 → plain-0.11.0}/plain/assets/views.py +0 -0
  16. {plain-0.10.0 → plain-0.11.0}/plain/cli/README.md +0 -0
  17. {plain-0.10.0 → plain-0.11.0}/plain/cli/__init__.py +0 -0
  18. {plain-0.10.0 → plain-0.11.0}/plain/cli/cli.py +0 -0
  19. {plain-0.10.0 → plain-0.11.0}/plain/cli/formatting.py +0 -0
  20. {plain-0.10.0 → plain-0.11.0}/plain/cli/packages.py +0 -0
  21. {plain-0.10.0 → plain-0.11.0}/plain/cli/print.py +0 -0
  22. {plain-0.10.0 → plain-0.11.0}/plain/cli/startup.py +0 -0
  23. {plain-0.10.0 → plain-0.11.0}/plain/csrf/README.md +0 -0
  24. {plain-0.10.0 → plain-0.11.0}/plain/csrf/middleware.py +0 -0
  25. {plain-0.10.0 → plain-0.11.0}/plain/csrf/views.py +0 -0
  26. {plain-0.10.0 → plain-0.11.0}/plain/debug.py +0 -0
  27. {plain-0.10.0 → plain-0.11.0}/plain/exceptions.py +0 -0
  28. {plain-0.10.0 → plain-0.11.0}/plain/forms/README.md +0 -0
  29. {plain-0.10.0 → plain-0.11.0}/plain/forms/__init__.py +0 -0
  30. {plain-0.10.0 → plain-0.11.0}/plain/forms/boundfield.py +0 -0
  31. {plain-0.10.0 → plain-0.11.0}/plain/forms/exceptions.py +0 -0
  32. {plain-0.10.0 → plain-0.11.0}/plain/forms/fields.py +0 -0
  33. {plain-0.10.0 → plain-0.11.0}/plain/forms/forms.py +0 -0
  34. {plain-0.10.0 → plain-0.11.0}/plain/http/README.md +0 -0
  35. {plain-0.10.0 → plain-0.11.0}/plain/http/__init__.py +0 -0
  36. {plain-0.10.0 → plain-0.11.0}/plain/http/cookie.py +0 -0
  37. {plain-0.10.0 → plain-0.11.0}/plain/http/multipartparser.py +0 -0
  38. {plain-0.10.0 → plain-0.11.0}/plain/http/response.py +0 -0
  39. {plain-0.10.0 → plain-0.11.0}/plain/internal/__init__.py +0 -0
  40. {plain-0.10.0 → plain-0.11.0}/plain/internal/files/README.md +0 -0
  41. {plain-0.10.0 → plain-0.11.0}/plain/internal/files/__init__.py +0 -0
  42. {plain-0.10.0 → plain-0.11.0}/plain/internal/files/base.py +0 -0
  43. {plain-0.10.0 → plain-0.11.0}/plain/internal/files/locks.py +0 -0
  44. {plain-0.10.0 → plain-0.11.0}/plain/internal/files/move.py +0 -0
  45. {plain-0.10.0 → plain-0.11.0}/plain/internal/files/temp.py +0 -0
  46. {plain-0.10.0 → plain-0.11.0}/plain/internal/files/uploadedfile.py +0 -0
  47. {plain-0.10.0 → plain-0.11.0}/plain/internal/files/uploadhandler.py +0 -0
  48. {plain-0.10.0 → plain-0.11.0}/plain/internal/files/utils.py +0 -0
  49. {plain-0.10.0 → plain-0.11.0}/plain/internal/handlers/__init__.py +0 -0
  50. {plain-0.10.0 → plain-0.11.0}/plain/internal/handlers/base.py +0 -0
  51. {plain-0.10.0 → plain-0.11.0}/plain/internal/handlers/exception.py +0 -0
  52. {plain-0.10.0 → plain-0.11.0}/plain/internal/handlers/wsgi.py +0 -0
  53. {plain-0.10.0 → plain-0.11.0}/plain/internal/middleware/__init__.py +0 -0
  54. {plain-0.10.0 → plain-0.11.0}/plain/internal/middleware/headers.py +0 -0
  55. {plain-0.10.0 → plain-0.11.0}/plain/internal/middleware/https.py +0 -0
  56. {plain-0.10.0 → plain-0.11.0}/plain/internal/middleware/slash.py +0 -0
  57. {plain-0.10.0 → plain-0.11.0}/plain/json.py +0 -0
  58. {plain-0.10.0 → plain-0.11.0}/plain/logs/README.md +0 -0
  59. {plain-0.10.0 → plain-0.11.0}/plain/logs/__init__.py +0 -0
  60. {plain-0.10.0 → plain-0.11.0}/plain/logs/configure.py +0 -0
  61. {plain-0.10.0 → plain-0.11.0}/plain/logs/loggers.py +0 -0
  62. {plain-0.10.0 → plain-0.11.0}/plain/logs/utils.py +0 -0
  63. {plain-0.10.0 → plain-0.11.0}/plain/packages/README.md +0 -0
  64. {plain-0.10.0 → plain-0.11.0}/plain/packages/__init__.py +0 -0
  65. {plain-0.10.0 → plain-0.11.0}/plain/packages/config.py +0 -0
  66. {plain-0.10.0 → plain-0.11.0}/plain/packages/registry.py +0 -0
  67. {plain-0.10.0 → plain-0.11.0}/plain/paginator.py +0 -0
  68. {plain-0.10.0 → plain-0.11.0}/plain/preflight/README.md +0 -0
  69. {plain-0.10.0 → plain-0.11.0}/plain/preflight/__init__.py +0 -0
  70. {plain-0.10.0 → plain-0.11.0}/plain/preflight/files.py +0 -0
  71. {plain-0.10.0 → plain-0.11.0}/plain/preflight/messages.py +0 -0
  72. {plain-0.10.0 → plain-0.11.0}/plain/preflight/registry.py +0 -0
  73. {plain-0.10.0 → plain-0.11.0}/plain/preflight/security/__init__.py +0 -0
  74. {plain-0.10.0 → plain-0.11.0}/plain/preflight/security/base.py +0 -0
  75. {plain-0.10.0 → plain-0.11.0}/plain/preflight/security/csrf.py +0 -0
  76. {plain-0.10.0 → plain-0.11.0}/plain/preflight/urls.py +0 -0
  77. {plain-0.10.0 → plain-0.11.0}/plain/runtime/README.md +0 -0
  78. {plain-0.10.0 → plain-0.11.0}/plain/runtime/__init__.py +0 -0
  79. {plain-0.10.0 → plain-0.11.0}/plain/runtime/user_settings.py +0 -0
  80. {plain-0.10.0 → plain-0.11.0}/plain/signals/README.md +0 -0
  81. {plain-0.10.0 → plain-0.11.0}/plain/signals/__init__.py +0 -0
  82. {plain-0.10.0 → plain-0.11.0}/plain/signals/dispatch/__init__.py +0 -0
  83. {plain-0.10.0 → plain-0.11.0}/plain/signals/dispatch/dispatcher.py +0 -0
  84. {plain-0.10.0 → plain-0.11.0}/plain/signals/dispatch/license.txt +0 -0
  85. {plain-0.10.0 → plain-0.11.0}/plain/signing.py +0 -0
  86. {plain-0.10.0 → plain-0.11.0}/plain/templates/README.md +0 -0
  87. {plain-0.10.0 → plain-0.11.0}/plain/templates/__init__.py +0 -0
  88. {plain-0.10.0 → plain-0.11.0}/plain/templates/core.py +0 -0
  89. {plain-0.10.0 → plain-0.11.0}/plain/templates/jinja/README.md +0 -0
  90. {plain-0.10.0 → plain-0.11.0}/plain/templates/jinja/__init__.py +0 -0
  91. {plain-0.10.0 → plain-0.11.0}/plain/templates/jinja/defaults.py +0 -0
  92. {plain-0.10.0 → plain-0.11.0}/plain/templates/jinja/extensions.py +0 -0
  93. {plain-0.10.0 → plain-0.11.0}/plain/templates/jinja/filters.py +0 -0
  94. {plain-0.10.0 → plain-0.11.0}/plain/templates/jinja/globals.py +0 -0
  95. {plain-0.10.0 → plain-0.11.0}/plain/test/README.md +0 -0
  96. {plain-0.10.0 → plain-0.11.0}/plain/test/__init__.py +0 -0
  97. {plain-0.10.0 → plain-0.11.0}/plain/test/client.py +0 -0
  98. {plain-0.10.0 → plain-0.11.0}/plain/urls/README.md +0 -0
  99. {plain-0.10.0 → plain-0.11.0}/plain/urls/__init__.py +0 -0
  100. {plain-0.10.0 → plain-0.11.0}/plain/urls/base.py +0 -0
  101. {plain-0.10.0 → plain-0.11.0}/plain/urls/conf.py +0 -0
  102. {plain-0.10.0 → plain-0.11.0}/plain/urls/converters.py +0 -0
  103. {plain-0.10.0 → plain-0.11.0}/plain/urls/exceptions.py +0 -0
  104. {plain-0.10.0 → plain-0.11.0}/plain/urls/resolvers.py +0 -0
  105. {plain-0.10.0 → plain-0.11.0}/plain/utils/README.md +0 -0
  106. {plain-0.10.0 → plain-0.11.0}/plain/utils/__init__.py +0 -0
  107. {plain-0.10.0 → plain-0.11.0}/plain/utils/_os.py +0 -0
  108. {plain-0.10.0 → plain-0.11.0}/plain/utils/cache.py +0 -0
  109. {plain-0.10.0 → plain-0.11.0}/plain/utils/connection.py +0 -0
  110. {plain-0.10.0 → plain-0.11.0}/plain/utils/crypto.py +0 -0
  111. {plain-0.10.0 → plain-0.11.0}/plain/utils/datastructures.py +0 -0
  112. {plain-0.10.0 → plain-0.11.0}/plain/utils/dateformat.py +0 -0
  113. {plain-0.10.0 → plain-0.11.0}/plain/utils/dateparse.py +0 -0
  114. {plain-0.10.0 → plain-0.11.0}/plain/utils/dates.py +0 -0
  115. {plain-0.10.0 → plain-0.11.0}/plain/utils/deconstruct.py +0 -0
  116. {plain-0.10.0 → plain-0.11.0}/plain/utils/decorators.py +0 -0
  117. {plain-0.10.0 → plain-0.11.0}/plain/utils/deprecation.py +0 -0
  118. {plain-0.10.0 → plain-0.11.0}/plain/utils/duration.py +0 -0
  119. {plain-0.10.0 → plain-0.11.0}/plain/utils/email.py +0 -0
  120. {plain-0.10.0 → plain-0.11.0}/plain/utils/encoding.py +0 -0
  121. {plain-0.10.0 → plain-0.11.0}/plain/utils/functional.py +0 -0
  122. {plain-0.10.0 → plain-0.11.0}/plain/utils/hashable.py +0 -0
  123. {plain-0.10.0 → plain-0.11.0}/plain/utils/html.py +0 -0
  124. {plain-0.10.0 → plain-0.11.0}/plain/utils/http.py +0 -0
  125. {plain-0.10.0 → plain-0.11.0}/plain/utils/inspect.py +0 -0
  126. {plain-0.10.0 → plain-0.11.0}/plain/utils/ipv6.py +0 -0
  127. {plain-0.10.0 → plain-0.11.0}/plain/utils/itercompat.py +0 -0
  128. {plain-0.10.0 → plain-0.11.0}/plain/utils/module_loading.py +0 -0
  129. {plain-0.10.0 → plain-0.11.0}/plain/utils/regex_helper.py +0 -0
  130. {plain-0.10.0 → plain-0.11.0}/plain/utils/safestring.py +0 -0
  131. {plain-0.10.0 → plain-0.11.0}/plain/utils/termcolors.py +0 -0
  132. {plain-0.10.0 → plain-0.11.0}/plain/utils/text.py +0 -0
  133. {plain-0.10.0 → plain-0.11.0}/plain/utils/timesince.py +0 -0
  134. {plain-0.10.0 → plain-0.11.0}/plain/utils/timezone.py +0 -0
  135. {plain-0.10.0 → plain-0.11.0}/plain/utils/tree.py +0 -0
  136. {plain-0.10.0 → plain-0.11.0}/plain/validators.py +0 -0
  137. {plain-0.10.0 → plain-0.11.0}/plain/views/README.md +0 -0
  138. {plain-0.10.0 → plain-0.11.0}/plain/views/__init__.py +0 -0
  139. {plain-0.10.0 → plain-0.11.0}/plain/views/base.py +0 -0
  140. {plain-0.10.0 → plain-0.11.0}/plain/views/csrf.py +0 -0
  141. {plain-0.10.0 → plain-0.11.0}/plain/views/errors.py +0 -0
  142. {plain-0.10.0 → plain-0.11.0}/plain/views/exceptions.py +0 -0
  143. {plain-0.10.0 → plain-0.11.0}/plain/views/forms.py +0 -0
  144. {plain-0.10.0 → plain-0.11.0}/plain/views/objects.py +0 -0
  145. {plain-0.10.0 → plain-0.11.0}/plain/views/redirect.py +0 -0
  146. {plain-0.10.0 → plain-0.11.0}/plain/views/templates.py +0 -0
  147. {plain-0.10.0 → plain-0.11.0}/plain/wsgi.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: plain
3
- Version: 0.10.0
3
+ Version: 0.11.0
4
4
  Summary: A web framework for building products with Python.
5
5
  Author: Dave Gaeddert
6
6
  Author-email: dave.gaeddert@dropseed.dev
@@ -267,12 +267,12 @@ class HttpRequest:
267
267
 
268
268
  @property
269
269
  def scheme(self):
270
- if settings.SECURE_PROXY_SSL_HEADER:
270
+ if settings.HTTPS_PROXY_HEADER:
271
271
  try:
272
- header, secure_value = settings.SECURE_PROXY_SSL_HEADER
272
+ header, secure_value = settings.HTTPS_PROXY_HEADER
273
273
  except ValueError:
274
274
  raise ImproperlyConfigured(
275
- "The SECURE_PROXY_SSL_HEADER setting must be a tuple containing "
275
+ "The HTTPS_PROXY_HEADER setting must be a tuple containing "
276
276
  "two values."
277
277
  )
278
278
  header_value = self.META.get(header)
@@ -50,6 +50,20 @@ HTTPS_REDIRECT_ENABLED = True
50
50
  HTTPS_REDIRECT_EXEMPT = []
51
51
  HTTPS_REDIRECT_HOST = None
52
52
 
53
+ # If your Plain app is behind a proxy that sets a header to specify secure
54
+ # connections, AND that proxy ensures that user-submitted headers with the
55
+ # same name are ignored (so that people can't spoof it), set this value to
56
+ # a tuple of (header_name, header_value). For any requests that come in with
57
+ # that header/value, request.is_https() will return True.
58
+ # WARNING! Only set this if you fully understand what you're doing. Otherwise,
59
+ # you may be opening yourself up to a security risk.
60
+ HTTPS_PROXY_HEADER = None
61
+
62
+ # Whether to use the X-Forwarded-Host and X-Forwarded-Port headers
63
+ # when determining the host and port for the request.
64
+ USE_X_FORWARDED_HOST = False
65
+ USE_X_FORWARDED_PORT = False
66
+
53
67
  # A secret key for this particular Plain installation. Used in secret-key
54
68
  # hashing algorithms. Set this in your settings, or Plain will complain
55
69
  # loudly.
@@ -88,21 +102,9 @@ DATA_UPLOAD_MAX_NUMBER_FILES = 100
88
102
  # (i.e. "/tmp" on *nix systems).
89
103
  FILE_UPLOAD_TEMP_DIR = None
90
104
 
91
- USE_X_FORWARDED_HOST = False
92
- USE_X_FORWARDED_PORT = False
93
-
94
105
  # User-defined overrides for error views by status code
95
106
  HTTP_ERROR_VIEWS: dict[int] = {}
96
107
 
97
- # If your Plain app is behind a proxy that sets a header to specify secure
98
- # connections, AND that proxy ensures that user-submitted headers with the
99
- # same name are ignored (so that people can't spoof it), set this value to
100
- # a tuple of (header_name, header_value). For any requests that come in with
101
- # that header/value, request.is_https() will return True.
102
- # WARNING! Only set this if you fully understand what you're doing. Otherwise,
103
- # you may be opening yourself up to a security risk.
104
- SECURE_PROXY_SSL_HEADER = None
105
-
106
108
  ##############
107
109
  # MIDDLEWARE #
108
110
  ##############
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "plain"
3
- version = "0.10.0"
3
+ version = "0.11.0"
4
4
  description = "A web framework for building products with Python."
5
5
  authors = ["Dave Gaeddert <dave.gaeddert@dropseed.dev>"]
6
6
  readme = "README.md"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes