plain.dev 0.29.1__tar.gz → 0.30.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 (33) hide show
  1. {plain_dev-0.29.1 → plain_dev-0.30.0}/PKG-INFO +1 -1
  2. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/cli.py +13 -23
  3. plain_dev-0.30.0/plain/dev/gunicorn_logging.json +40 -0
  4. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/requests.py +2 -2
  5. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/services.py +2 -2
  6. {plain_dev-0.29.1 → plain_dev-0.30.0}/pyproject.toml +1 -1
  7. plain_dev-0.29.1/plain/dev/gunicorn_logging.json +0 -46
  8. {plain_dev-0.29.1 → plain_dev-0.30.0}/.gitignore +0 -0
  9. {plain_dev-0.29.1 → plain_dev-0.30.0}/LICENSE +0 -0
  10. {plain_dev-0.29.1 → plain_dev-0.30.0}/README.md +0 -0
  11. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/README.md +0 -0
  12. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/__init__.py +0 -0
  13. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/contribute/README.md +0 -0
  14. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/contribute/__init__.py +0 -0
  15. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/contribute/cli.py +0 -0
  16. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/debug.py +0 -0
  17. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/default_settings.py +0 -0
  18. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/entrypoints.py +0 -0
  19. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/mkcert.py +0 -0
  20. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/pdb.py +0 -0
  21. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/poncho/__init__.py +0 -0
  22. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/poncho/color.py +0 -0
  23. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/poncho/compat.py +0 -0
  24. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/poncho/manager.py +0 -0
  25. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/poncho/printer.py +0 -0
  26. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/poncho/process.py +0 -0
  27. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/precommit/__init__.py +0 -0
  28. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/precommit/cli.py +0 -0
  29. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/templates/dev/requests.html +0 -0
  30. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/urls.py +0 -0
  31. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/utils.py +0 -0
  32. {plain_dev-0.29.1 → plain_dev-0.30.0}/plain/dev/views.py +0 -0
  33. {plain_dev-0.29.1 → plain_dev-0.30.0}/tests/settings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plain.dev
3
- Version: 0.29.1
3
+ Version: 0.30.0
4
4
  Summary: Local development tools for Plain.
5
5
  Author-email: Dave Gaeddert <dave.gaeddert@dropseed.dev>
6
6
  License-Expression: BSD-3-Clause
@@ -18,7 +18,7 @@ from rich.console import Console
18
18
  from rich.text import Text
19
19
 
20
20
  from plain.cli import register_cli
21
- from plain.runtime import APP_PATH, settings
21
+ from plain.runtime import APP_PATH, PLAIN_TEMP_PATH
22
22
 
23
23
  from .mkcert import MkcertManager
24
24
  from .poncho.manager import Manager as PonchoManager
@@ -145,14 +145,13 @@ class Dev:
145
145
  self.plain_env = {
146
146
  "PYTHONUNBUFFERED": "true",
147
147
  "PLAIN_DEV": "true",
148
+ **os.environ,
148
149
  }
149
150
 
150
151
  if log_level:
151
152
  self.plain_env["PLAIN_LOG_LEVEL"] = log_level.upper()
152
153
  self.plain_env["APP_LOG_LEVEL"] = log_level.upper()
153
154
 
154
- self.plain_env.update(os.environ)
155
-
156
155
  self.custom_process_env = {
157
156
  **self.plain_env,
158
157
  "PORT": str(self.port),
@@ -197,12 +196,12 @@ class Dev:
197
196
  mkcert_manager.setup_mkcert(install_path=Path.home() / ".plain" / "dev")
198
197
  self.ssl_cert_path, self.ssl_key_path = mkcert_manager.generate_certs(
199
198
  domain=self.hostname,
200
- storage_path=Path(settings.PLAIN_TEMP_PATH) / "dev" / "certs",
199
+ storage_path=Path(PLAIN_TEMP_PATH) / "dev" / "certs",
201
200
  )
202
201
 
203
202
  self.symlink_plain_src()
204
203
  self.modify_hosts_file()
205
- self.set_csrf_and_allowed_hosts()
204
+ self.set_allowed_hosts()
206
205
  self.run_preflight()
207
206
 
208
207
  # If we start services ourselves, we should manage the pidfile
@@ -280,10 +279,10 @@ class Dev:
280
279
  plain_path = Path(
281
280
  importlib.util.find_spec("plain.runtime").origin
282
281
  ).parent.parent
283
- if not settings.PLAIN_TEMP_PATH.exists():
284
- settings.PLAIN_TEMP_PATH.mkdir()
282
+ if not PLAIN_TEMP_PATH.exists():
283
+ PLAIN_TEMP_PATH.mkdir()
285
284
 
286
- symlink_path = settings.PLAIN_TEMP_PATH / "src"
285
+ symlink_path = PLAIN_TEMP_PATH / "src"
287
286
 
288
287
  # The symlink is broken
289
288
  if symlink_path.is_symlink() and not symlink_path.exists():
@@ -355,22 +354,13 @@ class Dev:
355
354
  )
356
355
  sys.exit(1)
357
356
 
