plain.dev 0.19.2__tar.gz → 0.20.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 (71) hide show
  1. plain_dev-0.20.0/.pytype/.gitignore +2 -0
  2. plain_dev-0.20.0/.pytype/.ninja_log +2 -0
  3. plain_dev-0.20.0/.pytype/build.ninja +84 -0
  4. plain_dev-0.20.0/.pytype/imports/default.pyi +3 -0
  5. plain_dev-0.20.0/.pytype/imports/dev.__init__.imports +27 -0
  6. plain_dev-0.20.0/.pytype/imports/dev.cli.imports +16 -0
  7. plain_dev-0.20.0/.pytype/imports/dev.contribute.__init__.imports +2 -0
  8. plain_dev-0.20.0/.pytype/imports/dev.contribute.cli.imports +1 -0
  9. plain_dev-0.20.0/.pytype/imports/dev.db.__init__.imports +12 -0
  10. plain_dev-0.20.0/.pytype/imports/dev.db.cli.imports +11 -0
  11. plain_dev-0.20.0/.pytype/imports/dev.db.container.imports +1 -0
  12. plain_dev-0.20.0/.pytype/imports/dev.debug.imports +1 -0
  13. plain_dev-0.20.0/.pytype/imports/dev.default_settings.imports +0 -0
  14. plain_dev-0.20.0/.pytype/imports/dev.entrypoints.imports +3 -0
  15. plain_dev-0.20.0/.pytype/imports/dev.mkcert.imports +1 -0
  16. plain_dev-0.20.0/.pytype/imports/dev.pdb.imports +0 -0
  17. plain_dev-0.20.0/.pytype/imports/dev.pid.imports +1 -0
  18. plain_dev-0.20.0/.pytype/imports/dev.poncho.__init__.imports +0 -0
  19. plain_dev-0.20.0/.pytype/imports/dev.poncho.color.imports +0 -0
  20. plain_dev-0.20.0/.pytype/imports/dev.poncho.compat.imports +0 -0
  21. plain_dev-0.20.0/.pytype/imports/dev.poncho.manager.imports +4 -0
  22. plain_dev-0.20.0/.pytype/imports/dev.poncho.printer.imports +0 -0
  23. plain_dev-0.20.0/.pytype/imports/dev.poncho.process.imports +2 -0
  24. plain_dev-0.20.0/.pytype/imports/dev.precommit.__init__.imports +12 -0
  25. plain_dev-0.20.0/.pytype/imports/dev.precommit.cli.imports +11 -0
  26. plain_dev-0.20.0/.pytype/imports/dev.requests.imports +10 -0
  27. plain_dev-0.20.0/.pytype/imports/dev.services.imports +9 -0
  28. plain_dev-0.20.0/.pytype/imports/dev.urls.imports +15 -0
  29. plain_dev-0.20.0/.pytype/imports/dev.utils.imports +0 -0
  30. plain_dev-0.20.0/.pytype/imports/dev.views.imports +13 -0
  31. plain_dev-0.20.0/.pytype/pyi/dev/poncho/compat.pyi +13 -0
  32. plain_dev-0.20.0/.pytype/pyi/dev/poncho/printer.pyi +23 -0
  33. {plain_dev-0.19.2 → plain_dev-0.20.0}/PKG-INFO +2 -3
  34. plain_dev-0.20.0/README.md +1 -0
  35. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/cli.py +3 -5
  36. plain_dev-0.20.0/plain/dev/contribute/README.md +5 -0
  37. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/requests.py +1 -1
  38. plain_dev-0.20.0/plain/dev/urls.py +11 -0
  39. {plain_dev-0.19.2 → plain_dev-0.20.0}/pyproject.toml +7 -1
  40. plain_dev-0.19.2/README.md +0 -98
  41. plain_dev-0.19.2/plain/dev/db/cli.py +0 -113
  42. plain_dev-0.19.2/plain/dev/db/container.py +0 -151
  43. plain_dev-0.19.2/plain/dev/precommit/__init__.py +0 -3
  44. plain_dev-0.19.2/plain/dev/urls.py +0 -9
  45. plain_dev-0.19.2/uv.lock +0 -360
  46. {plain_dev-0.19.2 → plain_dev-0.20.0}/.gitignore +0 -0
  47. {plain_dev-0.19.2 → plain_dev-0.20.0}/LICENSE +0 -0
  48. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/README.md +0 -0
  49. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/__init__.py +0 -0
  50. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/contribute/__init__.py +0 -0
  51. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/contribute/cli.py +0 -0
  52. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/debug.py +0 -0
  53. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/default_settings.py +0 -0
  54. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/entrypoints.py +0 -0
  55. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/gunicorn_logging.json +0 -0
  56. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/mkcert.py +0 -0
  57. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/pdb.py +0 -0
  58. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/pid.py +0 -0
  59. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/poncho/__init__.py +0 -0
  60. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/poncho/color.py +0 -0
  61. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/poncho/compat.py +0 -0
  62. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/poncho/manager.py +0 -0
  63. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/poncho/printer.py +0 -0
  64. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/poncho/process.py +0 -0
  65. {plain_dev-0.19.2/plain/dev/db → plain_dev-0.20.0/plain/dev/precommit}/__init__.py +0 -0
  66. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/precommit/cli.py +0 -0
  67. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/services.py +0 -0
  68. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/templates/dev/requests.html +0 -0
  69. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/utils.py +0 -0
  70. {plain_dev-0.19.2 → plain_dev-0.20.0}/plain/dev/views.py +0 -0
  71. {plain_dev-0.19.2 → plain_dev-0.20.0}/tests/settings.py +0 -0
