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

Uploaded Source

Built Distribution

proper-0.1.dev3-py3-none-any.whl (81.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: proper-0.1.dev3.tar.gz
  • Upload date:
  • Size: 260.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.dev3.tar.gz
Algorithm Hash digest
SHA256 2d03df5c81e2598f34e229ecc527bdce859ba034c3b561f089b964d88878adb3
MD5 ec611add2032baae35dfe65091bf9c2e
BLAKE2b-256 fb1ed113adf9032746623e2e9879e6a94eddae581d2e8bbecab3d80bdff87a72

See more details on using hashes here.

File details

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

File metadata

  • Download URL: proper-0.1.dev3-py3-none-any.whl
  • Upload date:
  • Size: 81.3 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.dev3-py3-none-any.whl
Algorithm Hash digest
SHA256 dc66b046c078272d85cc03f9a7294df1de875403f5b863fdb6ad66b3e31f3e4d
MD5 790dadd3c818bcd91e3aa3bbd49c6b91
BLAKE2b-256 d066554cd01f83913578ca87b4e86528756fef10ceed6a5dc9d58a7791d6a6b4

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