horseman 0.6

Creator: bradpython12

Last updated:

Add to Cart

Description:

horseman 0.6

Horseman is a toolkit to build WSGI applications.
It is heavily tested and uses Cython powered libraries.
The philosophy is : “you pay for what you eat”.
The code is very minimal and tries to provide key components to build
upon and create a vastly more complex application.
It conforms to the WSGI standards and allows you to use WSGI middlewares.

Example
Below is an example of a barebone API, handling a GET request on ‘/’
and returning a JSON response.
import logging
from bjoern import run
from horseman.meta import SentryNode, Overhead, APIView
from horseman.response import Response


class Request(Overhead):

data = None

def __init__(self, environ):
self.environ = environ

def extract(self):
self.data = 'somedata'


class View(APIView):

def GET(self, overhead):
return Response.to_json(200, {"Result": "OK"})


VIEWS = {
"/": View()
}


class RootNode(SentryNode):

def resolve(self, path_info, environ):
if view := VIEWS.get(path_info):
request = Request(environ)
return view(request)

def handle_exception(self, exc_info, environ):
logging.error(exc_info)


run(
host="0.0.0.0",
port=8080,
reuse_port=True,
wsgi_app=RootNode(),
)


CHANGES

0.6 (2022-08-25)
Major update.


Simplified the parsing Data class by dropping the attempts at
mimicking MultiDict. Parsing no longer separate files from form
data and values are stored as a list of tuples containing (name, value).
FormData, TypeCastingDict and Query classes were removed.




0.5 (2022-05-31)


Multipart parser no longer adds empty values to the form multidict.




0.4 (2022-04-06)


Fixed FormData.to_dict to handle empty or false values.




0.3 (2022-04-05)


PATH_INFO is no longer expected to be there in the environ.
Some WSGI Servers do NOT provide it if empty.
Added path normalization in the Node __call__ to avoid malformed
path info.




0.2 (2021-10-08)


First upload on pypi. Stable 0.2.




0.1 (2021-10-08)


Initial release.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.