A web framework optimized for programmer happiness.
Project description
:warning: WARNING: This is a work in progress. It doesn't have documentation. Do NOT use it.
Proper
A web framework optimized for programmer happiness.
Requirements
- Python 3.6+
Installation
pip install proper
Design principles
-
"Convention over configuration".
-
No globals. When you need a shared object, pass it arround.
-
Optimize for the 95%. Don't compromise the usability of the common cases to keep consistency with the edge cases.
-
Code redability is important.
-
App-code over framework-code Because app code is infintely configurable without dirty hacks.
-
"Everyone is an adult here". Run with scissors if you must.
-
Regular WSGI is great.
Sources of inspirations
From Elixir/Phoenix
Pipelines in the routes.
You don't need to have a framework for APIs and other for full-fletched apps, you can just deactivate cookie sessions, flash messages and other things yoi don't need for specific sections of your sites. And is super easy to add things too like admin-only sections just by composing multiple pipelines, after all, there are just lists of callables.
App-code over framework-code.
You can make it clean and straightforward or you can make it configurable. But if you put the code in the application, thanks to a standarized project skeleton, you can have both!
From Ruby/Rails
Convention over configuration.
Optimize for developer happiness.
The application code must be beatiful.
- Empty class-based controllers that works!
- Class-based controllers allows several tricks that make the experience much better:
- A configurable and plugganle render and view functions.
- Class based views a-la Django, but simpler and completely obvious because is your application code (see (App-code over framework-code)
- Saving context varaibles in your controller instance looks much cleaner that building a dictionary and manually calling render and the end of each controller.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file proper-0.1.dev4.tar.gz
.
File metadata
- Download URL: proper-0.1.dev4.tar.gz
- Upload date:
- Size: 169.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74d9735e17610ee7b9067f32dd3ce3b1be28dadfddc931aa4dc3999a9d8146c9 |
|
MD5 | 9e4a0467df21239f952a0f8d5c468ac8 |
|
BLAKE2b-256 | 51cb64be5c12ff146645243cf051ad8c9ab9eac50e997198f2b8c85a3176bced |
File details
Details for the file proper-0.1.dev4-py3-none-any.whl
.
File metadata
- Download URL: proper-0.1.dev4-py3-none-any.whl
- Upload date:
- Size: 183.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23ab8ca7744702876fe19a93d246a0858b247c4c7fd782b4fb4215afdb63d2cb |
|
MD5 | b2d241e41991233c517155489c7ae46e |
|
BLAKE2b-256 | 4a879833a14bb83f935e5db59f746c09126f808919eee34a1fab818d642c410f |