OreoWeb

A web framework built for faster AI powered web app development

Why Oreoweb

Oreoweb is a Python web framework. It is built on top of asyncio and implements the WSGI standard.

With Oreoweb, you can use asynchronous programming available in Python 3.6+ to build fast, scalable and real-time capable web APIs for AI development.

Oreoweb in steve jobs style " A web framework + Database + AI library". Oreoweb allows developers to build web apps powered by AI within a single python script without requirements of integrating 3rd party libraries.

Installation

$ pip install oreoweb

  • You will need Python 3.6 and above to use Oreoweb. You can get Python from python.org or via the package manager of your OS.

  • On Linux, due to a known limitation in httptools, you also need to install python-dev for your current version of Python, e.g. apt-get install python3.7-dev for Python 3.7.

Oreoweb CLI

You may also want to install Oreoweb CLI. It comes with useful command line tools to help with project generation and other common tasks.

pip install oreoweb-cli

Features of Oreoweb

Static Files

Place files in the static folder at the root location, and they will be available at the corresponding URL

Statics files location:

By default, static assets are served at the /static/ URL root and are searched for in a static/ directory relative to where the app is executed.

You can modify the static files directory using the following

Templates

The default folder for templates is templates. You can change it when initializing the main Oreoweb class:

Templates Examples

Custom Exception Handler

Sometimes, depending on the exception raised, you may want to do a certain action. For such cases, you can register an exception handler:

Custom Middleware

You can create custom middleware classes by inheriting from the oreoweb.middleware.Middleware class and override its two methods that are called before and after each request:

Inbuilt Deep learning integration

Intuitive APIs

Components

  • layers: Dense, Conv2D, ConvTranspose2D, RNN, MaxPool2D, Dropout, BatchNormalization

  • activation: ReLU, LeakyReLU, Sigmoid, Tanh, Softplus

  • losses: SoftmaxCrossEntropy, SigmoidCrossEntropy, MAE, MSE, Huber

  • optimizer: RAdam, Adam, SGD, Momentum, RMSProp, Adagrad, Adadelta

Inbuilt NoSql Database integration

Automl Integration(Coming Soon)

Templating Engine

There are two types of tags, blocks and variables.

Variables

Blocks

There are three types of blocks – if, each and call.

Loops

it references the current item in the iteration and it is scoped to this item's attributes. To access attributes of the parent context use ... For example:

Conditionals

Supported operators are: >, >=, <, <=, ==, !=. You can also use conditionals with things that evaluate to truth.

Callables

Callables can get passed positional or keyword arguments.

Last updated

Was this helpful?