plain

View on PyPIReverse Dependencies (27)

0.32.1 plain-0.32.1-py3-none-any.whl

Wheel Details

Project: plain
Version: 0.32.1
Filename: plain-0.32.1-py3-none-any.whl
Download: [link]
Size: 194887
MD5: 94c315fcd8258a2b136e24c57694fbb4
SHA256: 7bf942136783a431fdde0b177e11b65994ab7ccca63e4df6ef141cb499e3c38d
Uploaded: 2025-03-12 16:51:58 +0000

dist-info

METADATA

Metadata-Version: 2.4
Name: plain
Version: 0.32.1
Summary: A web framework for building products with Python.
Author-Email: Dave Gaeddert <dave.gaeddert[at]dropseed.dev>
Requires-Python: >=3.11
Requires-Dist: click (>=8.0.0)
Requires-Dist: jinja2 (>=3.1.2)
Description-Content-Type: text/markdown
License-File: LICENSE
[Description omitted; length: 8 characters]

WHEEL

Wheel-Version: 1.0
Generator: hatchling 1.27.0
Root-Is-Purelib: true
Tag: py3-none-any

RECORD

Path Digest Size
plain/README.md sha256=nW3Ioj3IxPb6aoCGaFMN2n7Cd7LMx0s8Lph6pMkKnh4 8
plain/__main__.py sha256=GK39854Lc_LO_JP8DzY9Y2MIQ4cQEl7SXFJy244-lC8 110
plain/debug.py sha256=abPkJY4aSbBYGEYSZST_ZY3ohXPGDdz9uWQBYRqfd3M 730
plain/exceptions.py sha256=Z9cbPE5im_Y-bjVq8cqC85gBoqOr80rLFG5wTKixrwE 5894
plain/json.py sha256=McJdsbMT1sYwkGRG--f2NSZz0hVXPMix9x3nKaaak2o 1262
plain/paginator.py sha256=-fpLJd6c-V8bLCaNCHfTqPtm-Lm2Y1TuKqFDfy7n3ZE 5857
plain/signing.py sha256=sf7g1Mp-FzdjFAEoLxHyu2YvbUl5w4FOtTVDAfq6TO0 8733
plain/validators.py sha256=TePzFHzwR4JXUAZ_Y2vC6mkKgVxHX3QBXI6Oex0rV8c 19236
plain/wsgi.py sha256=R6k5FiAElvGDApEbMPTT0MPqSD7n2e2Az5chQqJZU0I 236
plain/assets/README.md sha256=Ukm_gU7Xj-itAmEjsWUXXDtU5d8BSRpy7ZgGB2LbSo0 2847
plain/assets/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
plain/assets/compile.py sha256=Qg-rMWykij_Jheq4THrPFWlmYv07ihHzWiNsD815HYE 3336
plain/assets/finders.py sha256=rhkHG5QW3H3IlBGHB5WJf9J6VTdDWgUC0qEs6u2Z4RQ 1233
plain/assets/fingerprints.py sha256=1NKAnnXVlncY5iimXztr0NL3RIjBKsNlZRIe6nmItJc 931
plain/assets/urls.py sha256=3BSvp5B--V6Q03BizmZ6qa2dUamF1r5IdlFbwD401eU 962
plain/assets/views.py sha256=s6ERHfgRyoZ8P6mH9ahGZxU1LyN8WByAiJAjlwBCl-k 9265
plain/cli/README.md sha256=t3k4jmSK0QFALO3bVWTUsJC09KhY4CvauStTvVLLUdI 1922
plain/cli/__init__.py sha256=6w9T7K2WrPwh6DcaMb2oNt_CWU6Bc57nUTO2Bt1p38Y 63
plain/cli/core.py sha256=8UelQ8vif6ahUwYnJc7jWy2t7Ml68oyEkt0MtQMycxE 18411
plain/cli/formatting.py sha256=1hZH13y1qwHcU2K2_Na388nw9uvoeQH8LrWL-O9h8Yc 2207
plain/cli/print.py sha256=XraUYrgODOJquIiEv78wSCYGRBplHXtXSS9QtFG5hqY 217
plain/cli/registry.py sha256=yKVMSDjW8g10nlV9sPXFGJQmhC_U-k4J4kM7N2OQVLA 1467
plain/cli/startup.py sha256=3LIz9JrIZoF52Sa0j0SCypQwEaBDkhvuGaBdtiQLr5Q 680
plain/csrf/README.md sha256=RXMWMtHmzf30gVVNOfj0kD4xlSqFIPgJh-n7dIciaEM 163
plain/csrf/middleware.py sha256=FYhT7KPJ664Sm0nKjeej1OIXalvVTYiotQX3ytI0dfY 17417
plain/csrf/views.py sha256=HwQqfI6KPelHP9gSXhjfZaTLQic71PKsoZ6DPhr1rKI 572
plain/forms/README.md sha256=fglB9MmHiEgfGGdZmcRstNl6eYaFljrElu2mzapK52M 377
plain/forms/__init__.py sha256=UxqPwB8CiYPCQdHmUc59jadqaXqDmXBH8y4bt9vTPms 226
plain/forms/boundfield.py sha256=LhydhCVR0okrli0-QBMjGjAJ8-06gTCXVEaBZhBouQk 1741
plain/forms/exceptions.py sha256=XCLDRl5snIEDu5-8mLB0NnU_tegcBfyIHMiJxqvbxnc 164
plain/forms/fields.py sha256=Fw77LP06aO5h6ZdJmS2S_2On4YSrsl4gu142Y6nGF50 34987
plain/forms/forms.py sha256=fEKBee1b8I_DJ-FufzWJGtSQoUoyieYfqUaGEre9B4Q 10418
plain/http/README.md sha256=HjEtoAhn14OoMdgb-wK-uc8No7C4d4gZUhzseOp7Fg4 236
plain/http/__init__.py sha256=DIsDRbBsCGa4qZgq-fUuQS0kkxfbTU_3KpIM9VvH04w 1067
plain/http/cookie.py sha256=11FnSG3Plo6T3jZDbPoCw7SKh9ExdBio3pTmIO03URg 597
plain/http/multipartparser.py sha256=Cyk_UZhxf8JwNza_Yl4_nKCYkmnG7xY9PSVcf9Us57U 27266
plain/http/request.py sha256=kq3AuM0EWyAD_kqMlorTccm5mzIQ6ZefkCa-jXUntnI 25514
plain/http/response.py sha256=RR2sUG-ONWKWcZyIbztjWvtFyh0cR-CoxQvnWOyN0io 23619
plain/internal/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
plain/internal/files/README.md sha256=kMux-NU5qiH0o1K8IajYQT8VjrYl_jLk9LkGG_kGuSc 45
plain/internal/files/__init__.py sha256=VctFgox4Q1AWF3klPaoCC5GIw5KeLafYjY5JmN8mAVw 63
plain/internal/files/base.py sha256=-JpRMzv2bgVSZ9dcxh13gGRTVeEd_Tjd02iQMOXsRgQ 4126
plain/internal/files/locks.py sha256=z03q7IZD4tPMK3s1HKF3w_uetkFj6w6FTheLUxZsfB0 3616
plain/internal/files/move.py sha256=jfdD29QhamxZjXRgqmZS4dJoJ4sK6M7QK1Km-69jWeo 3238
plain/internal/files/temp.py sha256=UJJnCI8dqPIC8XXHU3-jG2-0svbkrgGlBs4yhciLm4c 2506
plain/internal/files/uploadedfile.py sha256=JRB7T3quQjg-1y3l1ASPxywtSQZhaeMc45uFPIxvl7c 4192
plain/internal/files/uploadhandler.py sha256=eEnd5onstypjHYtg367PnVWwCaF1kAPlLPSV7goIf_E 7198
plain/internal/files/utils.py sha256=xN4HTJXDRdcoNyrL1dFd528MBwodRlHZM8DGTD_oBIg 2646
plain/internal/handlers/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
plain/internal/handlers/base.py sha256=oRKni79ATI_u7sywGFExrzKvP5dpJTqIp1m521A90Ew 4169
plain/internal/handlers/exception.py sha256=rv8shMlTJdIhTm99VacILIiu5JRcmtumg8yWuy7GYto 4592
plain/internal/handlers/wsgi.py sha256=aOGCd9hJEMTVMGfgIDlSFvevd8_XCzZa2dtlR4peqZg 8253
plain/internal/middleware/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
plain/internal/middleware/headers.py sha256=ENIW1Gwat54hv-ejgp2R8QTZm-PlaI7k44WU01YQrNk 964
plain/internal/middleware/https.py sha256=XpuQK8HicYX1jNanQHqNgyQ9rqe4NLUOZO3ZzKdsP8k 1203
plain/internal/middleware/slash.py sha256=FMU8b9w0NSx4eJs9Y7Ew6RAoSTbUqe2oOM68kg3wOng 2817
plain/logs/README.md sha256=H6uVXdInYlasq0Z1WnhWnPmNwYQoZ1MSLPDQ4ZE7u4A 492
plain/logs/__init__.py sha256=rASvo4qFBDIHfkACmGLNGa6lRGbG9PbNjW6FmBt95ys 168
plain/logs/configure.py sha256=6mV7d1IxkDYT3VBz61qhIj0Esuy5l5QdQfsHaGCfI6w 1063
plain/logs/loggers.py sha256=iz9SYcwP9w5QAuwpULl48SFkVyJuuMoQ_fdLgdCHpNg 2121
plain/logs/utils.py sha256=9UzdCCQXJinGDs71Ngw297mlWkhgZStSd67ya4NOW98 1257
plain/packages/README.md sha256=Vq1Nw3mmEmZ2IriQavuVi4BjcQC2nb8k7YIbnm8QjIg 799
plain/packages/__init__.py sha256=OpQny0xLplPdPpozVUUkrW2gB-IIYyDT1b4zMzOcCC4 160
plain/packages/config.py sha256=uOO7uE9jajqDhqFBafJQ3ZnfLmQiHikTzOSJ1AlP7ZM 3289
plain/packages/registry.py sha256=Aklno7y7UrBZlidtUR_YO3B5xqF46UbUtalReNcYHm8 7937
plain/preflight/README.md sha256=-PKVd0RBMh4ROiMkegPS2PgvT1Kq9qqN1KfNkmUSdFc 177
plain/preflight/__init__.py sha256=H-TNRvaddPtOGmv4RXoc1fxDV1AOb7_K3u7ECF8mV58 607
plain/preflight/files.py sha256=wbHCNgps7o1c1zQNBd8FDCaVaqX90UwuvLgEQ_DbUpY 510
plain/preflight/messages.py sha256=HwatjA6MRFfzFAnSOa_uAw1Pvk_CLuNfW3IYi71_1Mk 2322
plain/preflight/registry.py sha256=7s7f_iEwURzv-Ye515P5lJWcHltd5Ca2fsX1Wpbf1wQ 2306
plain/preflight/security.py sha256=sNpv5AHobPcaO48cOUGRNe2EjusTducjY8vyShR8EhI 2645
plain/preflight/urls.py sha256=O8KtBK8XsM-F2GkvIgnGOqkYWYFgv0fgx0wwmWb8b1M 1456
plain/runtime/README.md sha256=Q8VVO7JRGuYrDxzuYL6ptoilhclbecxKzpRXKgbWGkU 2061
plain/runtime/__init__.py sha256=o2RVETiL8U0lMFBpbtfnxflhw_4MFllMV6CEpX3RqZs 1965
plain/runtime/global_settings.py sha256=DUx_RPZsyplBV9i8sDy7S1fZdU9LUuxqnXYEBTOMzEI 5490
plain/runtime/user_settings.py sha256=uRHHVfzUvHon91_fOKj7K2WaBYwJ1gCPLfeXqKj5CTs 10902
plain/signals/README.md sha256=cd3tKEgH-xc88CUWyDxl4-qv-HBXx8VT32BXVwA5azA 230
plain/signals/__init__.py sha256=eAs0kLqptuP6I31dWXeAqRNji3svplpAV4Ez6ktjwXM 131
plain/signals/dispatch/__init__.py sha256=FzEygqV9HsM6gopio7O2Oh_X230nA4d5Q9s0sUjMq0E 292
plain/signals/dispatch/dispatcher.py sha256=VxSlqn9PCOTghPPJLOqZPs6FNQZfV2BJpMfFMSg6Dtc 11531
plain/signals/dispatch/license.txt sha256=o9EhDhsC4Q5HbmD-IfNGVTEkXtNE33r5rIt3lleJ8gc 1727
plain/templates/README.md sha256=VfA2HmrklG5weE1md85q9g84cWnMBEiXAynKzM7S1Sk 464
plain/templates/__init__.py sha256=bX76FakE9T7mfK3N0deN85HlwHNQpeigytSC9Z8LcOs 451
plain/templates/core.py sha256=iw58EAmyyv8N5HDA-Sq4-fLgz_qx8v8WJfurgR116jw 625
plain/templates/jinja/README.md sha256=ft4781b4IAVI6fsIdAHIpOigdsZ6wGg06LK7BHxoj-g 6996
plain/templates/jinja/__init__.py sha256=qBESSL8XfwdxtwujjR5mZvk4VddlMn1-jOsSxGQy0oE 2768
plain/templates/jinja/environments.py sha256=9plifzvQj--aTN1cCpJ2WdzQxZJpzB8S_4hghgQRQT0 2064
plain/templates/jinja/extensions.py sha256=AEmmmHDbdRW8fhjYDzq9eSSNbp9WHsXenD8tPthjc0s 1351
plain/templates/jinja/filters.py sha256=3KJKKbxcv9dLzUDWPcaa88k3NU2m1GG3iMIgFhzXrBA 860
plain/templates/jinja/globals.py sha256=VMpuMZvwWOmb5MbzKK-ox-QEX_WSsXFxq0mm8biJgaU 558
plain/test/README.md sha256=Zso3Ir7a8vQerzKB6egjROQWkpveLAbscn7VTROPAiU 37
plain/test/__init__.py sha256=rXe88Y602NP8DBnReSyXb7dUzKoWweLuT43j-qwOUl4 138
plain/test/client.py sha256=36Cir1KbrNEhza-5FTgdwxe1iZ5zaEDtESrqcnyndnY 31318
plain/urls/README.md sha256=pWnCvgYkWN7rG7hSyBOtX4ZUP3iO7FhqM6lvwwYll6c 33
plain/urls/__init__.py sha256=DFO2OL1IllHW5USPIb5uYvvzf_G-Bl0Qu1zrRLHmWyM 542
plain/urls/converters.py sha256=s2JZVOdzZC16lgobsI93hygcdH5L0Kj4742WEkXsVcs 1193
plain/urls/exceptions.py sha256=q4iPh3Aa-zHbA-tw8v6WyX1J1n5WdAady2xvxFuyXB0 114
plain/urls/patterns.py sha256=Vswc5OVVQLvvlhVQpHbAsUZ1apy8pucHfTH_h0MDg5g 9298
plain/urls/resolvers.py sha256=PyqbO1JIoJq2ayCSmONW_6O8a3vM7cTVbqQJdCJHIK0 15218
plain/urls/routers.py sha256=iEsQtTpPNDDVn7r_BQX84FESGSjOeD5qgyO_ep5rzaU 2819
plain/urls/utils.py sha256=WiGq6hHI-5DLFOxCQTAZ2qm0J-UdGosLcjuxlfK6_Tg 2137
plain/utils/README.md sha256=Bf5OG-MkOJDz_U8RGVreDfAI4M4nnPaLtk-LdinxHSc 99
plain/utils/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
plain/utils/cache.py sha256=0qziMJfzulWnNWlY4MBNfaYHIbKkAXRwy4QZNDr7s3o 4497
plain/utils/connection.py sha256=NN7xRhy6qIWuOOhi1x9YdGcFcYhKepTiMUETeEMS0vY 2501
plain/utils/crypto.py sha256=zFDydnaqNMGYFHUc-CAn8f93685a17BhGusAcITH1lI 2662
plain/utils/datastructures.py sha256=g4UYTbxIb_n8F9JWMP4dHPwUz71591fHreGATPO4qEc 10240
plain/utils/dateparse.py sha256=u9_tF85YteXSjW9KQzNg_pcCEFDZS3EGorCddcWU0vE 5351
plain/utils/deconstruct.py sha256=7NwEFIDCiadAArUBFmiErzDgfIgDWeKqqQFDXwSgQoQ 1830
plain/utils/decorators.py sha256=mLHOo2jLdvYRo2z8lkeVn2vQErlj7xC6XoLwZBYf_z8 358
plain/utils/duration.py sha256=l0Gc41-DeyyAmpdy2XG-YO5UKxMf1NDpWIlQuD5hAn0 1162
plain/utils/encoding.py sha256=T0Shb2xRAR3NPwwoqhpUOB55gDprWzqu72aRiiulv9Y 4251
plain/utils/functional.py sha256=9sfuPSX1RalDkLNLjR7k-OjooHXjHSWB9ya2kDLOWtE 14652
plain/utils/hashable.py sha256=uLWobCCh7VcEPJ7xzVGPgigNVuTazYJbyzRzHTCI_wo 739
plain/utils/html.py sha256=SR8oNrungB5gxJaHbvAaCw_bAiqLQOk09fj-iIXY0i0 3679
plain/utils/http.py sha256=VOOnwRXnDp5PL_qEmkInLTm10fF58vlhVjeSTdzV2cQ 6031
plain/utils/inspect.py sha256=O3VMH5f4aGOrVpXJBKtQOxx01XrKnjjz6VO_MCV0xkE 1140
plain/utils/ipv6.py sha256=pISQ2AIlG8xXlxpphn388q03fq-fOrlu4GZR0YYjQXw 1267
plain/utils/itercompat.py sha256=lacIDjczhxbwG4ON_KfG1H6VNPOGOpbRhnVhbedo2CY 184
plain/utils/module_loading.py sha256=11a1JbASB-KbahQe2Dlhiw_2VD71lKKZYmo3y_wfJeI 1640
plain/utils/regex_helper.py sha256=pAdh_xG52BOyXLsiuIMPFgduUAoWOEje1ZpjhcefxiA 12769
plain/utils/safestring.py sha256=sawOehuWjr4bkF5jXXCcziILQGoqUcA_eEfsURrAyN0 1801
plain/utils/text.py sha256=42hJv06sadbWfsaAHNhqCQaP1W9qZ69trWDTS-Xva7k 9496
plain/utils/timesince.py sha256=a_-ZoPK_s3Pt998CW4rWp0clZ1XyK2x04hCqak2giII 5928
plain/utils/timezone.py sha256=6u0sE-9RVp0_OCe0Y1KiYYQoq5THWLokZFQYY8jf78g 6221
plain/utils/tree.py sha256=wdWzmfsgc26YDF2wxhAY3yVxXTixQYqYDKE9mL3L3ZY 4383
plain/views/README.md sha256=qndsXKyNMnipPlLaAvgQeGxqXknNQwlFh31Yxk8rHp8 5994
plain/views/__init__.py sha256=a-N1nkklVohJTtz0yD1MMaS0g66HviEjsKydNVVjvVc 392
plain/views/base.py sha256=HxOOOKZDCCZDmy2cJCEhYswVeIHZ9TukYh1zibeUn6w 3160
plain/views/csrf.py sha256=7q6l5xzLWhRnMY64aNj0hR6G-3pxI2yhRwG6k_5j00E 144
plain/views/errors.py sha256=Y4oGX4Z6D2COKcDEfINvXE1acE8Ad15KwNNWPs5BCfc 967
plain/views/exceptions.py sha256=b4euI49ZUKS9O8AGAcFfiDpstzkRAuuj_uYQXzWNHME 138
plain/views/forms.py sha256=RhlaUcZCkeqokY_fvv-NOS-kgZAG4XhDLOPbf9K_Zlc 2691
plain/views/objects.py sha256=g5Lzno0Zsv0K449UpcCtxwCoO7WMRAWqKlxxV2V0_qg 8263
plain/views/redirect.py sha256=9zHZgKvtSkdrMX9KmsRM8hJTPmBktxhc4d8OitbuniI 1724
plain/views/templates.py sha256=cBkFNCSXgVi8cMqQbhsqJ4M_rIQYVl8cUvq9qu4YIes 1951
plain-0.32.1.dist-info/METADATA sha256=4vh2UUkUGv4-dwa6wFT_JBg62zHtUaPwYNfY2lwiZVk 319
plain-0.32.1.dist-info/WHEEL sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ 87
plain-0.32.1.dist-info/entry_points.txt sha256=1Ys2lsSeMepD1vz8RSrJopna0RQfUd951vYvCRsvl6A 45
plain-0.32.1.dist-info/licenses/LICENSE sha256=m0D5O7QoH9l5Vz_rrX_9r-C8d9UNr_ciK6Qwac7o6yo 3175
plain-0.32.1.dist-info/RECORD

entry_points.txt

plain = plain.cli.core:cli