Skip to main content

URL routing made right

Project description

Just a small example:

from routr import route, GET, POST
from routr.schema import form, String

def create_user(username=None):
  ...

def get_user(id):
  ...

routes = route("/users",
  route(POST, "/",          form(username=String), create_user),
  route(GET,  "/{id:int}",  get_user)
  )

Docs are hosted at excellent readthedocs project.

0.3.2

  • routr.static.static routes now can be distinguished via static_view annotation instead of view attribute (still here for backward compatibility)

0.3.1

  • fix routr.static behaviour

0.3

  • get rid of Configuration, now route is just a plain function – this allows better composability w/o requirement to share configuration object between different parts of the app

  • add routr.static for serving static files

  • add routr.utils.positional_args for introspection of positional arguments of different types of objects and routr.utils.inject_args for injecting positional arguments based on introspection

0.2.1

  • bugfixes to DSL

0.2

  • [not backward compatible] new DSL – got rid of guards keyword argument which is too noisy

0.1.7

  • [bugfix] incorrect reversal of urls with more than one param

0.1.6

  • [bugfix] fix bug with RouteGuarded poped up in RouteGroup match

  • add ‘_’ to allowed args in URLPattern

0.1.5

  • introduced RequestParams.exception_factory which abstracts away HTTPBadRequest raise in case of invalid data being supplied

  • [bugfix] RouteGuarded.response now installed correctly, previously it sometimes contained NoUrlMatched objects which are not responses

0.1.4

  • RequestParams.post_processor now also can be accumulated via addition

  • fix bug in RequestParams which prevented Option wrap SchemaNode objects directly

0.1.3

  • fix broken 0.1.2 release by including CHANGES file in dist

0.1.2

  • trace factory made configurable via Configuration.trace attribute

  • method and PATH_INFO extraction delegated to configuration, allows implementing routing for other request wrapper (werkzeug or django’s request for example)

  • routes now have access to configuration object via cfg attribute

0.1.1

  • allow guards return None (routing doesn’t break on this and proceed with old trace)

  • RequestParams now can accept colander.SchemaNode directly (allows to supply validators)

0.1

  • initial release

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

routr-0.3.2.tar.gz (14.2 kB view details)

Uploaded Source

File details

Details for the file routr-0.3.2.tar.gz.

File metadata

  • Download URL: routr-0.3.2.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for routr-0.3.2.tar.gz
Algorithm Hash digest
SHA256 ed2f5b28b6e2954f0a01ff87bf31ff448fb3216936bfb1d500661c339c900940
MD5 4e91d7e6c9a8e50345f05fcda323edf6
BLAKE2b-256 b2e32d39074494c8d81ccf8ee36b21476b51acd4ba128d085098441229a1ac09

See more details on using hashes here.

Supported by

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