@@ -0,0 +1,2 @@
1
+ # Automatically created by pytype
2
+ *
@@ -0,0 +1,2 @@
1
+ # ninja log v5
2
+ 1 649 1737048697347111912 /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/printer.pyi 46eb9fc262e11f40
@@ -0,0 +1,84 @@
1
+ rule infer
2
+ command = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.venv/bin/python3 -m pytype.main --imports_info $imports --module-name $module --platform darwin -V 3.12 -o $out --no-report-errors --nofail --quick $in
3
+ description = infer $module
4
+ rule check
5
+ command = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.venv/bin/python3 -m pytype.main --imports_info $imports --module-name $module --platform darwin -V 3.12 -o $out --analyze-annotated --nofail --quick $in
6
+ description = check $module
7
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/printer.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/poncho/printer.py
8
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.poncho.printer.imports
9
+ module = dev.poncho.printer
10
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/compat.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/poncho/compat.py
11
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.poncho.compat.imports
12
+ module = dev.poncho.compat
13
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/process.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/poncho/process.py | /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/compat.pyi /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/printer.pyi
14
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.poncho.process.imports
15
+ module = dev.poncho.process
16
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/color.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/poncho/color.py
17
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.poncho.color.imports
18
+ module = dev.poncho.color
19
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/utils.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/utils.py
20
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.utils.imports
21
+ module = dev.utils
22
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/manager.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/poncho/manager.py | /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/color.pyi /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/compat.pyi /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/printer.pyi /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/process.pyi
23
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.poncho.manager.imports
24
+ module = dev.poncho.manager
25
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/pid.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/pid.py
26
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.pid.imports
27
+ module = dev.pid
28
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/db/container.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/db/container.py
29
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.db.container.imports
30
+ module = dev.db.container
31
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/services.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/services.py | /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/pid.pyi /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/manager.pyi /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/utils.pyi
32
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.services.imports
33
+ module = dev.services
34
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/mkcert.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/mkcert.py
35
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.mkcert.imports
36
+ module = dev.mkcert
37
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/db/cli.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/db/cli.py | /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/services.pyi /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/db/container.pyi
38
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.db.cli.imports
39
+ module = dev.db.cli
40
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/requests.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/requests.py
41
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.requests.imports
42
+ module = dev.requests
43
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/pdb.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/pdb.py
44
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.pdb.imports
45
+ module = dev.pdb
46
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/cli.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/cli.py | /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/db/cli.pyi /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/mkcert.pyi /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/pid.pyi /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/manager.pyi /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/printer.pyi /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/services.pyi /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/utils.pyi
47
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.cli.imports
48
+ module = dev.cli
49
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/precommit/cli.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/precommit/cli.py | /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/services.pyi
50
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.precommit.cli.imports
51
+ module = dev.precommit.cli
52
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/views.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/views.py | /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/requests.pyi
53
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.views.imports
54
+ module = dev.views
55
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/contribute/cli.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/contribute/cli.py
56
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.contribute.cli.imports
57
+ module = dev.contribute.cli
58
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/debug.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/debug.py | /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/pdb.pyi
59
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.debug.imports
60
+ module = dev.debug
61
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/db/__init__.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/db/__init__.py | /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/db/cli.pyi
62
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.db.__init__.imports
63
+ module = dev.db.__init__
64
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/__init__.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/__init__.py | /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/cli.pyi /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/requests.pyi
65
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.__init__.imports
66
+ module = dev.__init__
67
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/precommit/__init__.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/precommit/__init__.py | /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/precommit/cli.pyi
68
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.precommit.__init__.imports
69
+ module = dev.precommit.__init__
70
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/__init__.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/poncho/__init__.py
71
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.poncho.__init__.imports
72
+ module = dev.poncho.__init__
73
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/urls.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/urls.py | /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/views.pyi
74
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.urls.imports
75
+ module = dev.urls
76
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/contribute/__init__.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/contribute/__init__.py | /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/contribute/cli.pyi
77
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.contribute.__init__.imports
78
+ module = dev.contribute.__init__
79
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/default_settings.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/default_settings.py
80
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.default_settings.imports
81
+ module = dev.default_settings
82
+ build /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/entrypoints.pyi: check /Users/davegaeddert/Developer/dropseed/plain/plain-dev/plain/dev/entrypoints.py | /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/debug.pyi
83
+ imports = /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/dev.entrypoints.imports
84
+ module = dev.entrypoints
@@ -0,0 +1,3 @@
1
+
2
+ from typing import Any
3
+ def __getattr__(name) -> Any: ...
@@ -0,0 +1,27 @@
1
+ click/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
2
+ rich/columns /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
3
+ rich/console /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
4
+ rich/text /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
5
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
6
+ dev/pid /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/pid.pyi
7
+ dev/poncho/color /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/color.pyi
8
+ dev/poncho/compat /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/compat.pyi
9
+ dev/poncho/printer /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/printer.pyi
10
+ dev/poncho/process /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/process.pyi
11
+ dev/poncho/manager /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/manager.pyi
12
+ dev/utils /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/utils.pyi
13
+ dev/services /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/services.pyi
14
+ dev/db/container /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/db/container.pyi
15
+ dev/db/cli /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/db/cli.pyi
16
+ dev/mkcert /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/mkcert.pyi
17
+ dev/cli /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/cli.pyi
18
+ plain/signals/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
19
+ urllib3/exceptions /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
20
+ urllib3/fields /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
21
+ urllib3/filepost /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
22
+ urllib3/util/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
23
+ urllib3/_collections /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
24
+ urllib3/contrib/socks /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
25
+ urllib3/poolmanager /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
26
+ urllib3/util/retry /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
27
+ dev/requests /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/requests.pyi
@@ -0,0 +1,16 @@
1
+ click/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
2
+ rich/columns /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
3
+ rich/console /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
4
+ rich/text /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
5
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
6
+ dev/pid /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/pid.pyi
7
+ dev/poncho/color /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/color.pyi
8
+ dev/poncho/compat /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/compat.pyi
9
+ dev/poncho/printer /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/printer.pyi
10
+ dev/poncho/process /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/process.pyi
11
+ dev/poncho/manager /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/manager.pyi
12
+ dev/utils /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/utils.pyi
13
+ dev/services /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/services.pyi
14
+ dev/db/container /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/db/container.pyi
15
+ dev/db/cli /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/db/cli.pyi
16
+ dev/mkcert /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/mkcert.pyi
@@ -0,0 +1,2 @@
1
+ click/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
2
+ dev/contribute/cli /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/contribute/cli.pyi
@@ -0,0 +1 @@
1
+ click/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
@@ -0,0 +1,12 @@
1
+ click/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
2
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
3
+ dev/pid /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/pid.pyi
4
+ dev/poncho/color /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/color.pyi
5
+ dev/poncho/compat /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/compat.pyi
6
+ dev/poncho/printer /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/printer.pyi
7
+ dev/poncho/process /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/process.pyi
8
+ dev/poncho/manager /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/manager.pyi
9
+ dev/utils /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/utils.pyi
10
+ dev/services /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/services.pyi
11
+ dev/db/container /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/db/container.pyi
12
+ dev/db/cli /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/db/cli.pyi
@@ -0,0 +1,11 @@
1
+ click/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
2
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
3
+ dev/pid /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/pid.pyi
4
+ dev/poncho/color /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/color.pyi
5
+ dev/poncho/compat /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/compat.pyi
6
+ dev/poncho/printer /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/printer.pyi
7
+ dev/poncho/process /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/process.pyi
8
+ dev/poncho/manager /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/manager.pyi
9
+ dev/utils /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/utils.pyi
10
+ dev/services /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/services.pyi
11
+ dev/db/container /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/db/container.pyi
@@ -0,0 +1 @@
1
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
@@ -0,0 +1 @@
1
+ dev/pdb /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/pdb.pyi
@@ -0,0 +1,3 @@
1
+ dotenv/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
2
+ dev/pdb /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/pdb.pyi
3
+ dev/debug /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/debug.pyi
@@ -0,0 +1 @@
1
+ click/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
File without changes
@@ -0,0 +1 @@
1
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
@@ -0,0 +1,4 @@
1
+ dev/poncho/color /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/color.pyi
2
+ dev/poncho/compat /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/compat.pyi
3
+ dev/poncho/printer /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/printer.pyi
4
+ dev/poncho/process /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/process.pyi
@@ -0,0 +1,2 @@
1
+ dev/poncho/compat /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/compat.pyi
2
+ dev/poncho/printer /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/printer.pyi
@@ -0,0 +1,12 @@
1
+ click/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
2
+ plain/cli/print /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
3
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
4
+ dev/pid /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/pid.pyi
5
+ dev/poncho/color /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/color.pyi
6
+ dev/poncho/compat /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/compat.pyi
7
+ dev/poncho/printer /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/printer.pyi
8
+ dev/poncho/process /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/process.pyi
9
+ dev/poncho/manager /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/manager.pyi
10
+ dev/utils /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/utils.pyi
11
+ dev/services /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/services.pyi
12
+ dev/precommit/cli /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/precommit/cli.pyi
@@ -0,0 +1,11 @@
1
+ click/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
2
+ plain/cli/print /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
3
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
4
+ dev/pid /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/pid.pyi
5
+ dev/poncho/color /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/color.pyi
6
+ dev/poncho/compat /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/compat.pyi
7
+ dev/poncho/printer /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/printer.pyi
8
+ dev/poncho/process /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/process.pyi
9
+ dev/poncho/manager /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/manager.pyi
10
+ dev/utils /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/utils.pyi
11
+ dev/services /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/services.pyi
@@ -0,0 +1,10 @@
1
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
2
+ plain/signals/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
3
+ urllib3/exceptions /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
4
+ urllib3/fields /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
5
+ urllib3/filepost /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
6
+ urllib3/util/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
7
+ urllib3/_collections /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
8
+ urllib3/contrib/socks /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
9
+ urllib3/poolmanager /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
10
+ urllib3/util/retry /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
@@ -0,0 +1,9 @@
1
+ click/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
2
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
3
+ dev/pid /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/pid.pyi
4
+ dev/poncho/color /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/color.pyi
5
+ dev/poncho/compat /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/compat.pyi
6
+ dev/poncho/printer /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/printer.pyi
7
+ dev/poncho/process /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/process.pyi
8
+ dev/poncho/manager /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/poncho/manager.pyi
9
+ dev/utils /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/utils.pyi
@@ -0,0 +1,15 @@
1
+ plain/urls/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
2
+ plain/http/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
3
+ plain/views/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
4
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
5
+ plain/signals/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
6
+ urllib3/exceptions /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
7
+ urllib3/fields /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
8
+ urllib3/filepost /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
9
+ urllib3/util/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
10
+ urllib3/_collections /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
11
+ urllib3/contrib/socks /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
12
+ urllib3/poolmanager /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
13
+ urllib3/util/retry /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
14
+ dev/requests /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/requests.pyi
15
+ dev/views /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/views.pyi
File without changes
@@ -0,0 +1,13 @@
1
+ plain/http/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
2
+ plain/views/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
3
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
4
+ plain/signals/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
5
+ urllib3/exceptions /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
6
+ urllib3/fields /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
7
+ urllib3/filepost /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
8
+ urllib3/util/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
9
+ urllib3/_collections /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
10
+ urllib3/contrib/socks /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
11
+ urllib3/poolmanager /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
12
+ urllib3/util/retry /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/imports/default.pyi
13
+ dev/requests /Users/davegaeddert/Developer/dropseed/plain/plain-dev/.pytype/pyi/dev/requests.pyi
@@ -0,0 +1,13 @@
1
+ # (generated with --quick)
2
+
3
+ import ctypes
4
+ import errno
5
+ import os
6
+ import signal
7
+ import sys
8
+
9
+ ON_WINDOWS: bool
10
+
11
+ class ProcessManager:
12
+ def kill(self, pid) -> None: ...
13
+ def terminate(self, pid) -> None: ...
@@ -0,0 +1,23 @@
1
+ # (generated with --quick)
2
+
3
+ from typing import Any, Iterable, NamedTuple, Union
4
+
5
+ class Message(NamedTuple):
6
+ type: Any
7
+ data: Any
8
+ time: Any
9
+ name: Any
10
+ color: Any
11
+
12
+ class Printer:
13
+ __doc__: str
14
+ color: Any
15
+ prefix: Any
16
+ time_format: Any
17
+ width: Any
18
+ def __init__(self, print_func, time_format = ..., width = ..., color = ..., prefix = ...) -> None: ...
19
+ def print_func(self, _1: str) -> Any: ...
20
+ def write(self, message) -> None: ...
21
+
22
+ def _color_string(color, s) -> str: ...
23
+ def namedtuple(typename: str, field_names: Union[str, Iterable[str]], *, rename: bool = ..., defaults: list = ..., module = ...) -> type: ...
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plain.dev
3
- Version: 0.19.2
3
+ Version: 0.20.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
@@ -8,6 +8,7 @@ License-File: LICENSE
8
8
  Requires-Python: >=3.11
