Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

proper-0.1.dev4.tar.gz (169.1 kB view details)

Uploaded Source

Built Distribution

proper-0.1.dev4-py3-none-any.whl (183.5 kB view details)

Uploaded Python 3

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

Hashes for proper-0.1.dev4.tar.gz
Algorithm Hash digest
SHA256 74d9735e17610ee7b9067f32dd3ce3b1be28dadfddc931aa4dc3999a9d8146c9
MD5 9e4a0467df21239f952a0f8d5c468ac8
BLAKE2b-256 51cb64be5c12ff146645243cf051ad8c9ab9eac50e997198f2b8c85a3176bced

See more details on using hashes here.

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

Hashes for proper-0.1.dev4-py3-none-any.whl
Algorithm Hash digest
SHA256 23ab8ca7744702876fe19a93d246a0858b247c4c7fd782b4fb4215afdb63d2cb
MD5 b2d241e41991233c517155489c7ae46e
BLAKE2b-256 4a879833a14bb83f935e5db59f746c09126f808919eee34a1fab818d642c410f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page