candango / firenado

Web Framework that extends Tornado Web organizing the application, and adding extra features.
Apache License 2.0
12 stars 9 forks source link
firenado framework python tornado

Firenado Framework

Latest PyPI version Number of PyPI downloads Build Status GitHub license

Introduction

Firenado is a Python web framework that encapsulates and extends Tornado organizing the application in components also adding a server side session layer, yaml based configuration files as other features common that will help developers building web applications and services.

Firenado is a web framework that extends the original Tornado Web framework adding new features like loose couple components, server side session layer, yaml based configuration files and more.

Installation

Installing Firenado will only force the installation of pyyaml, Tornado and six. We call it the basic installation:

pip install firenado

It is possible to install extra packages as redis-py, sqlalchemy and pexpect.

Installing only redis-py:

pip install firenado[redis]

Installing only redis-py:

pip install firenado[sqlalchemy pexpect]

Installing only redis (redis-py, hiredis):

pip install firenado[sqlalchemy pexpect]

Installing redis and schedule(croniter):

pip install firenado[redis schedule]

Complete installation(what it is being the case, everytime):

pip install firenado[all]

In the future, the installation logic will be inverted. Redis and pexpect will be added by default, and disabling them using optional parameters.

The sqlalchemy and schedule(croniter) optionals will remain as is.

With that change if you want just add schedule to the redis and pexpect:

pip install firenado[schedule]

Maybe you want an agent with scheduled features and no redis:

pip install firenado[schedule noredis]

Or don't need ProcessLaucher but sqlalchemy support:

pip install firenado[sqlalchemy nopexpect]

See: #401

Usage

Creating and running a new application:

firenado project init helloworld
cd helloworld
firenado app run

An application will be created with the redis based session engine and a redis data source linked to the session.

Firenado won't install redis-py so it is necessary to inform the extra requirement parameter or install it separately. It is possible to change the session to a file based engine or disable the session engine completely.

In order to change the session type to file go to helloworld/conf/firenado.yml and change the session definition to:

# Session types could be:
# file or redis.
session:
  type: file
  enabled: true
  # Redis session handler configuration
  #data:
  #  source: session
  # File session handler related configuration
  path: /tmp

If your helloworld project isn't located in the python path just go helloworld/conf/firenado.yml and changed it to:

app:
  component: helloworld
  data:
    sources:
        # Set here references from sources defined on data.sources
        - session
  pythonpath: ..
  port: 8888

Support

Firenado is one of Candango Open Source Group initiatives. It is available under the Apache License, Version 2.0 .

This web site and all documentation is licensed under Creative Commons 3.0.