proper

View on PyPIReverse Dependencies (0)

0.2 proper-0.2-py3-none-any.whl

Wheel Details

Project: proper
Version: 0.2
Filename: proper-0.2-py3-none-any.whl
Download: [link]
Size: 140875
MD5: cf9ca85e51087f06eb663d6e3e2395dc
SHA256: db8e074c2c57e47d9992a4566e0696a1f303982eef0c15eeb22bc6fdd82906ff
Uploaded: 2024-05-09 20:45:50 +0000

dist-info

METADATA

Metadata-Version: 2.1
Name: proper
Version: 0.2
Summary: A web framework optimized for programmer happiness
Author-Email: Juan-Pablo Scaletti <juanpablo[at]jpscaletti.com>
Project-Url: homepage, https://proper.scaletti.dev/
Project-Url: repository, https://github.com/jpsca/proper
Project-Url: documentation, https://proper.scaletti.dev/
License: Copyright (c) 2019 Juan-Pablo Scaletti Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: inflection (>=0.5.1)
Requires-Dist: isort (>=5.0)
Requires-Dist: itsdangerous (>=1.1)
Requires-Dist: jinjax (>=0.30)
Requires-Dist: mailshake
Requires-Dist: markupsafe (>=2.0)
Requires-Dist: passlib (>=1.7)
Requires-Dist: peewee (>=3.15)
Requires-Dist: peewee-migrate (<2,>=1.12.1)
Requires-Dist: proper-cli (>=1.2)
Requires-Dist: tomlkit (>=0.12.4)
Requires-Dist: traceback-with-variables (==2.0.4)
Requires-Dist: uwsgi (>=2.0)
Requires-Dist: ipdb (>=0.13); extra == "dev"
Requires-Dist: pyright (>=1.1); extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: ruff (>=0.2.0); extra == "dev"
Requires-Dist: pytest (>=7.2); extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: tox; extra == "test"
Requires-Dist: image-processing-egg; extra == "test"
Requires-Dist: poyo; extra == "test"
Provides-Extra: dev
Provides-Extra: test
Description-Content-Type: text/markdown
[Description omitted; length: 1619 characters]

WHEEL

Wheel-Version: 1.0
Generator: bdist_wheel (0.43.0)
Root-Is-Purelib: true
Tag: py3-none-any

RECORD