9
9
  Requires-Dist: click>=8.0.0
10
10
  Requires-Dist: gunicorn>20
11
+ Requires-Dist: inotify
11
12
  Requires-Dist: plain<1.0.0
12
13
  Requires-Dist: psycopg[binary]~=3.2.2
13
14
  Requires-Dist: python-dotenv~=1.0.0
@@ -15,8 +16,6 @@ Requires-Dist: requests>=2.0.0
15
16
  Requires-Dist: rich
16
17
  Description-Content-Type: text/markdown
17
18
 
18
- <!-- This file is compiled from plain-dev/plain/dev/README.md. Do not edit this file directly. -->
19
-
20
19
  # plain.dev
21
20
 
22
21
  A single command that runs everything you need for local development.
@@ -0,0 +1 @@
1
+ ./plain/dev/README.md
@@ -17,7 +17,6 @@ from rich.text import Text
17
17
 
18
18
  from plain.runtime import APP_PATH, settings
19
19
 
20
- from .db import cli as db_cli
21
20
  from .mkcert import MkcertManager
22
21
  from .pid import Pid
23
22
  from .poncho.manager import Manager as PonchoManager
@@ -342,7 +341,9 @@ class Dev:
342
341
  gunicorn = " ".join(gunicorn_cmd)
343
342
 
