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.dev1.tar.gz (329.9 kB view details)

Uploaded Source

Built Distribution

proper-0.1.dev1-py3-none-any.whl (176.9 kB view details)

Uploaded Python 3

File details

Details for the file proper-0.1.dev1.tar.gz.

File metadata

  • Download URL: proper-0.1.dev1.tar.gz
  • Upload date:
  • Size: 329.9 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.61.2 CPython/3.9.6

File hashes

Hashes for proper-0.1.dev1.tar.gz
Algorithm Hash digest
SHA256 2069e52e35d0f3e33eafee5ac075251318323a3edfb64d4cc95c61b3d39e93cf
MD5 15c58e5861f2025e1d9266dd50436806
BLAKE2b-256 351e41d332a6c0cce34922b656c1560071f5ae50d6b7835c9ece06a3eb662878

See more details on using hashes here.

File details

Details for the file proper-0.1.dev1-py3-none-any.whl.

File metadata

  • Download URL: proper-0.1.dev1-py3-none-any.whl
  • Upload date:
  • Size: 176.9 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.61.2 CPython/3.9.6

File hashes

Hashes for proper-0.1.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 f99805f8e343c550fe26968c77115d4eeef17e084c49c1fc52226752e0d79d89
MD5 4f44fe04a0a5b19c9c2e22652d4a6a69
BLAKE2b-256 94a7f20cd8e7d8576e59b1aba412dbe6be1dd202cf7de6fd7d5582a189ca6d91

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