Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

extensible pprint successor - python3 version

Project Description
Pretty
******

Python advanced pretty printer. This pretty printer is intended to
replace the old `pprint` python module which does not allow developers
to provide their own pretty print callbacks.

This module is based on ruby's `prettyprint.rb` library by `Tanaka Akira`.


Example Usage
=============

To directly print the representation of an object use `pprint`::

from pretty import pprint
pprint(complex_object)

To get a string of the output use `pretty`::

from pretty import pretty
string = pretty(complex_object)


Extending
=========

The pretty library allows developers to add pretty printing rules for their
own objects. This process is straightforward. All you have to do is to
add a `__pretty__` method to your object and call the methods on the
pretty printer passed::

class MyObject(object):

def __pretty__(self, p, cycle):
...

Here the example implementation of a `__pretty__` method for a list
subclass::

class MyList(list):

def __pretty__(self, p, cycle):
if cycle:
p.text('MyList(...)')
else:
with p.group(8, 'MyList([', '])'):
for idx, item in enumerate(self):
if idx:
p.text(',')
p.breakable()
p.pretty(item)

The `cycle` parameter is `True` if pretty detected a cycle. You *have* to
react to that or the result is an infinite loop. `p.text()` just adds
non breaking text to the output, `p.breakable()` either adds a whitespace
or breaks here. If you pass it an argument it's used instead of the
default space. `p.pretty` prettyprints another object using the pretty print
method.

The first parameter to the `group` function specifies the extra indentation
of the next line. The second and the third parameter are the opening and
closing strings that will be printed before and after the group.
In this example the next item will either be not
breaked (if the items are short enough) or aligned with the right edge of
the opening bracked of `MyList`.

:copyright: 2007 by Armin Ronacher.
:copyright: 2014 by Mark Grandi - python 3 port
:license: BSD License.
Release History

Release History

This version
History Node

0.2.3

History Node

0.2.2

History Node

0.2.1

History Node

0.2

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pretty-py3-0.2.3.tar.gz (6.1 kB) Copy SHA256 Checksum SHA256 Source Mar 5, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS 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