344
343
  if plain_db_installed:
345
- runserver_cmd = f"plain models db-wait && plain migrate && {gunicorn}"
344
+ runserver_cmd = (
345
+ f"plain models db-wait && plain migrate --backup && {gunicorn}"
346
+ )
346
347
  else:
347
348
  runserver_cmd = gunicorn
348
349
 
@@ -388,6 +389,3 @@ class Dev:
388
389
  **data.get("env", {}),
389
390
  }
390
391
  self.poncho.add_process(name, data["cmd"], env=env)
391
-
392
-
393
- cli.add_command(db_cli)
@@ -0,0 +1,5 @@
1
+ ## FAQs
2
+
3
+ ### What if the plain cli isn't working?
4
+
5
+ When working on packages locally you can sometimes end up in a weird state where Plain can't load. The `plain contrib` command is also available as `plain-contrib`, which won't go through any of the setup processes for Plain, so you can always run that directly if you need to.
@@ -184,7 +184,7 @@ def should_capture_request(request):
184
184
  if not settings.DEBUG:
185
185
  return False
186
186
 
187
- if request.resolver_match and request.resolver_match.default_namespace == "dev":
187
+ if request.resolver_match and request.resolver_match.namespace == "dev":
188
188
  return False
189
189
 
190
190
  if request.path in settings.DEV_REQUESTS_IGNORE_PATHS:
