plain 0.9.0__tar.gz → 0.10.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.9.0 → plain-0.10.0}/PKG-INFO +1 -2
  2. {plain-0.9.0 → plain-0.10.0}/plain/runtime/__init__.py +6 -9
  3. {plain-0.9.0 → plain-0.10.0}/pyproject.toml +1 -2
  4. {plain-0.9.0 → plain-0.10.0}/LICENSE +0 -0
  5. {plain-0.9.0 → plain-0.10.0}/README.md +0 -0
  6. {plain-0.9.0 → plain-0.10.0}/plain/README.md +0 -0
  7. {plain-0.9.0 → plain-0.10.0}/plain/__main__.py +0 -0
  8. {plain-0.9.0 → plain-0.10.0}/plain/assets/README.md +0 -0
  9. {plain-0.9.0 → plain-0.10.0}/plain/assets/__init__.py +0 -0
  10. {plain-0.9.0 → plain-0.10.0}/plain/assets/compile.py +0 -0
  11. {plain-0.9.0 → plain-0.10.0}/plain/assets/finders.py +0 -0
  12. {plain-0.9.0 → plain-0.10.0}/plain/assets/fingerprints.py +0 -0
  13. {plain-0.9.0 → plain-0.10.0}/plain/assets/urls.py +0 -0
  14. {plain-0.9.0 → plain-0.10.0}/plain/assets/views.py +0 -0
  15. {plain-0.9.0 → plain-0.10.0}/plain/cli/README.md +0 -0
  16. {plain-0.9.0 → plain-0.10.0}/plain/cli/__init__.py +0 -0
  17. {plain-0.9.0 → plain-0.10.0}/plain/cli/cli.py +0 -0
  18. {plain-0.9.0 → plain-0.10.0}/plain/cli/formatting.py +0 -0
  19. {plain-0.9.0 → plain-0.10.0}/plain/cli/packages.py +0 -0
  20. {plain-0.9.0 → plain-0.10.0}/plain/cli/print.py +0 -0
  21. {plain-0.9.0 → plain-0.10.0}/plain/cli/startup.py +0 -0
  22. {plain-0.9.0 → plain-0.10.0}/plain/csrf/README.md +0 -0
  23. {plain-0.9.0 → plain-0.10.0}/plain/csrf/middleware.py +0 -0
  24. {plain-0.9.0 → plain-0.10.0}/plain/csrf/views.py +0 -0
  25. {plain-0.9.0 → plain-0.10.0}/plain/debug.py +0 -0
  26. {plain-0.9.0 → plain-0.10.0}/plain/exceptions.py +0 -0
  27. {plain-0.9.0 → plain-0.10.0}/plain/forms/README.md +0 -0
  28. {plain-0.9.0 → plain-0.10.0}/plain/forms/__init__.py +0 -0
  29. {plain-0.9.0 → plain-0.10.0}/plain/forms/boundfield.py +0 -0
  30. {plain-0.9.0 → plain-0.10.0}/plain/forms/exceptions.py +0 -0
  31. {plain-0.9.0 → plain-0.10.0}/plain/forms/fields.py +0 -0
  32. {plain-0.9.0 → plain-0.10.0}/plain/forms/forms.py +0 -0
  33. {plain-0.9.0 → plain-0.10.0}/plain/http/README.md +0 -0
  34. {plain-0.9.0 → plain-0.10.0}/plain/http/__init__.py +0 -0
  35. {plain-0.9.0 → plain-0.10.0}/plain/http/cookie.py +0 -0
  36. {plain-0.9.0 → plain-0.10.0}/plain/http/multipartparser.py +0 -0
  37. {plain-0.9.0 → plain-0.10.0}/plain/http/request.py +0 -0
  38. {plain-0.9.0 → plain-0.10.0}/plain/http/response.py +0 -0
  39. {plain-0.9.0 → plain-0.10.0}/plain/internal/__init__.py +0 -0
  40. {plain-0.9.0 → plain-0.10.0}/plain/internal/files/README.md +0 -0
  41. {plain-0.9.0 → plain-0.10.0}/plain/internal/files/__init__.py +0 -0
  42. {plain-0.9.0 → plain-0.10.0}/plain/internal/files/base.py +0 -0
  43. {plain-0.9.0 → plain-0.10.0}/plain/internal/files/locks.py +0 -0
  44. {plain-0.9.0 → plain-0.10.0}/plain/internal/files/move.py +0 -0
  45. {plain-0.9.0 → plain-0.10.0}/plain/internal/files/temp.py +0 -0
  46. {plain-0.9.0 → plain-0.10.0}/plain/internal/files/uploadedfile.py +0 -0
  47. {plain-0.9.0 → plain-0.10.0}/plain/internal/files/uploadhandler.py +0 -0
  48. {plain-0.9.0 → plain-0.10.0}/plain/internal/files/utils.py +0 -0
  49. {plain-0.9.0 → plain-0.10.0}/plain/internal/handlers/__init__.py +0 -0
  50. {plain-0.9.0 → plain-0.10.0}/plain/internal/handlers/base.py +0 -0
  51. {plain-0.9.0 → plain-0.10.0}/plain/internal/handlers/exception.py +0 -0
  52. {plain-0.9.0 → plain-0.10.0}/plain/internal/handlers/wsgi.py +0 -0
  53. {plain-0.9.0 → plain-0.10.0}/plain/internal/middleware/__init__.py +0 -0
  54. {plain-0.9.0 → plain-0.10.0}/plain/internal/middleware/headers.py +0 -0
  55. {plain-0.9.0 → plain-0.10.0}/plain/internal/middleware/https.py +0 -0
  56. {plain-0.9.0 → plain-0.10.0}/plain/internal/middleware/slash.py +0 -0
  57. {plain-0.9.0 → plain-0.10.0}/plain/json.py +0 -0
  58. {plain-0.9.0 → plain-0.10.0}/plain/logs/README.md +0 -0
  59. {plain-0.9.0 → plain-0.10.0}/plain/logs/__init__.py +0 -0
  60. {plain-0.9.0 → plain-0.10.0}/plain/logs/configure.py +0 -0
  61. {plain-0.9.0 → plain-0.10.0}/plain/logs/loggers.py +0 -0
  62. {plain-0.9.0 → plain-0.10.0}/plain/logs/utils.py +0 -0
  63. {plain-0.9.0 → plain-0.10.0}/plain/packages/README.md +0 -0
  64. {plain-0.9.0 → plain-0.10.0}/plain/packages/__init__.py +0 -0
  65. {plain-0.9.0 → plain-0.10.0}/plain/packages/config.py +0 -0
  66. {plain-0.9.0 → plain-0.10.0}/plain/packages/registry.py +0 -0
  67. {plain-0.9.0 → plain-0.10.0}/plain/paginator.py +0 -0
  68. {plain-0.9.0 → plain-0.10.0}/plain/preflight/README.md +0 -0
  69. {plain-0.9.0 → plain-0.10.0}/plain/preflight/__init__.py +0 -0
  70. {plain-0.9.0 → plain-0.10.0}/plain/preflight/files.py +0 -0
  71. {plain-0.9.0 → plain-0.10.0}/plain/preflight/messages.py +0 -0
  72. {plain-0.9.0 → plain-0.10.0}/plain/preflight/registry.py +0 -0
  73. {plain-0.9.0 → plain-0.10.0}/plain/preflight/security/__init__.py +0 -0
  74. {plain-0.9.0 → plain-0.10.0}/plain/preflight/security/base.py +0 -0
  75. {plain-0.9.0 → plain-0.10.0}/plain/preflight/security/csrf.py +0 -0
  76. {plain-0.9.0 → plain-0.10.0}/plain/preflight/urls.py +0 -0
  77. {plain-0.9.0 → plain-0.10.0}/plain/runtime/README.md +0 -0
  78. {plain-0.9.0 → plain-0.10.0}/plain/runtime/global_settings.py +0 -0
  79. {plain-0.9.0 → plain-0.10.0}/plain/runtime/user_settings.py +0 -0
  80. {plain-0.9.0 → plain-0.10.0}/plain/signals/README.md +0 -0
  81. {plain-0.9.0 → plain-0.10.0}/plain/signals/__init__.py +0 -0
  82. {plain-0.9.0 → plain-0.10.0}/plain/signals/dispatch/__init__.py +0 -0
  83. {plain-0.9.0 → plain-0.10.0}/plain/signals/dispatch/dispatcher.py +0 -0
  84. {plain-0.9.0 → plain-0.10.0}/plain/signals/dispatch/license.txt +0 -0
  85. {plain-0.9.0 → plain-0.10.0}/plain/signing.py +0 -0
  86. {plain-0.9.0 → plain-0.10.0}/plain/templates/README.md +0 -0
  87. {plain-0.9.0 → plain-0.10.0}/plain/templates/__init__.py +0 -0
  88. {plain-0.9.0 → plain-0.10.0}/plain/templates/core.py +0 -0
  89. {plain-0.9.0 → plain-0.10.0}/plain/templates/jinja/README.md +0 -0
  90. {plain-0.9.0 → plain-0.10.0}/plain/templates/jinja/__init__.py +0 -0
  91. {plain-0.9.0 → plain-0.10.0}/plain/templates/jinja/defaults.py +0 -0
  92. {plain-0.9.0 → plain-0.10.0}/plain/templates/jinja/extensions.py +0 -0
  93. {plain-0.9.0 → plain-0.10.0}/plain/templates/jinja/filters.py +0 -0
  94. {plain-0.9.0 → plain-0.10.0}/plain/templates/jinja/globals.py +0 -0
  95. {plain-0.9.0 → plain-0.10.0}/plain/test/README.md +0 -0
  96. {plain-0.9.0 → plain-0.10.0}/plain/test/__init__.py +0 -0
  97. {plain-0.9.0 → plain-0.10.0}/plain/test/client.py +0 -0
  98. {plain-0.9.0 → plain-0.10.0}/plain/urls/README.md +0 -0
  99. {plain-0.9.0 → plain-0.10.0}/plain/urls/__init__.py +0 -0
  100. {plain-0.9.0 → plain-0.10.0}/plain/urls/base.py +0 -0
  101. {plain-0.9.0 → plain-0.10.0}/plain/urls/conf.py +0 -0
  102. {plain-0.9.0 → plain-0.10.0}/plain/urls/converters.py +0 -0
  103. {plain-0.9.0 → plain-0.10.0}/plain/urls/exceptions.py +0 -0
  104. {plain-0.9.0 → plain-0.10.0}/plain/urls/resolvers.py +0 -0
  105. {plain-0.9.0 → plain-0.10.0}/plain/utils/README.md +0 -0
  106. {plain-0.9.0 → plain-0.10.0}/plain/utils/__init__.py +0 -0
  107. {plain-0.9.0 → plain-0.10.0}/plain/utils/_os.py +0 -0
  108. {plain-0.9.0 → plain-0.10.0}/plain/utils/cache.py +0 -0
  109. {plain-0.9.0 → plain-0.10.0}/plain/utils/connection.py +0 -0
  110. {plain-0.9.0 → plain-0.10.0}/plain/utils/crypto.py +0 -0
  111. {plain-0.9.0 → plain-0.10.0}/plain/utils/datastructures.py +0 -0
  112. {plain-0.9.0 → plain-0.10.0}/plain/utils/dateformat.py +0 -0
  113. {plain-0.9.0 → plain-0.10.0}/plain/utils/dateparse.py +0 -0
  114. {plain-0.9.0 → plain-0.10.0}/plain/utils/dates.py +0 -0
  115. {plain-0.9.0 → plain-0.10.0}/plain/utils/deconstruct.py +0 -0
  116. {plain-0.9.0 → plain-0.10.0}/plain/utils/decorators.py +0 -0
  117. {plain-0.9.0 → plain-0.10.0}/plain/utils/deprecation.py +0 -0
  118. {plain-0.9.0 → plain-0.10.0}/plain/utils/duration.py +0 -0
  119. {plain-0.9.0 → plain-0.10.0}/plain/utils/email.py +0 -0
  120. {plain-0.9.0 → plain-0.10.0}/plain/utils/encoding.py +0 -0
  121. {plain-0.9.0 → plain-0.10.0}/plain/utils/functional.py +0 -0
  122. {plain-0.9.0 → plain-0.10.0}/plain/utils/hashable.py +0 -0
  123. {plain-0.9.0 → plain-0.10.0}/plain/utils/html.py +0 -0
  124. {plain-0.9.0 → plain-0.10.0}/plain/utils/http.py +0 -0
  125. {plain-0.9.0 → plain-0.10.0}/plain/utils/inspect.py +0 -0
  126. {plain-0.9.0 → plain-0.10.0}/plain/utils/ipv6.py +0 -0
  127. {plain-0.9.0 → plain-0.10.0}/plain/utils/itercompat.py +0 -0
  128. {plain-0.9.0 → plain-0.10.0}/plain/utils/module_loading.py +0 -0
  129. {plain-0.9.0 → plain-0.10.0}/plain/utils/regex_helper.py +0 -0
  130. {plain-0.9.0 → plain-0.10.0}/plain/utils/safestring.py +0 -0
  131. {plain-0.9.0 → plain-0.10.0}/plain/utils/termcolors.py +0 -0
  132. {plain-0.9.0 → plain-0.10.0}/plain/utils/text.py +0 -0
  133. {plain-0.9.0 → plain-0.10.0}/plain/utils/timesince.py +0 -0
  134. {plain-0.9.0 → plain-0.10.0}/plain/utils/timezone.py +0 -0
  135. {plain-0.9.0 → plain-0.10.0}/plain/utils/tree.py +0 -0
  136. {plain-0.9.0 → plain-0.10.0}/plain/validators.py +0 -0
  137. {plain-0.9.0 → plain-0.10.0}/plain/views/README.md +0 -0
  138. {plain-0.9.0 → plain-0.10.0}/plain/views/__init__.py +0 -0
  139. {plain-0.9.0 → plain-0.10.0}/plain/views/base.py +0 -0
  140. {plain-0.9.0 → plain-0.10.0}/plain/views/csrf.py +0 -0
  141. {plain-0.9.0 → plain-0.10.0}/plain/views/errors.py +0 -0
  142. {plain-0.9.0 → plain-0.10.0}/plain/views/exceptions.py +0 -0
  143. {plain-0.9.0 → plain-0.10.0}/plain/views/forms.py +0 -0
  144. {plain-0.9.0 → plain-0.10.0}/plain/views/objects.py +0 -0
  145. {plain-0.9.0 → plain-0.10.0}/plain/views/redirect.py +0 -0
  146. {plain-0.9.0 → plain-0.10.0}/plain/views/templates.py +0 -0
  147. {plain-0.9.0 → plain-0.10.0}/plain/wsgi.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: plain
