plain 0.2.2__tar.gz → 0.2.4__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 (158) hide show
  1. {plain-0.2.2 → plain-0.2.4}/PKG-INFO +1 -1
  2. {plain-0.2.2 → plain-0.2.4}/plain/assets/views.py +6 -2
  3. {plain-0.2.2 → plain-0.2.4}/pyproject.toml +1 -1
  4. {plain-0.2.2 → plain-0.2.4}/LICENSE +0 -0
  5. {plain-0.2.2 → plain-0.2.4}/README.md +0 -0
  6. {plain-0.2.2 → plain-0.2.4}/plain/README.md +0 -0
  7. {plain-0.2.2 → plain-0.2.4}/plain/__main__.py +0 -0
  8. {plain-0.2.2 → plain-0.2.4}/plain/assets/README.md +0 -0
  9. {plain-0.2.2 → plain-0.2.4}/plain/assets/__init__.py +0 -0
  10. {plain-0.2.2 → plain-0.2.4}/plain/assets/compile.py +0 -0
  11. {plain-0.2.2 → plain-0.2.4}/plain/assets/finders.py +0 -0
  12. {plain-0.2.2 → plain-0.2.4}/plain/assets/fingerprints.py +0 -0
  13. {plain-0.2.2 → plain-0.2.4}/plain/assets/urls.py +0 -0
  14. {plain-0.2.2 → plain-0.2.4}/plain/cli/README.md +0 -0
  15. {plain-0.2.2 → plain-0.2.4}/plain/cli/__init__.py +0 -0
  16. {plain-0.2.2 → plain-0.2.4}/plain/cli/cli.py +0 -0
  17. {plain-0.2.2 → plain-0.2.4}/plain/cli/formatting.py +0 -0
  18. {plain-0.2.2 → plain-0.2.4}/plain/cli/packages.py +0 -0
  19. {plain-0.2.2 → plain-0.2.4}/plain/cli/print.py +0 -0
  20. {plain-0.2.2 → plain-0.2.4}/plain/cli/startup.py +0 -0
  21. {plain-0.2.2 → plain-0.2.4}/plain/csrf/README.md +0 -0
  22. {plain-0.2.2 → plain-0.2.4}/plain/csrf/middleware.py +0 -0
  23. {plain-0.2.2 → plain-0.2.4}/plain/csrf/views.py +0 -0
  24. {plain-0.2.2 → plain-0.2.4}/plain/debug.py +0 -0
  25. {plain-0.2.2 → plain-0.2.4}/plain/exceptions.py +0 -0
  26. {plain-0.2.2 → plain-0.2.4}/plain/forms/README.md +0 -0
  27. {plain-0.2.2 → plain-0.2.4}/plain/forms/__init__.py +0 -0
  28. {plain-0.2.2 → plain-0.2.4}/plain/forms/boundfield.py +0 -0
  29. {plain-0.2.2 → plain-0.2.4}/plain/forms/exceptions.py +0 -0
  30. {plain-0.2.2 → plain-0.2.4}/plain/forms/fields.py +0 -0
  31. {plain-0.2.2 → plain-0.2.4}/plain/forms/forms.py +0 -0
  32. {plain-0.2.2 → plain-0.2.4}/plain/http/README.md +0 -0
  33. {plain-0.2.2 → plain-0.2.4}/plain/http/__init__.py +0 -0
  34. {plain-0.2.2 → plain-0.2.4}/plain/http/cookie.py +0 -0
  35. {plain-0.2.2 → plain-0.2.4}/plain/http/multipartparser.py +0 -0
  36. {plain-0.2.2 → plain-0.2.4}/plain/http/request.py +0 -0
  37. {plain-0.2.2 → plain-0.2.4}/plain/http/response.py +0 -0
  38. {plain-0.2.2 → plain-0.2.4}/plain/internal/__init__.py +0 -0
  39. {plain-0.2.2 → plain-0.2.4}/plain/internal/files/README.md +0 -0
  40. {plain-0.2.2 → plain-0.2.4}/plain/internal/files/__init__.py +0 -0
  41. {plain-0.2.2 → plain-0.2.4}/plain/internal/files/base.py +0 -0
  42. {plain-0.2.2 → plain-0.2.4}/plain/internal/files/locks.py +0 -0
  43. {plain-0.2.2 → plain-0.2.4}/plain/internal/files/move.py +0 -0
  44. {plain-0.2.2 → plain-0.2.4}/plain/internal/files/temp.py +0 -0
  45. {plain-0.2.2 → plain-0.2.4}/plain/internal/files/uploadedfile.py +0 -0
  46. {plain-0.2.2 → plain-0.2.4}/plain/internal/files/uploadhandler.py +0 -0
  47. {plain-0.2.2 → plain-0.2.4}/plain/internal/files/utils.py +0 -0
  48. {plain-0.2.2 → plain-0.2.4}/plain/internal/handlers/__init__.py +0 -0
  49. {plain-0.2.2 → plain-0.2.4}/plain/internal/handlers/base.py +0 -0
  50. {plain-0.2.2 → plain-0.2.4}/plain/internal/handlers/exception.py +0 -0
  51. {plain-0.2.2 → plain-0.2.4}/plain/internal/handlers/wsgi.py +0 -0
  52. {plain-0.2.2 → plain-0.2.4}/plain/internal/legacy/__init__.py +0 -0
  53. {plain-0.2.2 → plain-0.2.4}/plain/internal/legacy/__main__.py +0 -0
  54. {plain-0.2.2 → plain-0.2.4}/plain/internal/legacy/management/__init__.py +0 -0
  55. {plain-0.2.2 → plain-0.2.4}/plain/internal/legacy/management/base.py +0 -0
  56. {plain-0.2.2 → plain-0.2.4}/plain/internal/legacy/management/color.py +0 -0
  57. {plain-0.2.2 → plain-0.2.4}/plain/internal/legacy/management/sql.py +0 -0
  58. {plain-0.2.2 → plain-0.2.4}/plain/internal/legacy/management/utils.py +0 -0
  59. {plain-0.2.2 → plain-0.2.4}/plain/json.py +0 -0
  60. {plain-0.2.2 → plain-0.2.4}/plain/logs/README.md +0 -0
  61. {plain-0.2.2 → plain-0.2.4}/plain/logs/__init__.py +0 -0
  62. {plain-0.2.2 → plain-0.2.4}/plain/logs/configure.py +0 -0
  63. {plain-0.2.2 → plain-0.2.4}/plain/logs/loggers.py +0 -0
  64. {plain-0.2.2 → plain-0.2.4}/plain/logs/utils.py +0 -0
  65. {plain-0.2.2 → plain-0.2.4}/plain/middleware/README.md +0 -0
  66. {plain-0.2.2 → plain-0.2.4}/plain/middleware/__init__.py +0 -0
  67. {plain-0.2.2 → plain-0.2.4}/plain/middleware/clickjacking.py +0 -0
  68. {plain-0.2.2 → plain-0.2.4}/plain/middleware/common.py +0 -0
  69. {plain-0.2.2 → plain-0.2.4}/plain/middleware/gzip.py +0 -0
  70. {plain-0.2.2 → plain-0.2.4}/plain/middleware/security.py +0 -0
  71. {plain-0.2.2 → plain-0.2.4}/plain/packages/README.md +0 -0
  72. {plain-0.2.2 → plain-0.2.4}/plain/packages/__init__.py +0 -0
  73. {plain-0.2.2 → plain-0.2.4}/plain/packages/config.py +0 -0
  74. {plain-0.2.2 → plain-0.2.4}/plain/packages/registry.py +0 -0
  75. {plain-0.2.2 → plain-0.2.4}/plain/paginator.py +0 -0
  76. {plain-0.2.2 → plain-0.2.4}/plain/preflight/README.md +0 -0
  77. {plain-0.2.2 → plain-0.2.4}/plain/preflight/__init__.py +0 -0
  78. {plain-0.2.2 → plain-0.2.4}/plain/preflight/compatibility/__init__.py +0 -0
  79. {plain-0.2.2 → plain-0.2.4}/plain/preflight/compatibility/django_4_0.py +0 -0
  80. {plain-0.2.2 → plain-0.2.4}/plain/preflight/files.py +0 -0
  81. {plain-0.2.2 → plain-0.2.4}/plain/preflight/messages.py +0 -0
  82. {plain-0.2.2 → plain-0.2.4}/plain/preflight/registry.py +0 -0
  83. {plain-0.2.2 → plain-0.2.4}/plain/preflight/security/__init__.py +0 -0
  84. {plain-0.2.2 → plain-0.2.4}/plain/preflight/security/base.py +0 -0
  85. {plain-0.2.2 → plain-0.2.4}/plain/preflight/security/csrf.py +0 -0
  86. {plain-0.2.2 → plain-0.2.4}/plain/preflight/urls.py +0 -0
  87. {plain-0.2.2 → plain-0.2.4}/plain/runtime/README.md +0 -0
  88. {plain-0.2.2 → plain-0.2.4}/plain/runtime/__init__.py +0 -0
  89. {plain-0.2.2 → plain-0.2.4}/plain/runtime/global_settings.py +0 -0
  90. {plain-0.2.2 → plain-0.2.4}/plain/runtime/user_settings.py +0 -0
  91. {plain-0.2.2 → plain-0.2.4}/plain/signals/README.md +0 -0
  92. {plain-0.2.2 → plain-0.2.4}/plain/signals/__init__.py +0 -0
  93. {plain-0.2.2 → plain-0.2.4}/plain/signals/dispatch/__init__.py +0 -0
  94. {plain-0.2.2 → plain-0.2.4}/plain/signals/dispatch/dispatcher.py +0 -0
  95. {plain-0.2.2 → plain-0.2.4}/plain/signals/dispatch/license.txt +0 -0
  96. {plain-0.2.2 → plain-0.2.4}/plain/signing.py +0 -0
  97. {plain-0.2.2 → plain-0.2.4}/plain/templates/README.md +0 -0
  98. {plain-0.2.2 → plain-0.2.4}/plain/templates/__init__.py +0 -0
  99. {plain-0.2.2 → plain-0.2.4}/plain/templates/core.py +0 -0
  100. {plain-0.2.2 → plain-0.2.4}/plain/templates/jinja/README.md +0 -0
  101. {plain-0.2.2 → plain-0.2.4}/plain/templates/jinja/__init__.py +0 -0
  102. {plain-0.2.2 → plain-0.2.4}/plain/templates/jinja/defaults.py +0 -0
  103. {plain-0.2.2 → plain-0.2.4}/plain/templates/jinja/extensions.py +0 -0
  104. {plain-0.2.2 → plain-0.2.4}/plain/templates/jinja/filters.py +0 -0
  105. {plain-0.2.2 → plain-0.2.4}/plain/templates/jinja/globals.py +0 -0
  106. {plain-0.2.2 → plain-0.2.4}/plain/test/README.md +0 -0
  107. {plain-0.2.2 → plain-0.2.4}/plain/test/__init__.py +0 -0
  108. {plain-0.2.2 → plain-0.2.4}/plain/test/client.py +0 -0
  109. {plain-0.2.2 → plain-0.2.4}/plain/urls/README.md +0 -0
  110. {plain-0.2.2 → plain-0.2.4}/plain/urls/__init__.py +0 -0
  111. {plain-0.2.2 → plain-0.2.4}/plain/urls/base.py +0 -0
  112. {plain-0.2.2 → plain-0.2.4}/plain/urls/conf.py +0 -0
  113. {plain-0.2.2 → plain-0.2.4}/plain/urls/converters.py +0 -0
  114. {plain-0.2.2 → plain-0.2.4}/plain/urls/exceptions.py +0 -0
  115. {plain-0.2.2 → plain-0.2.4}/plain/urls/resolvers.py +0 -0
  116. {plain-0.2.2 → plain-0.2.4}/plain/utils/README.md +0 -0
  117. {plain-0.2.2 → plain-0.2.4}/plain/utils/__init__.py +0 -0
  118. {plain-0.2.2 → plain-0.2.4}/plain/utils/_os.py +0 -0
  119. {plain-0.2.2 → plain-0.2.4}/plain/utils/cache.py +0 -0
  120. {plain-0.2.2 → plain-0.2.4}/plain/utils/connection.py +0 -0
  121. {plain-0.2.2 → plain-0.2.4}/plain/utils/crypto.py +0 -0
  122. {plain-0.2.2 → plain-0.2.4}/plain/utils/datastructures.py +0 -0
  123. {plain-0.2.2 → plain-0.2.4}/plain/utils/dateformat.py +0 -0
  124. {plain-0.2.2 → plain-0.2.4}/plain/utils/dateparse.py +0 -0
  125. {plain-0.2.2 → plain-0.2.4}/plain/utils/dates.py +0 -0
  126. {plain-0.2.2 → plain-0.2.4}/plain/utils/deconstruct.py +0 -0
  127. {plain-0.2.2 → plain-0.2.4}/plain/utils/decorators.py +0 -0
  128. {plain-0.2.2 → plain-0.2.4}/plain/utils/deprecation.py +0 -0
  129. {plain-0.2.2 → plain-0.2.4}/plain/utils/duration.py +0 -0
  130. {plain-0.2.2 → plain-0.2.4}/plain/utils/email.py +0 -0
  131. {plain-0.2.2 → plain-0.2.4}/plain/utils/encoding.py +0 -0
  132. {plain-0.2.2 → plain-0.2.4}/plain/utils/functional.py +0 -0
  133. {plain-0.2.2 → plain-0.2.4}/plain/utils/hashable.py +0 -0
  134. {plain-0.2.2 → plain-0.2.4}/plain/utils/html.py +0 -0
  135. {plain-0.2.2 → plain-0.2.4}/plain/utils/http.py +0 -0
  136. {plain-0.2.2 → plain-0.2.4}/plain/utils/inspect.py +0 -0
  137. {plain-0.2.2 → plain-0.2.4}/plain/utils/ipv6.py +0 -0
  138. {plain-0.2.2 → plain-0.2.4}/plain/utils/itercompat.py +0 -0
  139. {plain-0.2.2 → plain-0.2.4}/plain/utils/module_loading.py +0 -0
  140. {plain-0.2.2 → plain-0.2.4}/plain/utils/regex_helper.py +0 -0
  141. {plain-0.2.2 → plain-0.2.4}/plain/utils/safestring.py +0 -0
  142. {plain-0.2.2 → plain-0.2.4}/plain/utils/termcolors.py +0 -0
  143. {plain-0.2.2 → plain-0.2.4}/plain/utils/text.py +0 -0
  144. {plain-0.2.2 → plain-0.2.4}/plain/utils/timesince.py +0 -0
  145. {plain-0.2.2 → plain-0.2.4}/plain/utils/timezone.py +0 -0
  146. {plain-0.2.2 → plain-0.2.4}/plain/utils/tree.py +0 -0
  147. {plain-0.2.2 → plain-0.2.4}/plain/validators.py +0 -0
  148. {plain-0.2.2 → plain-0.2.4}/plain/views/README.md +0 -0
  149. {plain-0.2.2 → plain-0.2.4}/plain/views/__init__.py +0 -0
  150. {plain-0.2.2 → plain-0.2.4}/plain/views/base.py +0 -0
  151. {plain-0.2.2 → plain-0.2.4}/plain/views/csrf.py +0 -0
  152. {plain-0.2.2 → plain-0.2.4}/plain/views/errors.py +0 -0
  153. {plain-0.2.2 → plain-0.2.4}/plain/views/exceptions.py +0 -0
  154. {plain-0.2.2 → plain-0.2.4}/plain/views/forms.py +0 -0
  155. {plain-0.2.2 → plain-0.2.4}/plain/views/objects.py +0 -0
  156. {plain-0.2.2 → plain-0.2.4}/plain/views/redirect.py +0 -0
  157. {plain-0.2.2 → plain-0.2.4}/plain/views/templates.py +0 -0
  158. {plain-0.2.2 → plain-0.2.4}/plain/wsgi.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: plain