Path Digest Size
blueprints/app/wsgi.tt.py sha256=EuWKfHELILn9Xz_Uxru1j9K_n96_v84GPETyTXIPvxs 43
blueprints/app/[[ app_name ]]/__init__.py sha256=t7wKChN5Vt-WpGInoEmjWnO3amznqtW6j599V5KlFzA 161
blueprints/app/[[ app_name ]]/app.py sha256=3KjJOa6fTBBoWWWiKh46XkE-ghuwQ0mcP-3nNAIOrnE 141
blueprints/app/[[ app_name ]]/routes.py sha256=yyOwGfBQA1zD_S49CISvpeXf-OsY0SviJKWxEojhkug 805
blueprints/app/[[ app_name ]]/cl/__init__.tt.py sha256=e4FrzzG6ycFgdzZL4OsFAAEAekgjrthbh0JeMrVeWfQ 105
blueprints/app/[[ app_name ]]/config/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
blueprints/app/[[ app_name ]]/config/app.tt.py sha256=xZoTfBBMXub8yBd4hR1h4fBEFjs_PtgbtpK1q8mylok 1512
blueprints/app/[[ app_name ]]/config/database.tt.py sha256=_PliTmeKFoAI3gO_12S5i9jvMaJCgdVSrFCySZ4k3Mg 1275
blueprints/app/[[ app_name ]]/config/session.py sha256=z8_0uNGUStM4mYWu7sIXYGZ-HPSynF9TrQlb1dzvmoI 381
blueprints/app/[[ app_name ]]/config/storage.py sha256=cGUrA6KC_JHRH4xZGn8ytwPykblJmYfgedrPEjRbZyA 272
blueprints/app/[[ app_name ]]/initializers/1_app.tt.py sha256=QldZ4iMQDchFkDh9I5IXuq0BRl1gM3e1euCNibs_JuY 486
blueprints/app/[[ app_name ]]/initializers/2_database.py sha256=tJKCLHcx6nY3RPYmWN9YrKpL-OnSttZsqIcSkEt0MbE 475
blueprints/app/[[ app_name ]]/initializers/__init__.py sha256=vvDZ_cfwqjGyN3Bk41AIOrqMI8A0wJSt9m2L38hjztk 349
blueprints/app/[[ app_name ]]/initializers/error_handlers.py sha256=AnywillLwhStT_MSzWuLb6SfqoSA2luKj9pfEZiYcQ0 554
blueprints/app/[[ app_name ]]/mailers/__init__.py sha256=BcmKMU1n3Z5UhuRxi7eBDnsJzzDQ8WQ4xg_bMvPmjt4 28
blueprints/app/[[ app_name ]]/mailers/mailer.py sha256=DHbkn_G5qpiCRVNCFSUOhJqiPxdft_9RaY3j01GqfIU 236
blueprints/app/[[ app_name ]]/models/__init__.py sha256=nOdnN6IQ0gVzYJZQMhxawQUH8rH6Umu-bjXaQUGnXMA 194
blueprints/app/[[ app_name ]]/models/base.py sha256=4FjhYW8dtElvvz5NqwSiuZTvWRKUXN09Jjg1GmlUTTM 358
blueprints/app/[[ app_name ]]/models/concerns/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
blueprints/app/[[ app_name ]]/models/concerns/timestamped.tt.py sha256=mLaDTUDiMnaFfPO9sCPP0GUgjvjYQzbVdadybZMS0i0 404
blueprints/app/[[ app_name ]]/views/__init__.py sha256=gYxXeiKPck6hTjFaMKFE86hLH35LYw1XFiyEI-0ETa8 716
blueprints/app/[[ app_name ]]/views/app.tt.py sha256=V0MclyENvTEEv7AoDTxULEVVgsCbILv23UGQr27TYew 283
blueprints/app/[[ app_name ]]/views/page.py sha256=j0_oZnxipOr7P-98NtXllnVzmcn5JvBkOphfET5F1qI 243
blueprints/app/[[ app_name ]]/views/concerns/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
blueprints/app/[[ app_name ]]/views/concerns/db_connection.tt.py sha256=vMGR1MdFGdAxJbnl8ZtBAwhXrSd7noV1VWRGGouM7do 211
blueprints/app/[[ app_name ]]/views/concerns/security_headers.py sha256=Se1UHFeB9ntt-h5cQilk65LOFsNzYaEwWLsAStk2oxc 1143
blueprints/app/tests/conftest.py sha256=a9ebudxgYakXpXRUKEZGJpE2tzbiRuAgt6kOuu_ZMK0 54
blueprints/auth/routes.tt.py sha256=K6ORJ4FljHUXJsn9zQ6T1zhwUdu1BTlaTiF_SYGc2KY 280
blueprints/auth/[[ app_name ]]/app.append.py sha256=sJ7We1tn88_5nHkN31ndiMk1U4NDzVL9xZyxYuGj49M 16
blueprints/auth/[[ app_name ]]/cl/__init__.append.py sha256=E7J0TvVIbgdaa6nOigsbX5tfj-Pa00YbEk9Q2Z2ocqA 44
blueprints/auth/[[ app_name ]]/cl/auth.tt.py sha256=c7QBo47LEaTZzbLuyEu0AZlXSSj_eFU5rUQAdvc0xco 1185
blueprints/auth/[[ app_name ]]/config/app.append.py sha256=H2aN_5o7UZ34k6bQe5ipAZURUMB260A4PcK7LTFPeSc 29
blueprints/auth/[[ app_name ]]/config/auth.py sha256=hTf0C1zl1P-LIcvwRqU414QtGzWnXvo_SXNAg-Hqoqs 177
blueprints/auth/[[ app_name ]]/mailers/auth.py sha256=maSM3-EaS9N4w2FAUYrHhkOl-GA4d8LaksHfndxvx8U 714
blueprints/auth/[[ app_name ]]/models/__init__.append.py sha256=PrZRygDDr5e6CjEStuU6IQkb0PLhDCsNi8ZB1Vho47Q 31
blueprints/auth/[[ app_name ]]/models/user.py sha256=FDfFSGkEexAyo2xXhmrNINQGG8uoMnE_kA8Ewmd8Teg 229
blueprints/auth/[[ app_name ]]/models/concerns/authenticable.tt.py sha256=97JSqPHXKpBqRTtuh1usjzNIdVrROytruq4O5ggPfCs 4145
blueprints/auth/[[ app_name ]]/views/app.append.py sha256=aLoJ9MfWcguTMkxKAyznKeqHwSStn35Mt3KD95UQkeE 249
blueprints/auth/[[ app_name ]]/views/app.prepend.py sha256=8azSP721FEihBMuqIrSfkpBe9RwiIJKFA6FK11vGJow 153
blueprints/auth/[[ app_name ]]/views/concerns/load_user.tt.py sha256=GScgx9AGmuW4M2mnkKfAFLF3FHL0KyC80mJLFIBVgAY 917
blueprints/auth/[[ app_name ]]/views/concerns/require_login.tt.py sha256=G71vzSvMo4MfaxTLV7r2-fIWGXGwrbZedaMA4qyDw8I 492
blueprints/auth/[[ app_name ]]/views/password/__init__.py sha256=WDvqo2RMmf8zPW0W-M-QnDuCIU8uSvmfYNnX4EgVBQc 29
blueprints/auth/[[ app_name ]]/views/password/forms.py sha256=zuTUFh2gw2ibgMJA7njNuuDGoZQRB8nECQqHtgWrMns 813
blueprints/auth/[[ app_name ]]/views/password/pwned.py sha256=xeaKSzusaDzXHTEuIQPZ6TZKl0bhZ6i3PYBBeY0pRiM 810
blueprints/auth/[[ app_name ]]/views/password/reset.tt.py sha256=Z9qowXm4ojlrHLuVt7Z6le05PsMBUZFTIDMPdA8s8o0 2157
blueprints/auth/[[ app_name ]]/views/password/validators.tt.py sha256=slXsIojVih0CKaDlF-DauifZOcffFGZZmgY4TqCkimM 1481
blueprints/auth/[[ app_name ]]/views/session/__init__.py sha256=hH3x_u21MY-AJ7MBJPXRkfyYEvHm09Rt-EgF99PC6ew 31
blueprints/auth/[[ app_name ]]/views/session/forms.tt.py sha256=8x9UlH6CJ0IpzM6do2qO3VEI3Iv9wKO3GbXHLZu5L4A 1026
blueprints/auth/[[ app_name ]]/views/session/session.tt.py sha256=QNiF6V8W5wrEF1SV8UWzbTnKktEJ1YpRw7Wv5HkuTJA 1016
blueprints/i18n/[[ app_name ]]/initializers/i18n.py sha256=PnughMKEn7o_T4Mde72Pt-xeVA9TfygL7xGayrcaHdE 113
blueprints/i18n/[[ app_name ]]/views/app.prepend.py sha256=H1fGMItWK6BOJZjt42CXywe2p7m5RVMnlWauO9wc-fU 43
blueprints/i18n/[[ app_name ]]/views/concerns/set_locale.tt.py sha256=I4b33gL_PcLeFkmRBbaRHrNpfjuLPSDucq0-XZqq3CI 790
blueprints/model/[[ app_name ]]/models/[[ singular_snake ]].tt.py sha256=HH_MUFI-MYSO8RVAf7RFiCJJ3vErpFmJKUYbmeIcGnM 157
blueprints/model/[[ app_name ]]/models/__init__.append.py sha256=tCchBIfkn-lc80AgI_tRjy9eZ7MyewyUYwBQ7ZJh0Zo 65
blueprints/resource/routes.tt.py sha256=AWw7iGHPlmVf4fHHB9UYUlY9ijLSls3PYwWSI-_kkTk 336
blueprints/resource/[[ app_name ]]/views/[[ view_snake ]]/[[ view_snake ]].tt.py sha256=gaO-h62hmHZgLpZeNKtTHEZAQBdazUdtXQl5kBfSpZw 5234
blueprints/resource/[[ app_name ]]/views/[[ view_snake ]]/__init__.tt.py sha256=MS6o_n7--Wob20xyD-1lN0qM191Kq__X5n4S7aaBv-g 40
blueprints/resource/[[ app_name ]]/views/[[ view_snake ]]/forms.tt.py sha256=vvXGldtlo6aVC3T5boOIbCcv_27sTVWtvJ3fgiesSro 510
blueprints/storage/routes.tt.py sha256=3Bv3QwJGaM6RICPe1nhq9SfzGL7kjdRvmiaAb8g0U_A 105
blueprints/storage/[[ app_name ]]/config/app.append.py sha256=nEku76wUP6m0k4ElBedwtL5wDFHXrCOH73lQzlnh1Mk 69
blueprints/storage/[[ app_name ]]/config/storage.py sha256=yCaetEXQFbOg4c52e9q7NOrudXDnkL7CpU_R33ecmf8 1153
blueprints/storage/[[ app_name ]]/models/__init__.append.py sha256=jK0HphVmMYTV0h38RaHKcN0HncMxd2_k7dh2CvyZnWs 43
blueprints/storage/[[ app_name ]]/models/attachment.py sha256=I95VJtjpQHlv2XLM3THP7NbGp8F-h0z9TbZgbEpNItA 134
blueprints/storage/[[ app_name ]]/views/storage.tt.py sha256=Mthvg8pLKLQkm4R7rIOqHvZ_YSV6UQRUIKO65QQ-ado 384
blueprints/view/routes.tt.py sha256=tX3xl1EpqW5cKUm2NDb1zZfXbUCBb9VrwGFH-XhRr8w 183
blueprints/view/[[ app_name ]]/views/[[ plural_snake ]].tt.py sha256=3Sihe2bljwdIWv28FVLEJrE8vYam-laur-JYIpKnBVI 156
proper/__init__.py sha256=JIXS4kjrlyhHSDP4pbA01_eSPdQBihhkMw4M2P_utp0 442
proper/constants.py sha256=P4TD6IhAv4b4aL-35JrSykQa01lldJZrfuoG6aFS7ds 314
proper/current.py sha256=l3aOrbvMnEcAEFQiUA72D73Z8wAXOtgoVp4rJszKpxo 348
proper/errors.py sha256=F8CZJVGl4hVxFV8yWqhvLphLSexykaOwTfQQ79Auqbo 14960
proper/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
proper/status.py sha256=LQTP8w6YtedPY0cc6M2_FNSzyzkdXqZDc-NwLT08Ydk 4781
proper/types.py sha256=y8npbBY_h2PDdaCiPD8MUGkbbr2zGIhKcw6Q4APdZpg 402
proper/view.py sha256=AS_-vJCUb1TWg-ln_9h7q4r9tRpmHtOnBezgGxkogxI 5564
proper/auth/__init__.py sha256=nhM-YnU1QUkNgxGmg0fqRdFFYjmp19DCXa9oc2R5OSs 65
proper/auth/auth.py sha256=3xr4jV6aWTCOZjwTDY30bJaq2CN3BKzlc3GJwDL4eXw 9773
proper/auth/install.py sha256=IKrDP9BWgNBVPJjrJV5X3tPdkjNZKZwbSnEHeerYpMU 1057
proper/cache/__init__.py sha256=VbEXT6Gf0WPOebgLpvjsaeCVhmuIYcnRNGw1kqQSOsk 80
proper/cache/base.py sha256=Hz7h9THffgbQmuD6pz3P5P-tWKaeU3YwB6VNDIMsxCM 583
proper/cache/sqlite_cache.py sha256=zmB5DuYLv8RRgu6Fiv0qPtJo8-lV44ErexpbyVAxxV0 5109
proper/cl/__init__.py sha256=rT1-MafLsLrKJ_BfXWZip-gZgVzcnMEg0Ozl_aYPqBY 568
proper/cl/app_cl.py sha256=QrWOqGJFUTRqzsBD0-RhCB9Ujv4kURPr3Plu0vvaqJw 4187
proper/cl/db_cl.py sha256=9_wAUtjF1vXMoL752awtU5FAdv6KmWfFxE5PXomImx8 1905
proper/cl/proper_cl.py sha256=fX2_WbYB7q7bFFPye44rzx0p7HdsI8-eejDXzeI4-gk 422
proper/concerns/__init__.py sha256=Z2ovCrInccoB4TdkWlbZvlEC0lYGCZRXS4L4tabyWGk 81
proper/concerns/request_forgery_protection.py sha256=AuhQwhb2uT488q-P26JLyypWqQXBLkjW4_A7ReI9mJ8 4678
proper/concerns/session.py sha256=0oxgZbD2_GkVtNP86Efcfak63Pmr0CMujt89Bt4bPnM 2611
proper/core/__init__.py sha256=21w3GkfKL_1k4dVeZUblHnIQN6fDeq36QuRbWnzFVyU 29
proper/core/app.py sha256=Q5he8JXO_ihHWVJqFQV3BlK-Yf8We22aONuZt8TCgwQ 15261
proper/core/app_test.py sha256=FAfO2ivANT9CYvZPfK5MZduerOkoNDHxGXiqiCoWHNM 8552
proper/core/config.py sha256=F48tbC5o3BW5rqlU4GB4190By5pLOa9_c9ViBXrMgrg 2948
proper/core/error_handlers.py sha256=12jAhsk4zoDxFRcZDCnF87G0NggR4vV-BcqhXwN3mgQ 3977
proper/core/pipeline/__init__.py sha256=CB0PInI54B-B0kg9qnHfEseCFPdVnJYjE8-XV0epeno 160
proper/core/pipeline/dispatch.py sha256=jw9Bgo_eUXeVCKrjfmf6iBqzGyKIeCkMSQbCHqrvFlM 710
proper/core/pipeline/head.py sha256=muBc7xCVM_FB4vjVxDr6Ap-6biIY0Idd6aVVo3pS1_E 568
proper/core/pipeline/match.py sha256=tCPAc3TyvOYIPa8w4J55nTyoTQyukHbPdepSr02zUtE 592
proper/core/pipeline/method_override.py sha256=sLGidvcnqCaifvJKLtG6uikm1FYt6TEKNhIa7MRkBBQ 978
proper/core/pipeline/redirect.py sha256=cfJEP-Cuwwg-c1zPck1ptDVN7ppCWK4Kmk8ZX9pB7ow 682
proper/generators/__init__.py sha256=RmFZQlEQqiS1WivVnvEiDL4gUAyrrmjK3wC0r8xQIwk 148
proper/generators/app.py sha256=FnE9cDf1Cb5JWbRel5GYh67eg0VFujGq_MpN9PcW2KE 2274
proper/generators/model.py sha256=1EIkqK8cu5X6RJECd6Z8B2VIjvRXAUxCUMJcP1iU-q4 5572
proper/generators/resource.py sha256=pdEijB2mkL83qIflyeN_pvhYPBziDfQZiH5ySaZXkT8 6730
proper/generators/view.py sha256=_s0JGVHV4496WzD6mz6MfVo8KzZtYiRDcUiGoRwsA4k 1758
proper/helpers/__init__.py sha256=CXTdhWtycbUfX7XkCjYI-Xcgv9jWld8qhVgB_a-1FA4 383
proper/helpers/digestor.py sha256=QashA4Asd6rC1t3jsAvVVgHJDc0k__GO7aDzBWNpZik 927
proper/helpers/dotdict.py sha256=GudzL-q4Ej-QsHywzOWIUPVI_Z8Uj6LjWjW3_uprcGE 2130
proper/helpers/http.py sha256=UsQrl8psvW7iam0pPCkRB6ZItDdDlhgIisDMYhT-WgU 1935
proper/helpers/jsonplus.py sha256=Htyj0blklf7KS4xb_DLuLXkGPkc3_h_0GIVoQNzqTls 1070
proper/helpers/mixins.py sha256=pPSVng_kkgqyK0cI0FHCYvboTN59QL4wcIJHBX6xggU 474
proper/helpers/multidict.py sha256=uOT1xVXxqgEuYnV1qMUhuT6NG0-lJtYORUsOWSQzmvo 4881
proper/helpers/proxy.py sha256=afvA8eU_KpRZTMRsqGfvGBX4c3xcy8qO4KkJZQ1XTdE 2147
proper/helpers/render.py sha256=IcCajyRRfnll7jlM1e7lGasHTkCcogrZjwJqXjN5bR4 10103
proper/helpers/server.py sha256=QT6FNKNLEa8pbTqFLeRk2kP_cQ2WofKeZTYMBtAIjGU 2404
proper/helpers/utils.py sha256=KH7DMZFKhzFQM6fKL7GRLtilkrm0sC9W2k9e4h_uSeg 8214
proper/i18n/__init__.py sha256=echMXGUcRLF4G_u73yGdltAVpJUO2zBPttdfmgrHeDE 68
proper/i18n/i18n.py sha256=qTs4sWG4wI-vvGT31rwqZ_60mXPhOJ-V-QteTHOrl9A 10031
proper/i18n/install.py sha256=aaG4mUXUAAgzJXIKe0qFDBYYPmk74abNvmxKCu9oweQ 1296
proper/i18n/plural_rules.py sha256=7RXEdGVeqWWo-vyDVf6bQWzkIe03wZMIutaAbR4Ugko 42542
proper/i18n/reader.py sha256=f_5VP4mRltESres5tR0XQJGo_1AAnj_OWgCihBCCx1k 2443
proper/request/__init__.py sha256=11VGg7S1TtLOJEyxlXaFMU1HRxft2jS5z5IpQsRyB-0 63
proper/request/forwarded.py sha256=7ru4pk_ZjrzPLuCw4R2JJQviw1enLtso-3gZs1EVICw 4043
proper/request/headers.py sha256=Wa40nTTWyKQUEM3GFlhr_bROWXNm1Jq8nfpaXdnCJFo 15818
proper/request/make_env.py sha256=WnZpCMeEqoqD-tB5VuhClUhmry9Xq5jAIbwEGKLSmDM 1220
proper/request/multipart.py sha256=s54kxablCNrFx2J_vwRRx49A6LsNv7wFMZ_xdgBp0jo 13375
proper/request/parse_form.py sha256=oQltjA1pwoiGdyWSeK26x9noALbgKPP5IGy0t-_ubkM 4598
proper/request/request.py sha256=vouObs-nT79X4VtP5jaKmJM7haHNRrSgY6xC200T39A 10245
proper/response/__init__.py sha256=BScBE9OGgKNM1yg74mtcgfIHlXbilG58fr6g7uhcEao 32
proper/response/cookies.py sha256=riM-XS4RmW-NOIBayDtBrBUZKx6ciG0SmiVpF4AyC-M 8556
proper/response/file_wrapper.py sha256=PyxMwDbORh0qEdFuxlkfkSemyMZWxiOYZ5lvtEwTJW4 1645
proper/response/flash_dict.py sha256=7qHMwbHn1kQSK3lcBXRfTNk2ye0ZbLzXIai5Mmn6Dy8 1228
proper/response/headers.py sha256=vthTPANsW4VR-SlHHGDMYogAl5ai_uTwRjWh6Td1z5k 19265
proper/response/response.py sha256=HnNgEipTkfNy7F9V3ihWjAyXKVr50y557DltCJci4fs 9750
proper/router/__init__.py sha256=ft5tMV2kCf6aJ2VhQ3rGT9K2V_PWiGfDxGkBldGkDM8 150
proper/router/resource.py sha256=hOKp_GdrsuSaMmefpoq1cftnD2XShSNnTZwaclVlY-k 4741
proper/router/route.py sha256=tyhWVnrBepQqBApICjT4Kr1OCbT_Rffw-H0du7-4pRk 27011
proper/router/router.py sha256=zbqy3nsOiH6WwUbMqL0bOR97_OHf8qkWYdiiIvysGa4 4105
proper/router/scope.py sha256=N6bXKqDl8ELIMCXuu_oEdWA9PnO7rVPEHJKqvo17w3A 2778
proper/router/static.py sha256=nBDfpwiuaVoVUUt767dg94i_fVouy3auQRpkfqLqSP0 2995
proper/storage/__init__.py sha256=MfSfBQefUVfowtLagnGeB_kDQqNPMo_X8pE0PhRNfR4 100
proper/storage/attachment.py sha256=c1TLm3LE8ey9nDQy9Uv9FYf4fr6N4-sSlb37GZcEAg0 2948
proper/storage/install.py sha256=QGddfmtgUKMKAQzgyxXR4z2qHpsT7te4rCKSc176Vl0 942
proper/storage/storage.py sha256=HkYXbhsoe-yStgy5wSHwb62l_k8uNVbAuMnM8Qk8r0I 3332
proper/storage/types.py sha256=v5-rHvFEuyztUX2s1JPq9Ci4ctSGWhnu4Dws_tXa7ng 316
proper/storage/services/__init__.py sha256=4Fc8WdopI2Vc9c6a3f3M78zrEJT-Fr87c117bB146Qs 37
proper/storage/services/disk.py sha256=jMUrgyDS7E_bV2GdLDUiwMFN2VIHUIBsII2xkE_cne8 1351
proper/storage/services/service.py sha256=4reKaLOKF_a9fh9AYq7zqwDB8Zq8VjePoxO_QghSg7g 706
proper-0.2.dist-info/METADATA sha256=Mzvj2R6nAUCVEV_BqVfsqZ_ATTIRZm7lc6HIx7DS-Xg 4528
proper-0.2.dist-info/WHEEL sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ 92
proper-0.2.dist-info/entry_points.txt sha256=RcOZ-VVH5IuqXDgJy49xii_6QCn6ECv_-5Bm-805ZxM 41
proper-0.2.dist-info/top_level.txt sha256=C0UFC7gvkSDp963PQbTv4u6uevpKt2HopTmZFS2KmsE 18
proper-0.2.dist-info/RECORD

top_level.txt

blueprints
proper

entry_points.txt

proper = proper.cl:run