3
- Version: 0.9.0
3
+ Version: 0.10.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
@@ -11,7 +11,6 @@ Classifier: Programming Language :: Python :: 3.12
11
11
  Classifier: Programming Language :: Python :: 3.13
12
12
  Requires-Dist: click (>=8.0.0)
13
13
  Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
14
- Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
15
14
  Description-Content-Type: text/markdown
16
15
 
17
16
  <!-- This file is compiled from plain/plain/README.md. Do not edit this file directly. -->
@@ -1,10 +1,8 @@
1
1
  import importlib.metadata
2
2
  import sys
3
- from os import environ
3
+ from importlib.metadata import entry_points
4
4
  from pathlib import Path
5
5
 
6
- from dotenv import load_dotenv
7
-
8
6
  from .user_settings import Settings
9
7
 
10
8
  try:
@@ -29,6 +27,11 @@ def setup():
29
27
  Configure the settings (this happens as a side effect of accessing the
30
28
  first setting), configure logging and populate the app registry.
31
29
  """
30
+
31
+ # Packages can hook into the setup process through an entrypoint.
32
+ for entry_point in entry_points().select(group="plain.setup"):
33
+ entry_point.load()()
34
+
32
35
  from plain.logs import configure_logging
33
36
  from plain.packages import packages
34
37
 
@@ -43,12 +46,6 @@ def setup():
43
46
  if APP_PATH.parent not in sys.path:
44
47
  sys.path.insert(0, APP_PATH.parent.as_posix())
45
48
 
46
- # Load .env files automatically before settings
47
- if app_env := environ.get("PLAIN_ENV", ""):
48
- load_dotenv(f".env.{app_env}")
49
- else:
50
- load_dotenv(".env")
51
-
52
49
  configure_logging(settings.LOGGING)
53
50
 
54
51
  packages.populate(settings.INSTALLED_PACKAGES)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "plain"
3
- version = "0.9.0"
3
+ version = "0.10.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"
@@ -15,7 +15,6 @@ plain = "plain.cli:cli"
15
15
  [tool.poetry.dependencies]
16
16
  python = "^3.11"
17
17
  jinja2 = "^3.1.2"
18
- python-dotenv = "^1.0.0"
19
18
  click = ">=8.0.0"
20
19
 
21
20
  [tool.poetry.group.dev.dependencies]
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