Skip to main content
2025 Python Packaging Survey is now live!  Take the survey now

A few helpful tools to make working with the falcon framework a real joy!

Project description

https://codecov.io/gl/skosh/falcon-helpers/branch/master/graph/badge.svg https://gitlab.com/skosh/falcon-helpers/badges/master/pipeline.svg

Falcon Helpers

A number of helpful utilities to make working with Falcon Framework a breeze.

Quickstart

$ pip install falcon-helpers
import falcon
import falcon_helpers

api = falcon.App(
  middlewares=[
    falcon_helpers.middlewares.StaticsMiddleware()
  ]
)

Development

  1. Create a Python 3.10 virtual environment, and activate it.

  2. pip install -e .[dev]

  3. pytest or run tox and verify the tests pass.

0.20.0 - 2024-02-12

  • [BREAK] Require marshmallow 3

0.19.0 - 2023-02-06

0.18.0 - 2023-01-20

  • [NEW] Support falcon 3

  • [NEW] Support Python 3.10

  • [BREAK] Require falcon 3

  • [BREAK] Limit some dependency versions

  • [BREAK] Rename app.API to app.App in accordance with falcon

0.17.1 - 2020-11-04

  • [BUG] Rollback SQLA session when an error occurs before resource middleware is run (b455800)

0.17.0 - 2018-10-17

  • [FEAT] Add some usefule logging features

  • [FEAT] Add Logging to MultiMiddleware

  • [BUG] Fix User REPR

  • [BUG] Report Integrity Errors with Useful Messages

0.16.1 - 2018-06-27

  • [BUG] Cleanup Storage Logging Error (7a756d6)

0.16.0 - 2018-06-25

  • [FEAT] Create a New Base API Implementation (ed3f715)

  • [BUG] Squash a bunch of bugs

0.15.3 - 2018-06-18

  • [FEAT] Fetching a file pointer in storage allows you to set the mode.

0.15.2 - 2018-06-06

  • [FEAT] Support passing S3 configuration to storages

  • [BREAK] Default to using V4 of the AWS presigned key

0.15.1 - 2018-06-06

  • [FEAT] Allow column_filters to use non-entity columns

0.15.0 - 2018-06-02

  • [FEAT] Add Support for easier PUT updates (31d6175)

0.14.0 - 2018-06-01

  • [BREAK] Remove Statics Middleware

  • [NEW] Add a simple Sentry Plugin

  • [NEW] Create a server CLI

0.13.0 - 2018-05-22

  • [BREAK] SQLAlchemy Session is now a global (9d5d220)

  • [FEAT] Implement fetching from storage environments (7f7fc01)

  • [NEW] Add a basic Mapping type for Configuration objects (1884577)

  • [BUG] Allow None for Storage Paths (e3b625d)

0.12.0 - 2018-04-15

  • [FEAT] Create Key Based Filtering

0.11.4 - 2018-04-05

  • [FEAT] Allow specifying your own default page size for ListBase

0.11.3 - 2018-03-31

  • [FEAT] Allow passing additional data to generate auth token

0.11.2 - 2018-03-30

  • [BUG] Remove Stray PDB

0.11.1 - 2018-03-30

  • [FEAT] Add hook to for deleting an object in CrudBase

0.11.0 - 2018-03-29

  • [FEAT] Add filter by field name on ListBase

  • [FEAT] Allow turning off auto-marshalling

  • [BUG] Session closing could fail with exceptions

0.10.1 - 2018-03-05

  • [FEAT] Added a remove function to storage backends

0.10.0 - 2018-03-03

  • [NEW] We now have a CI system with CodeCoverage

  • [FEAT] You can now user auth_marshal=False to turn off auto JSON marshaling to Marshmallow

  • [FEAT] Added a few helpful functions on auth.user

  • [BUG] Fixed object deletion of CrudBase (which was what kicked the CI setup into high-gear)

0.9.6 - 2018-03-02

  • [BUG] Forgot a self

0.9.5 - 2018-03-01

  • [NEW] get_object was implemented for CrudBase

  • [FEAT] has_permission now supports an enum type

  • [NEW] kwargs is now used on CrudBase

0.9.3 - 2018-02-28

  • [BUG] Fix an issue with binary file opening

  • [BUG] Utilize the correct exception with CRUD Base

0.9.2 - 2018-02-27

[CHANGE] Add in fuzzy testing for nullable ORM columns

0.9.1 - 2018-02-24

  • [BUG] Add the Falcon-Multipart Requirement

0.9.0 - 2018-02-23

  • [FEAT] Added Support to Downloading

  • [CHANGE] Renamed contrib.upload to contrib.storage

0.8.0 - 2018-02-23

  • [NEW] Add a Basic File Storage System (7c0bd4b)

  • [FEAT] CRUD resources now support **kwargs (1d4543)

0.7.0 - 2018-02-15

** [NEW] Added a CRUD Base Library ** [FEAT] Added a token generation method to the user ** [CHANGE] Cleaned up the REPR for permissions entity ** [CHANGE] Only close the SA session when failure occurs ** [FIX] auth_required accepts the proper arguments

0.6.1 - 2017-12-15

** [BUG] Add a req/resp to failed action functions ** [FEAT] Make ParseJWTMiddleware available at the middleware level ** [BUG] Allow setting of the get_id function

0.6.0 - 2017-12-15

** [NEW] Added a global SQLAlchemy Scoped Session to facilitate testing and other items ** [CHANGE] AuthRequiredMiddleware was split into two and there is a new ParseJWTMiddleware ** [BUG] Cleaned up a number of issues with the way SQLAlchemy ORM is being used

0.5.0 - 2017-12-02

+* [NEW] A brand-spanking new permission system with users, groups, and permissions +* [FEAT] Post-login redirect is now configurable. +* [FEAT] Create a simple redirection resource +* [FEAT] Jinja2 Middleware can take application globals to inject into the template +* [FEAT] Added a mixin for testing entities

0.4.2 - 2017-10-25
  • Enable Auth Middleware to always run. Helpful when then entire application is an API that requires authentication.

0.4.1 - 2017-10-19
  • Fix issue with importing Marshmallow Middleware

0.4.0 - 2017-10-14
  • Added Marshmallow Middleware for auto schema loading (655cf76)

0.3.1 - 2017-10-09
  • [FEAT] Add a number of helpful SQLAlchemy Features

0.3.0 - 2017-10-07
  • [FEAT] Setup SQLAlchemy

  • [BUG] Install cryptography for JWT’s with RSA algo

0.2.1 - 2017-10-07
  • Fix issue when using HS256 tokens for authentication

0.2.0 - 2017-09-23
  • Release the Package and update the source location

0.1.0 - 2017-08-22
  • Added StaticsMiddleware

Supported by

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