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
About Indenti
==================

Indenti is a Python package with tools that make string building,
writing indented text, and generating markup easier and prettier.

Indenti contains the following modules:

- IndentWriter
- XmlWriter
- StringBuilder

Installation
------------

Installation is simple. With python3-pip, do the following:

$ sudo pip install -e .

About IndentWriter
==================

IndentWriter is a module that simplifies the task of indenting output.
It keeps track of indent levels and provides a pythonic way of
incrementing and decrementing the indent level using the optional 'with'
syntax. By default, IndentWriter writes to sys.stdout, but can be told
to write to any other File object at construction.

Example Usage, IndentWriter(using 'with'):

::

from indenti import IndentWriter

iw = IndentWriter()

iw('def hello():')
with iw:
iw('print "Hello!"')

Example Usage, IndentWriter(without 'with'):

::

from indenti import IndentWriter

iw = IndentWriter()
iw('def hello():')
iw.indent()
iw('print "Hello!"')

Example Usage, IndentStringBuilder:

::

from indenti import IndentStringBuilder

sb = IndentStringBuilder()

sb('def hello():')
with sb:
sb('print "Hello!"')

print str(sb)

About XmlFactory
================

Via XmlFactory, any node name can be specified as an attribute, which
returns a functor to create a new node.

Example Usage, XmlWriter(A CherryPy HTML Servlet):

::

import cherrypy
from indenti import XmlFactory

class HelloWorld:
def index(self):
xf = XmlFactory()

xml = xf.html(
xf.head(
xf.title("Hello, world!")),
xf.body(
xf.h1("Hello, CherryPy!", style='color: red; font-size: 20px')))

return str(xml)

index.exposed = True

NOTE:
~~~~~

The word 'class' is a python keyword, so we can't use it as a keyword
argument to create an attribute name. In this case, we pass a
dictionary, which is interpreted as a map of attributes for the node.
You can always do this instead of using keyword arguments, if this is
your preference.

Example Usage, XmlWriter(Using attributes/nodes that conflict with
python keywords):

::

import cherrypy
from indenti import XmlFactory

class HelloWorld:
def index(self):
xf = XmlFactory()

xml = xf.html(
xf.head(
xf.title("Hello, world!")),
xf.body(
xf.h1("Hello, CherryPy!", {'class': 'header')))

return str(xml)

index.exposed = True

Change Log
----------

Version 1.1: October 18th, 2016
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Added support for unindented blocks in HTML mode (for textarea)
- Fixed escaping of XML attributes

Version 1.2: November 1st, 2016
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Make parents respect the NOINDENT status of their children in HTML mode.
Release History

Release History

1.3

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

1.2.1

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

1.2

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

1.1

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

1.0

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
indenti-1.3.tar.gz (7.3 kB) Copy SHA256 Checksum SHA256 Source Nov 2, 2016

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