3
- Version: 0.2.2
3
+ Version: 0.2.4
4
4
  Summary: A web framework for building products with Python.
5
5
  Author: Dave Gaeddert
6
6
  Author-email: dave.gaeddert@dropseed.dev
@@ -1,4 +1,5 @@
1
1
  import functools
2
+ import mimetypes
2
3
  import os
3
4
  from email.utils import formatdate, parsedate
4
5
  from io import BytesIO
@@ -33,7 +34,7 @@ class AssetView(View):
33
34
  # Make a trailing slash work, but we don't expect it
34
35
  url_path = url_path.rstrip("/")
35
36
 
36
- if settings.DEBUG and False:
37
+ if settings.DEBUG:
37
38
  absolute_path = self.get_debug_asset_path(url_path)
38
39
  else:
39
40
  absolute_path = self.get_asset_path(url_path)
@@ -53,9 +54,12 @@ class AssetView(View):
53
54
  if not_modified_response := self.get_conditional_response(absolute_path):
54
55
  return not_modified_response
55
56
 
57
+ content_type, _ = mimetypes.guess_type(absolute_path)
58
+
56
59
  response = FileResponse(
57
60
  open(absolute_path, "rb"),
58
- filename=os.path.basename(absolute_path), # Used for Content-Type
61
+ filename=os.path.basename(absolute_path),
62
+ content_type=content_type,
59
63
  )
60
64
  response.headers = self.update_headers(response.headers, absolute_path)
61
65
  return response
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "plain"
3
- version = "0.2.2"
3
+ version = "0.2.4"
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
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