This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description
Authors:Roman Mohr <roman@fenkhuber.at>
Version:0.5.1
Date:2014-06-14
Code:https://github.com/rmohr/static3

This software is a Python3 compatible fork of Luke Arnos library static.

The library is now Python3 compatible and Genshi support (the sucessor of kid) is added. On Python2 Genshi and/or kid can be used as template engine. On Python3 only Genshi is available.

This library provides an easy way to include static content in your WSGI applications. There is a convenience method for serving files located via pkg_resources. There are also facilities for serving mixed (static and dynamic) content using “magic” file handlers. Python builtin string substitution, kid and Genshi template support are provided and it is easy to roll your own handlers. Note that this distribution does not require kid or Genshi unless you want to use that type of template. Also provides a command of the same name as a convenience when you just want to share a little content over HTTP, ad hoc.

Installation and Usage

Latest release via PIP:

pip install static3

Installation via GitHub:

git clone https://github.com/rmohr/static3.git
cd static3
pip install .

Cling

Cling serves static content only. Just give it the base directory with your files you want to make accessible. You get a full WSGI app with an example as simple as that:

from static import Cling
from wsgiref.simple_server import make_server
my_app = Cling("/my/directory")
make_server("localhost", 9999, my_app).serve_forever()

Now you can access everything in the given directory via http://localhost:9999.

Shock

Shock has the same basic functionality like Cling but with Shock we can also have some templating fun. Shock comes with three templating backends. String substitution, kid and Genshi. The decision which backend to use is done by examining the extension of the file to serve. The file extensions are ‘stp’, ‘kid’ and ‘genshi’. So if you want to provide a file called ‘index.html’ via the kid backend, name your file ‘index.html.kid’. A short example might look like this:

from static import Shock, KidMagic
from wsgiref.simple_server import make_server
my_app = Shock("/my/directory", magics=[KidMagic(title="Hello World")])
make_server("localhost", 9999, my_app).serve_forever()

And the example ‘index.html.kid’:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:py="http://purl.org/kid/ns#"
  xml:lang="en">
  <head>
  </head>
  <body>
    <h1>$title</h1>
  </body>
</html>

A similar template ‘index.html.genshi’ for Genshi:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:py="http://genshi.edgewall.org/"
  xml:lang="en">
  <head>
  </head>
  <body>
    <h1>$title</h1>
  </body>
</html>

This simple application will replace the placeholder title with ‘Hello World’ in every provided file which ends in ‘.kid’. In this example it already is already obvious, that although different template engines can be used, they can only be used in a very static way. Never the less Shock is perfectly suitable for simple semi-static things like make the URL to your companies logo, or the company name variable.

Unicode Support

When using a template system in Python3 it might be necessary to explicitly set an encoding for the sites provided. This can be done via the encoding attribute of Shock:

from static import Shock
shock = Shock("/var/www/pub")
shock.encoding="latin-1"

When using Cling or Shock to serve static content the encoding need not to be set, as the content is just streamed through. If you have templates encoded in different formats, an instance of Shock needs to be instantiated for every codec used.

Release History

Release History

0.6.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
static3-jl-0.6.0.tar.gz (23.2 kB) Copy SHA256 Checksum SHA256 Source Aug 12, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting