plain 0.67.0__py3-none-any.whl → 0.68.0__py3-none-any.whl

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.
@@ -1,5 +1,5 @@
1
1
  plain/AGENTS.md,sha256=5XMGBpJgbCNIpp60DPXB7bpAtFk8FAzqiZke95T965o,1038
2
- plain/CHANGELOG.md,sha256=8Ljw7VTQP1cn6sUy_1Pum2cmHsnmeRqbL8oBIWvxw-s,16604
2
+ plain/CHANGELOG.md,sha256=w-r_nifYj7nhHF3pbn3fJC0r3j9PhqYVBoTKeFTnDiU,18152
3
3
  plain/README.md,sha256=5BJyKhf0TDanWVbOQyZ3zsi5Lov9xk-LlJYCDWofM6Y,4078
4
4
  plain/__main__.py,sha256=GK39854Lc_LO_JP8DzY9Y2MIQ4cQEl7SXFJy244-lC8,110
5
5
  plain/debug.py,sha256=XdjnXcbPGsi0J2SpHGaLthhYU5AjhBlkHdemaP4sbYY,758
@@ -18,20 +18,20 @@ plain/assets/urls.py,sha256=zQUA8bAlh9qVqskPJJrqWd9DjvetOi5jPSqy4vUX0J4,1161
18
18
  plain/assets/views.py,sha256=T_0Qh6v9qBerEBYbhToigwOzsij-x1z_R-1zETQcIh0,9447
19
19
  plain/chores/README.md,sha256=xTYKOBnfcLBpVeZgJQ6c35vdxHYaKkfJB8B-6sB3lcs,2054
20
20
  plain/chores/__init__.py,sha256=r9TXtQCH-VbvfnIJ5F8FxgQC35GRWFOfmMZN3q9niLg,67
21
- plain/chores/registry.py,sha256=V3WjuekRI22LFvJbqSkUXQtiOtuE2ZK8gKV1TRvxRUI,1866
21
+ plain/chores/registry.py,sha256=2777muLuIF3ybqHKIsi7X_ulRvb8D7hNh3NotchBufA,1358
22
22
  plain/cli/README.md,sha256=5C7vsH0ISxu7q5H6buC25MBOILkI_rzdySitswpQgJw,1032
23
23
  plain/cli/__init__.py,sha256=6w9T7K2WrPwh6DcaMb2oNt_CWU6Bc57nUTO2Bt1p38Y,63
24
24
  plain/cli/build.py,sha256=Lo6AYghJz0DM9fIVUSiBSOKa5vR0XCOxZWEjza6sc8Q,3172
25
25
  plain/cli/changelog.py,sha256=j-k1yZk9mpm-fLZgeWastiyIisxNSuAJfXTQ2B6WQmk,3457
26
26
  plain/cli/chores.py,sha256=xXSSFvr8T5jWfLWqe6E8YVMw1BkQxyOHHVuY0x9RH0A,2412
27
- plain/cli/core.py,sha256=g0D1OZkYGWt05-V1oDNzX2wcoCIAxrZjlgaQs2qWLlc,3106
27
+ plain/cli/core.py,sha256=Nq7fsKfV2Oz9DJUwEGCMO52P8HnbxIng1pnQnFiqm0g,3100
28
28
  plain/cli/docs.py,sha256=YEEE-Th1CSxiL-wj5fF-ZagqkqAZYkEPRMO1OYUsQrU,1066
29
29
  plain/cli/formatting.py,sha256=JaOiIOxIQpCRgMNGw9xpnU_fMf6hROl7o8lA5aX114w,2580
30
30
  plain/cli/install.py,sha256=mffSYBmSJSj44OPBfu53nBQoyoz4jk69DvppubIB0mU,2791
31
31
  plain/cli/output.py,sha256=Fe3xS6Va4Bi1ZNrqi0nh09THTsdCyMW2b9SPY5I4n-o,1318
32
- plain/cli/preflight.py,sha256=8tHBD4L4nPLUKThfaYx3SUZSJzC48oV2m_Hbn6W4ODc,4124
32
+ plain/cli/preflight.py,sha256=FU4EVFXDpkvgOFKpXcp0sUYOHc0WmcRGwo8G2oqv9Gs,8500
33
33
  plain/cli/print.py,sha256=XraUYrgODOJquIiEv78wSCYGRBplHXtXSS9QtFG5hqY,217
34
- plain/cli/registry.py,sha256=yKVMSDjW8g10nlV9sPXFGJQmhC_U-k4J4kM7N2OQVLA,1467
34
+ plain/cli/registry.py,sha256=CPS05AZAWtnHOUxqeaYqlJ2BaFeHYTxpeMAGX09oYs4,962
35
35
  plain/cli/scaffold.py,sha256=mcywA9DzfwoBSqWl5-Zpgcy1mTNUGEgdvoxXUrGcEVk,1351
36
36
  plain/cli/settings.py,sha256=9cx4bue664I2P7kUedlf4YhCPB0tSKSE4Q8mGyzEv2o,1995
37
37
  plain/cli/shell.py,sha256=PMHdwcRv48qXDToeq82aZaNth-cKc3V2pQ1yISrNMvY,1802
@@ -88,17 +88,18 @@ plain/logs/utils.py,sha256=9UzdCCQXJinGDs71Ngw297mlWkhgZStSd67ya4NOW98,1257
88
88
  plain/packages/README.md,sha256=iNqMtwFDVNf2TqKUzLKQW5Y4_GsssmdB4cVerzu27Ro,2674
89
89
  plain/packages/__init__.py,sha256=OpQny0xLplPdPpozVUUkrW2gB-IIYyDT1b4zMzOcCC4,160
90
90
  plain/packages/config.py,sha256=2U7b1cp_kqIuLdSeHGCLrSUV77TdfGRsww3PcXOazaA,2910
91
- plain/packages/registry.py,sha256=6ogeHZ8t3kBSoLoI7998r0kIbkEPhLGn-7yi-1qVjVo,7969
92
- plain/preflight/README.md,sha256=6fA6zXmNUtO5xMrVV-0JLyzSJsIIEEGZyFSAW53nYYE,1764
93
- plain/preflight/__init__.py,sha256=j4-yPnrM5hmjumrdkBLOQjFHzRHpA6wCjiFpMNBjIqY,619
94
- plain/preflight/files.py,sha256=D_pBSwRXpXy2-3FWywweozuxrhIaR8w5hpPA2d6XMPs,522
95
- plain/preflight/messages.py,sha256=B6VyXzu7HTJHaPVK4G1L_1HVHG87CT7JPtcDk8QYSeE,2322
96
- plain/preflight/registry.py,sha256=vcqzaE1MIneNL_ydKPy_1zrSThnzsrWARSClLCJ-4b8,2331
97
- plain/preflight/security.py,sha256=71cW35LMOlciAbtWXf50EhKhQQCZ-2LlQgXJ6Zxhxv4,2443
98
- plain/preflight/urls.py,sha256=cQ-WnFa_5oztpKdtwhuIGb7pXEml__bHsjs1SWO2YNI,1468
91
+ plain/packages/registry.py,sha256=fKijA6s1Y9W-9FnR9AyVFuBth-9v3XlHWJdhI8i7JtI,8472
92
+ plain/preflight/README.md,sha256=vR43F_ls81hRSo7J2NNZ4VOMoRaJ1bS5JwA6l4ez36g,1782
93
+ plain/preflight/__init__.py,sha256=-uBIVLD1DlJUVypQsEcrOtaNAhECbOpKhyoz0c_WMhA,416
94
+ plain/preflight/checks.py,sha256=hEJbP5KHQmdmfcr7cHt45tmdwmjomd8nvnCmQYxxCTo,245
95
+ plain/preflight/files.py,sha256=k1Gsy8QJGbatMe_1ylSaDs7azDnh6qv4CftFpOnbDr8,779
96
+ plain/preflight/registry.py,sha256=65yiz9Wm8dOTMs9h15txNu7SRace6mbLI-sfn6GxMBQ,2427
97
+ plain/preflight/results.py,sha256=wgZgISGt9KGZzgmM_HdFUl6ZmRHQlKhvQClP7KbGgcc,949
98
+ plain/preflight/security.py,sha256=eqvJTe691WihtLN8hi2tj5wxH8ZgcsY5QFbYkorkNS0,2910
99
+ plain/preflight/urls.py,sha256=QVBcZCv891ZeLNVXTZS0w6bb54w5UOpZXP21Li7gt3o,339
99
100
  plain/runtime/README.md,sha256=sTqXXJkckwqkk9O06XMMSNRokAYjrZBnB50JD36BsYI,4873
100
101
  plain/runtime/__init__.py,sha256=byFYnHrpUCwkpkHtdNhxr9iUdLDCWJjy92HPj30Ilck,2478
101
- plain/runtime/global_settings.py,sha256=EZ9mdDkwJkXGWDs0bnYnNmpfX49GP30RyU5HgxlrRPc,5872
102
+ plain/runtime/global_settings.py,sha256=44pNJmndS_vkUmX7t83thRcrfrQ9qXdkT8SAlLOXyG4,5695
102
103
  plain/runtime/user_settings.py,sha256=OzMiEkE6ZQ50nxd1WIqirXPiNuMAQULklYHEzgzLWgA,11027
103
104
  plain/runtime/utils.py,sha256=p5IuNTzc7Kq-9Ym7etYnt_xqHw5TioxfSkFeq1bKdgk,832
104
105
  plain/signals/README.md,sha256=XefXqROlDhzw7Z5l_nx6Mhq6n9jjQ-ECGbH0vvhKWYg,272
@@ -110,7 +111,7 @@ plain/templates/AGENTS.md,sha256=o6H_qEZ2eY5IrNmSZG7o7ZYfqdD0SkJm_2VPBaaOo5w,59
110
111
  plain/templates/README.md,sha256=QAQxoygpc0CE13fh4eH4ZILwl2xc-oMdGKtiZLLrNCk,2565
111
112
  plain/templates/__init__.py,sha256=bX76FakE9T7mfK3N0deN85HlwHNQpeigytSC9Z8LcOs,451
112
113
  plain/templates/core.py,sha256=mbcH0yTeFOI3XOg9dYSroXRIcdv9sETEy4HzY-ugwco,1258
113
- plain/templates/jinja/__init__.py,sha256=xvYif0feMYR9pWjN0czthq2dk3qI4D5UQjgj9yp4dNA,2776
114
+ plain/templates/jinja/__init__.py,sha256=o49OQ36-DKEKY2jxPpwMj8_CSqBYMPWVqpBfRjP_4wU,1910
114
115
  plain/templates/jinja/environments.py,sha256=9plifzvQj--aTN1cCpJ2WdzQxZJpzB8S_4hghgQRQT0,2064
115
116
  plain/templates/jinja/extensions.py,sha256=AEmmmHDbdRW8fhjYDzq9eSSNbp9WHsXenD8tPthjc0s,1351
116
117
  plain/templates/jinja/filters.py,sha256=ft5XUr4OLeQayn-MSxrycpFLyyN_yEo7j5WhWMwpTOs,1445
@@ -124,8 +125,8 @@ plain/urls/README.md,sha256=026RkCK6I0GdqK3RE2QBLcCLIsiwtyKxgI2F0KBX95E,3882
124
125
  plain/urls/__init__.py,sha256=DFO2OL1IllHW5USPIb5uYvvzf_G-Bl0Qu1zrRLHmWyM,542
125
126
  plain/urls/converters.py,sha256=s2JZVOdzZC16lgobsI93hygcdH5L0Kj4742WEkXsVcs,1193
126
127
  plain/urls/exceptions.py,sha256=q4iPh3Aa-zHbA-tw8v6WyX1J1n5WdAady2xvxFuyXB0,114
127
- plain/urls/patterns.py,sha256=FPWzh2vStzrCqQDkXxjbA58_OMbomOIuYgEOKaEW924,8259
128
- plain/urls/resolvers.py,sha256=sZsFQRPlPkogXIVSctZBXJaG0spJzuoJBmtOEZwIXXY,12630
128
+ plain/urls/patterns.py,sha256=3dCLwUaink5j0z5NOqcvzSX7o-eSRTzmYLsnMVmc-7o,8303
129
+ plain/urls/resolvers.py,sha256=rk-K4ztP0DxC3h85ANWnzyVAWKhksmdotqP0bWKd9zg,12608
129
130
  plain/urls/routers.py,sha256=B1fX-FQTxmr-b_YeHQUMPuilLVqOi6-RqgPgu6MtFDY,2831
130
131
  plain/urls/utils.py,sha256=lKxTX_A3XJpIH7FjlNYju108stY6-8Sw2uVdiSsxOKQ,1249
131
132
  plain/utils/README.md,sha256=3RTH9t4SBLkYLMlnhpWwp72IjgQhOjYYxpT1gHwRUdE,232
@@ -161,8 +162,8 @@ plain/views/forms.py,sha256=ESZOXuo6IeYixp1RZvPb94KplkowRiwO2eGJCM6zJI0,2400
161
162
  plain/views/objects.py,sha256=v3Vgvdoc1s0QW6JNWWrO5XXy9zF7vgwndgxX1eOSQoE,4999
162
163
  plain/views/redirect.py,sha256=Xpb3cB7nZYvKgkNqcAxf9Jwm2SWcQ0u2xz4oO5M3vP8,1909
163
164
  plain/views/templates.py,sha256=oAlebEyfES0rzBhfyEJzFmgLkpkbleA6Eip-8zDp-yk,1863
164
- plain-0.67.0.dist-info/METADATA,sha256=w_ZT2zv65VtVbl4yh0tKrVw8q9PeDj0cKWeeLm3pPNU,4488
165
- plain-0.67.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
166
- plain-0.67.0.dist-info/entry_points.txt,sha256=iGx7EijzXy87htbSv90RhtAcjhSTH_kvE8aeRCn1TRA,129
167
- plain-0.67.0.dist-info/licenses/LICENSE,sha256=m0D5O7QoH9l5Vz_rrX_9r-C8d9UNr_ciK6Qwac7o6yo,3175
168
- plain-0.67.0.dist-info/RECORD,,
165
+ plain-0.68.0.dist-info/METADATA,sha256=mE7UvxxqukxfFjudAuB0gaGa7gagrESPTRmByQOVb9M,4488
166
+ plain-0.68.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
167
+ plain-0.68.0.dist-info/entry_points.txt,sha256=wvMzY-iREvfqRgyLm77htPp4j_8CQslLoZA15_AnNo8,171
168
+ plain-0.68.0.dist-info/licenses/LICENSE,sha256=m0D5O7QoH9l5Vz_rrX_9r-C8d9UNr_ciK6Qwac7o6yo,3175
169
+ plain-0.68.0.dist-info/RECORD,,
@@ -2,3 +2,4 @@
2
2
  plain = plain.cli.core:cli
3
3
  plain-build = plain.cli.build:build
4
4
  plain-changelog = plain.cli.changelog:changelog
5
+ plain-upgrade = plain.cli.upgrade:upgrade
@@ -1,81 +0,0 @@
1
- # Levels
2
- DEBUG = 10
3
- INFO = 20
4
- WARNING = 30
5
- ERROR = 40
6
- CRITICAL = 50
7
-
8
-
9
- class CheckMessage:
10
- def __init__(self, level, msg, hint=None, obj=None, id=None):
11
- if not isinstance(level, int):
12
- raise TypeError("The first argument should be level.")
13
- self.level = level
14
- self.msg = msg
15
- self.hint = hint
16
- self.obj = obj
17
- self.id = id
18
-
19
- def __eq__(self, other):
20
- return isinstance(other, self.__class__) and all(
21
- getattr(self, attr) == getattr(other, attr)
22
- for attr in ["level", "msg", "hint", "obj", "id"]
23
- )
24
-
25
- def __str__(self):
26
- try:
27
- from plain import models
28
-
29
- ModelBase = models.base.ModelBase
30
- using_db = True
31
- except ImportError:
32
- using_db = False
33
- ModelBase = object
34
-
35
- if self.obj is None:
36
- obj = "?"
37
- elif using_db and isinstance(self.obj, ModelBase):
38
- # We need to hardcode ModelBase and Field cases because its __str__
39
- # method doesn't return "applabel.modellabel" and cannot be changed.
40
- obj = self.obj._meta.label
41
- else:
42
- obj = str(self.obj)
43
- id = f"({self.id}) " if self.id else ""
44
- hint = f"\n\tHINT: {self.hint}" if self.hint else ""
45
- return f"{obj}: {id}{self.msg}{hint}"
46
-
47
- def __repr__(self):
48
- return f"<{self.__class__.__name__}: level={self.level!r}, msg={self.msg!r}, hint={self.hint!r}, obj={self.obj!r}, id={self.id!r}>"
49
-
50
- def is_serious(self, level=ERROR):
51
- return self.level >= level
52
-
53
- def is_silenced(self):
54
- from plain.runtime import settings
55
-
56
- return self.id in settings.PREFLIGHT_SILENCED_CHECKS
57
-
58
-
59
- class Debug(CheckMessage):
60
- def __init__(self, *args, **kwargs):
61
- super().__init__(DEBUG, *args, **kwargs)
62
-
63
-
64
- class Info(CheckMessage):
65
- def __init__(self, *args, **kwargs):
66
- super().__init__(INFO, *args, **kwargs)
67
-
68
-
69
- class Warning(CheckMessage):
70
- def __init__(self, *args, **kwargs):
71
- super().__init__(WARNING, *args, **kwargs)
72
-
73
-
74
- class Error(CheckMessage):
75
- def __init__(self, *args, **kwargs):
76
- super().__init__(ERROR, *args, **kwargs)
77
-
78
-
79
- class Critical(CheckMessage):
80
- def __init__(self, *args, **kwargs):
81
- super().__init__(CRITICAL, *args, **kwargs)
File without changes