@@ -0,0 +1,11 @@
1
+ from plain.urls import RouterBase, path, register_router
2
+
3
+ from . import views
4
+
5
+
6
+ @register_router
7
+ class Router(RouterBase):
8
+ namespace = "dev"
9
+ urls = [
10
+ path("", views.RequestsView, name="requests"),
11
+ ]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "plain.dev"
3
- version = "0.19.2"
3
+ version = "0.20.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"
@@ -14,8 +14,14 @@ dependencies = [
14
14
  "requests>=2.0.0",
15
15
  "psycopg[binary]~=3.2.2",
16
16
  "rich",
17
+ "inotify",
17
18
  ]
18
19
 
20
+ # Make this available as a standalone command
21
+ # in case plain can't load or something (this can run anyways)
22
+ [project.scripts]
23
+ plain-contrib = "plain.dev.contribute:cli"
24
+
19
25
  # Make the CLI available without adding to INSTALLED_APPS
20
26
  [project.entry-points."plain.cli"]
21
27
  "dev" = "plain.dev:cli"
@@ -1,98 +0,0 @@
1
- <!-- This file is compiled from plain-dev/plain/dev/README.md. Do not edit this file directly. -->
2
-
3
- # plain.dev
4
-
5
- A single command that runs everything you need for local development.
6
-
7
- ![Plain dev command example](https://github.com/dropseed/plain/assets/649496/3643bb64-a99b-4a8e-adab-8c6b81791ea9)
8
-
9
- The `plain.dev` package can be [installed from PyPI](https://pypi.org/project/plain.dev/), and does *not* need to be added to `INSTALLED_PACKAGES`.
10
-
11
- - [`plain dev`](#plain-dev)
12
- - [`plain dev services`](#plain-dev-services)
13
- - [`plain pre-commit`](#plain-pre-commit)
14
- - [`plain contrib`](#plain-contrib)
15
- - [VS Code debugging](#vscode-debugging)
16
-
17
- ## `plain dev`
18
-
19
- The `plain dev` command does several things:
20
-
21
- - Sets `PLAIN_CSRF_TRUSTED_ORIGINS` to localhost by default
22
- - Runs `plain preflight` to check for any issues
23
- - Executes any pending model migrations
24
- - Starts `gunicorn` with `--reload`
25
- - Runs `plain tailwind compile --watch`, if `plain.tailwind` is installed
26
- - Any custom process defined in `pyproject.toml` at `tool.plain.dev.run`
27
- - Necessary services (ex. Postgres) defined in `pyproject.toml` at `tool.plain.dev.services`
28
-
29
- ### Services
30
-
31
- Use services to define databases or other processes that your app *needs* to be functional. The services will be started automatically in `plain dev`, but also in `plain pre-commit` (so preflight and tests have a database).
32
-
33
- Ultimately, how you run your development database is up to you. But a recommended starting point is to use Docker:
34
-
35
- ```toml
36
- # pyproject.toml
37
- [tool.plain.dev.services]
38
- postgres = {cmd = "docker run --name app-postgres --rm -p 54321:5432 -v $(pwd)/.plain/dev/pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=postgres postgres:15 postgres"}
39
- ```
40
-
41
- ### Custom processes
42
-
43
- Unlike [services](#services), custom processes are *only* run during `plain dev`. This is a good place to run something like [ngrok](https://ngrok.com/) or a [Plain worker](../../../plain-worker), which you might need to use your local site, but don't need running for executing tests, for example.
44
-
45
- ```toml
46
- # pyproject.toml
47
- [tool.plain.dev.run]
48
- ngrok = {command = "ngrok http $PORT"}
49
- ```
50
-
51
- ## `plain dev services`
52
-
53
- Starts your [services](#services) by themselves.
54
-
55
- ## `plain pre-commit`
56
-
57
- A built-in pre-commit hook that can be installed with `plain pre-commit --install`.
58
-
59
- Runs:
60
-
61
- - Custom commands defined in `pyproject.toml` at `tool.plain.pre-commit.run`
62
- - `plain code check`, if [`plain.code`](https://plainframework.com/docs/plain-code/plain/code/) is installed
63
- - `uv lock --locked`, if using uv
64
- - `plain preflight --database default`
65
- - `plain migrate --check`
66
- - `plain makemigrations --dry-run --check`
67
- - `plain compile`
68
- - `plain test`
69
-
70
- ## VS Code debugging
71
-
72
- ![Debug Plain with VS Code](https://github.com/dropseed/plain-public/assets/649496/250138b6-7702-4ab6-bf38-e0c8e3c56d06)
73
-
74
- Since `plain dev` runs multiple processes at once, the regular [pdb](https://docs.python.org/3/library/pdb.html) debuggers don't quite work.
75
-
76
- Instead, we include [microsoft/debugpy](https://github.com/microsoft/debugpy) and an `attach` function to make it even easier to use VS Code's debugger.
77
-
78
- First, import and run the `debug.attach()` function:
79
-
80
- ```python
81
- class HomeView(TemplateView):
82
- template_name = "home.html"
83
-
84
- def get_template_context(self):
85
- context = super().get_template_context()
86
-
87
- # Make sure the debugger is attached (will need to be if runserver reloads)
88
- from plain.dev import debug; debug.attach()
89
-
90
- # Add a breakpoint (or use the gutter in VS Code to add one)
91
- breakpoint()
92
-
93
- return context
94
- ```
95
-
96
- When you load the page, you'll see "Waiting for debugger to attach...".
97
-
98
- You can then run the VS Code debugger and attach to an existing Python process, at localhost:5678.