plain 0.21.1__py3-none-any.whl → 0.21.3__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.
plain/README.md CHANGED
@@ -1,33 +1 @@
1
1
  # Plain
2
-
3
- Plain is a web framework for building products with Python.
4
-
5
- With the core `plain` package you can build an app that:
6
-
7
- - Matches [URL patterns](./urls) to Python [views](./views)
8
- - Handles [HTTP requests and responses](./http)
9
- - Renders [HTML templates](./templates) with Jinja
10
- - Processes user input via [forms](./forms)
11
- - Has a [CLI interface](./cli)
12
- - Serves static [assets](./assets) (CSS, JS, images)
13
- - Can be modified with [middleware](./middleware)
14
- - Integrates first-party and third-party [packages](./packages)
15
- - Has a [preflight check system](./preflight)
16
-
17
- With the official Plain ecosystem packages you can:
18
-
19
- - Integrate a full-featured [database ORM](https://plainframework.com/docs/plain-models/)
20
- - Use a built-in [user authentication](https://plainframework.com/docs/plain-auth/) system
21
- - [Lint and format code](https://plainframework.com/docs/plain-code/)
22
- - Run a [database-backed cache](https://plainframework.com/docs/plain-cache/)
23
- - [Send emails](https://plainframework.com/docs/plain-mail/)
24
- - Streamline [local development](https://plainframework.com/docs/plain-dev/)
25
- - Manage [feature flags](https://plainframework.com/docs/plain-flags/)
26
- - Integrate [HTMX](https://plainframework.com/docs/plain-htmx/)
27
- - Style with [Tailwind CSS](https://plainframework.com/docs/plain-tailwind/)
28
- - Add [OAuth login](https://plainframework.com/docs/plain-oauth/) and API access
29
- - Run tests with [pytest](https://plainframework.com/docs/plain-test/)
30
- - Run a [background job worker](https://plainframework.com/docs/plain-worker/)
31
- - Build [staff tooling and admin dashboards](https://plainframework.com/docs/plain-staff/)
32
-
33
- Learn more at [plainframework.com](https://plainframework.com).
plain/assets/compile.py CHANGED
@@ -12,34 +12,34 @@ FINGERPRINT_LENGTH = 7
12
12
 
13
13
  SKIP_COMPRESS_EXTENSIONS = (
14
14
  # Images
15
- "jpg",
16
- "jpeg",
17
- "png",
18
- "gif",
19
- "webp",
15
+ ".jpg",
16
+ ".jpeg",
17
+ ".png",
18
+ ".gif",
19
+ ".webp",
20
20
  # Compressed files
21
- "zip",
22
- "gz",
23
- "tgz",
24
- "bz2",
25
- "tbz",
26
- "xz",
27
- "br",
21
+ ".zip",
22
+ ".gz",
23
+ ".tgz",
24
+ ".bz2",
25
+ ".tbz",
26
+ ".xz",
27
+ ".br",
28
28
  # Fonts
29
- "woff",
30
- "woff2",
29
+ ".woff",
30
+ ".woff2",
31
31
  # Video
32
- "3gp",
33
- "3gpp",
34
- "asf",
35
- "avi",
36
- "m4v",
37
- "mov",
38
- "mp4",
39
- "mpeg",
40
- "mpg",
41
- "webm",
42
- "wmv",
32
+ ".3gp",
33
+ ".3gpp",
34
+ ".asf",
35
+ ".avi",
36
+ ".m4v",
37
+ ".mov",
38
+ ".mp4",
39
+ ".mpeg",
40
+ ".mpg",
41
+ ".webm",
42
+ ".wmv",
43
43
  )
44
44
 
45
45
 
@@ -111,7 +111,7 @@ def compile_asset(*, asset, target_dir, keep_original, fingerprint, compress):
111
111
 
112
112
  resolved_url_path = os.path.relpath(fingerprinted_path, target_dir)
113
113
 
114
- if compress and extension not in SKIP_COMPRESS_EXTENSIONS:
114
+ if compress and extension.lower() not in SKIP_COMPRESS_EXTENSIONS:
115
115
  for path in compiled_paths.copy():
116
116
  gzip_path = f"{path}.gz"
117
117
  with gzip.GzipFile(gzip_path, "wb") as f:
@@ -0,0 +1,12 @@
1
+ Metadata-Version: 2.4
2
+ Name: plain
3
+ Version: 0.21.3
4
+ Summary: A web framework for building products with Python.
5
+ Author-email: Dave Gaeddert <dave.gaeddert@dropseed.dev>
6
+ License-File: LICENSE
7
+ Requires-Python: >=3.11
8
+ Requires-Dist: click>=8.0.0
9
+ Requires-Dist: jinja2>=3.1.2
10
+ Description-Content-Type: text/markdown
11
+
12
+ # Plain
@@ -1,4 +1,4 @@
1
- plain/README.md,sha256=mFsLBpqiHvuznV98eewupvo1JoQeQG0q87wNlXit21A,1695
1
+ plain/README.md,sha256=nW3Ioj3IxPb6aoCGaFMN2n7Cd7LMx0s8Lph6pMkKnh4,8
2
2
  plain/__main__.py,sha256=BiYbF-txGNbeRqp_CHQ9EZ_bCbbKq2iw51Z8RRUgIBY,105
3
3
  plain/debug.py,sha256=abPkJY4aSbBYGEYSZST_ZY3ohXPGDdz9uWQBYRqfd3M,730
4
4
  plain/exceptions.py,sha256=pPAO8cIzNoqa2YrxG0d31C4P2V9SZ2OprHcjY9-qhIU,6332
@@ -9,7 +9,7 @@ plain/validators.py,sha256=2tZh2Bvp955gejltwVtFGwfqw5-9VAOhKqos3Me4paY,19923
9
9
  plain/wsgi.py,sha256=R6k5FiAElvGDApEbMPTT0MPqSD7n2e2Az5chQqJZU0I,236
10
10
  plain/assets/README.md,sha256=048BzyQ2-BcsRiv6NiuLHHijOw96RK-e6lJ_Eq7g2pc,2857
11
11
  plain/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- plain/assets/compile.py,sha256=_FSWTg2JBFKLnUoOjpioV4EtiH8DH7F_3zYhM6zI4JU,3303
12
+ plain/assets/compile.py,sha256=Qg-rMWykij_Jheq4THrPFWlmYv07ihHzWiNsD815HYE,3336
13
13
  plain/assets/finders.py,sha256=wMa0GUi4S5SUXKcWSqEesMgU4NbXXDrC4SMJwDakwNc,1215
14
14
  plain/assets/fingerprints.py,sha256=1NKAnnXVlncY5iimXztr0NL3RIjBKsNlZRIe6nmItJc,931
15
15
  plain/assets/urls.py,sha256=ZTIoM1Zq35JaXZ3wFhXhfGa7VoITDNlH9i5RS0R5xow,933
@@ -138,8 +138,8 @@ plain/views/forms.py,sha256=RhlaUcZCkeqokY_fvv-NOS-kgZAG4XhDLOPbf9K_Zlc,2691
138
138
  plain/views/objects.py,sha256=g5Lzno0Zsv0K449UpcCtxwCoO7WMRAWqKlxxV2V0_qg,8263
139
139
  plain/views/redirect.py,sha256=KLnlktzK6ZNMTlaEiZpMKQMEP5zeTgGLJ9BIkIJfwBo,1733
140
140
  plain/views/templates.py,sha256=nF9CcdhhjAyp3LB0RrSYnBaHpHzMfPSw719RCdcXk7o,2007
141
- plain-0.21.1.dist-info/METADATA,sha256=N4d5IZSoIdNKWvbTZHzyvcGCaj1D5pD2iNzvIywz-iw,2518
142
- plain-0.21.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
143
- plain-0.21.1.dist-info/entry_points.txt,sha256=DHHprvufgd7xypiBiqMANYRnpJ9xPPYhYbnPGwOkWqE,40
144
- plain-0.21.1.dist-info/licenses/LICENSE,sha256=m0D5O7QoH9l5Vz_rrX_9r-C8d9UNr_ciK6Qwac7o6yo,3175
145
- plain-0.21.1.dist-info/RECORD,,
141
+ plain-0.21.3.dist-info/METADATA,sha256=Xt4e1YhLUehsJ9MIYBDJ5RgR0vid8vtDopIxK-VjMZM,319
142
+ plain-0.21.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
143
+ plain-0.21.3.dist-info/entry_points.txt,sha256=DHHprvufgd7xypiBiqMANYRnpJ9xPPYhYbnPGwOkWqE,40
144
+ plain-0.21.3.dist-info/licenses/LICENSE,sha256=m0D5O7QoH9l5Vz_rrX_9r-C8d9UNr_ciK6Qwac7o6yo,3175
145
+ plain-0.21.3.dist-info/RECORD,,
@@ -1,46 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: plain
3
- Version: 0.21.1
4
- Summary: A web framework for building products with Python.
5
- Author-email: Dave Gaeddert <dave.gaeddert@dropseed.dev>
6
- License-File: LICENSE
7
- Requires-Python: >=3.11
8
- Requires-Dist: click>=8.0.0
9
- Requires-Dist: jinja2>=3.1.2
10
- Description-Content-Type: text/markdown
11
-
12
- <!-- This file is compiled from plain/plain/README.md. Do not edit this file directly. -->
13
-
14
- # Plain
15
-
16
- Plain is a web framework for building products with Python.
17
-
18
- With the core `plain` package you can build an app that:
19
-
20
- - Matches [URL patterns](https://plainframework.com/docs/plain/plain/urls) to Python [views](https://plainframework.com/docs/plain/plain/views)
21
- - Handles [HTTP requests and responses](https://plainframework.com/docs/plain/plain/http)
22
- - Renders [HTML templates](https://plainframework.com/docs/plain/plain/templates) with Jinja
23
- - Processes user input via [forms](https://plainframework.com/docs/plain/plain/forms)
24
- - Has a [CLI interface](https://plainframework.com/docs/plain/plain/cli)
25
- - Serves static [assets](https://plainframework.com/docs/plain/plain/assets) (CSS, JS, images)
26
- - Can be modified with [middleware](https://plainframework.com/docs/plain/plain/middleware)
27
- - Integrates first-party and third-party [packages](https://plainframework.com/docs/plain/plain/packages)
28
- - Has a [preflight check system](https://plainframework.com/docs/plain/plain/preflight)
29
-
30
- With the official Plain ecosystem packages you can:
31
-
32
- - Integrate a full-featured [database ORM](https://plainframework.com/docs/plain-models/)
33
- - Use a built-in [user authentication](https://plainframework.com/docs/plain-auth/) system
34
- - [Lint and format code](https://plainframework.com/docs/plain-code/)
35
- - Run a [database-backed cache](https://plainframework.com/docs/plain-cache/)
36
- - [Send emails](https://plainframework.com/docs/plain-mail/)
37
- - Streamline [local development](https://plainframework.com/docs/plain-dev/)
38
- - Manage [feature flags](https://plainframework.com/docs/plain-flags/)
39
- - Integrate [HTMX](https://plainframework.com/docs/plain-htmx/)
40
- - Style with [Tailwind CSS](https://plainframework.com/docs/plain-tailwind/)
41
- - Add [OAuth login](https://plainframework.com/docs/plain-oauth/) and API access
42
- - Run tests with [pytest](https://plainframework.com/docs/plain-test/)
43
- - Run a [background job worker](https://plainframework.com/docs/plain-worker/)
44
- - Build [staff tooling and admin dashboards](https://plainframework.com/docs/plain-staff/)
45
-
46
- Learn more at [plainframework.com](https://plainframework.com).
File without changes