358
- def set_csrf_and_allowed_hosts(self):
359
- if "PLAIN_CSRF_TRUSTED_ORIGINS" not in os.environ:
360
- csrf_trusted_origins = json.dumps(
361
- [
362
- self.url,
363
- ]
364
- )
365
- self.plain_env["PLAIN_CSRF_TRUSTED_ORIGINS"] = csrf_trusted_origins
366
- self.custom_process_env["PLAIN_CSRF_TRUSTED_ORIGINS"] = csrf_trusted_origins
367
- click.secho(
368
- f"Automatically set PLAIN_CSRF_TRUSTED_ORIGINS={csrf_trusted_origins}",
369
- dim=True,
370
- )
371
-
357
+ def set_allowed_hosts(self):
372
358
  if "PLAIN_ALLOWED_HOSTS" not in os.environ:
373
- allowed_hosts = json.dumps([self.hostname])
359
+ hostnames = [self.hostname]
360
+ if self.tunnel_url:
361
+ # Add the tunnel URL to the allowed hosts
362
+ hostnames.append(self.tunnel_url.split("://")[1])
363
+ allowed_hosts = json.dumps(hostnames)
374
364
  self.plain_env["PLAIN_ALLOWED_HOSTS"] = allowed_hosts
375
365
  self.custom_process_env["PLAIN_ALLOWED_HOSTS"] = allowed_hosts
376
366
  click.secho(
@@ -0,0 +1,40 @@
1
+ {
2
+ "version": 1,
3
+ "disable_existing_loggers": false,
4
+ "root": {
5
+ "level": "INFO",
6
+ "handlers": ["console"]
7
+ },
8
+ "loggers": {
9
+ "gunicorn.error": {
10
+ "level": "INFO",
11
+ "handlers": ["error_console"],
12
+ "propagate": false,
13
+ "qualname": "gunicorn.error"
14
+ },
15
+ "gunicorn.access": {
16
+ "level": "INFO",
17
+ "handlers": ["console"],
18
+ "propagate": false,
19
+ "qualname": "gunicorn.access"
20
+ }
21
+ },
22
+ "handlers": {
23
+ "console": {
24
+ "class": "logging.StreamHandler",
25
+ "formatter": "generic",
26
+ "stream": "ext://sys.stdout"
27
+ },
28
+ "error_console": {
29
+ "class": "logging.StreamHandler",
30
+ "formatter": "generic",
31
+ "stream": "ext://sys.stderr"
32
+ }
33
+ },
34
+ "formatters": {
35
+ "generic": {
36
+ "format": "[%(process)d] [%(levelname)s] %(message)s",
37
+ "class": "logging.Formatter"
38
+ }
39
+ }
40
+ }
@@ -6,7 +6,7 @@ import traceback
6
6
 
7
7
  import requests
8
8
 
9
- from plain.runtime import settings
9
+ from plain.runtime import PLAIN_TEMP_PATH, settings
10
10
  from plain.signals import got_request_exception
11
11
 
12
12
 
@@ -18,7 +18,7 @@ class RequestLog:
18
18
 
19
19
  @staticmethod
20
20
  def storage_path():
21
- return str(settings.PLAIN_TEMP_PATH / "dev" / "requestlog")
21
+ return str(PLAIN_TEMP_PATH / "dev" / "requestlog")
22
22
 
23
23
  @classmethod
24
24
  def replay_request(cls, name):
@@ -7,7 +7,7 @@ from pathlib import Path
7
7
 
8
8
  import click
9
9
 
10
- from plain.runtime import APP_PATH, settings
10
+ from plain.runtime import APP_PATH, PLAIN_TEMP_PATH
11
11
 
12
12
  from .poncho.manager import Manager as PonchoManager
13
13
  from .utils import has_pyproject_toml
@@ -15,7 +15,7 @@ from .utils import has_pyproject_toml
15
15
 
16
16
  class ServicesPid:
17
17
  def __init__(self):
18
- self.pidfile = settings.PLAIN_TEMP_PATH / "dev" / "services.pid"
18
+ self.pidfile = PLAIN_TEMP_PATH / "dev" / "services.pid"
19
19
 
20
20
  def write(self):
21
21
  pid = os.getpid()
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "plain.dev"
3
- version = "0.29.1"
3
+ version = "0.30.0"
4
4
  description = "Local development tools for Plain."
5
5
  authors = [{name = "Dave Gaeddert", email = "dave.gaeddert@dropseed.dev"}]
6
6
  license = "BSD-3-Clause"
@@ -1,46 +0,0 @@
1
- {
2
- "version": 1,
3
- "disable_existing_loggers": false,
4
- "root": {
5
- "level": "INFO",
6
- "handlers": [
7
- "console"
8
- ]
9
- },
10
- "loggers": {
11
- "gunicorn.error": {
12
- "level": "INFO",
13
- "handlers": [
14
- "error_console"
15
- ],
16
- "propagate": false,
17
- "qualname": "gunicorn.error"
18
- },
19
- "gunicorn.access": {
20
- "level": "INFO",
21
- "handlers": [
22
- "console"
23
- ],
24
- "propagate": false,
25
- "qualname": "gunicorn.access"
26
- }
27
- },
28
- "handlers": {
29
- "console": {
30
- "class": "logging.StreamHandler",
31
- "formatter": "generic",
32
- "stream": "ext://sys.stdout"
33
- },
34
- "error_console": {
35
- "class": "logging.StreamHandler",
36
- "formatter": "generic",
37
- "stream": "ext://sys.stderr"
38
- }
39
- },
40
- "formatters": {
41
- "generic": {
42
- "format": "[%(process)d] [%(levelname)s] %(message)s",
43
- "class": "logging.Formatter"
44
- }
45
- }
46
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes