summaryrefslogtreecommitdiffstats
path: root/Demo/parser
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>1997-04-16 04:47:57 (GMT)
committerFred Drake <fdrake@acm.org>1997-04-16 04:47:57 (GMT)
commitb2c02de9cb9df1fbd9764ce51b69ba31fb5c9570 (patch)
tree73abcbd403d461da20d36d7d3f4df1be69550c3c /Demo/parser
parent0c5e049c751c45aca40e26e3f1f76597798b86d9 (diff)
downloadcpython-b2c02de9cb9df1fbd9764ce51b69ba31fb5c9570.zip
cpython-b2c02de9cb9df1fbd9764ce51b69ba31fb5c9570.tar.gz
cpython-b2c02de9cb9df1fbd9764ce51b69ba31fb5c9570.tar.bz2
Removed pprint.py.
Removed pprint.py from the README; it's now in the standard lib.
Diffstat (limited to 'Demo/parser')
-rw-r--r--Demo/parser/README2
-rw-r--r--Demo/parser/pprint.py135
2 files changed, 0 insertions, 137 deletions
diff --git a/Demo/parser/README b/Demo/parser/README
index 3d775aa..ec45ca9 100644
--- a/Demo/parser/README
+++ b/Demo/parser/README
@@ -20,8 +20,6 @@ Files:
handle nested constructs easily using the functions
and classes in example.py.
- pprint.py -- function to pretty-print Python values.
-
test_parser.py program to put the parser module through it's paces.
parser.tex -- LaTex driver file for formatting the parser module
diff --git a/Demo/parser/pprint.py b/Demo/parser/pprint.py
deleted file mode 100644
index 87a0cfd..0000000
--- a/Demo/parser/pprint.py
+++ /dev/null
@@ -1,135 +0,0 @@
-# pprint.py
-#
-# Author: Fred L. Drake, Jr.
-# fdrake@cnri.reston.va.us, fdrake@intr.net
-#
-# This is a simple little module I wrote to make life easier. I didn't
-# see anything quite like it in the library, though I may have overlooked
-# something. I wrote this when I was trying to read some heavily nested
-# tuples with fairly non-descriptive content. This is modelled very much
-# after Lisp/Scheme - style pretty-printing of lists. If you find it
-# useful, thank small children who sleep at night.
-
-"""Support to pretty-print lists, tuples, & dictionaries recursively.
-Very simple, but useful, especially in debugging data structures.
-
-Constants
----------
-
-INDENT_PER_LEVEL
- Amount of indentation to use for each new recursive level. The
- default is 1. This must be a non-negative integer, and may be set
- by the caller before calling pprint().
-
-MAX_WIDTH
- Maximum width of the display. This is only used if the
- representation *can* be kept less than MAX_WIDTH characters wide.
- May be set by the user before calling pprint() if needed.
-
-"""
-
-INDENT_PER_LEVEL = 1
-
-MAX_WIDTH = 80
-
-from types import DictType, ListType, TupleType
-
-
-def pformat(seq):
- """Format a Python object into a pretty-printed representation.
-
- The representation is returned with no trailing newline.
-
- """
- import StringIO
- sio = StringIO.StringIO()
- pprint(seq, stream=sio)
- str = sio.getvalue()
- if str and str[-1] == '\n':
- str = str[:-1]
- return str
-
-
-def pprint(seq, stream=None, indent=0, allowance=0):
- """Pretty-print a list, tuple, or dictionary.
-
- seq
- List, tuple, or dictionary object to be pretty-printed. Other
- object types are permitted by are not specially interpreted.
-
- stream
- Output stream. If not provided, `sys.stdout' is used. This
- parameter must support the `write()' method with a single
- parameter, which will always be a string. It may be a
- `StringIO.StringIO' object if the result is needed as a
- string.
-
- Indentation is done according to `INDENT_PER_LEVEL', which may be
- set to any non-negative integer before calling this function. The
- output written on the stream is a perfectly valid representation
- of the Python object passed in, with indentation to assist
- human-readable interpretation. The output can be used as input
- without error, given readable representations of all elements are
- available via `repr()'. Output is restricted to `MAX_WIDTH'
- columns where possible.
-
- """
- if stream is None:
- import sys
- stream = sys.stdout
-
- rep = `seq`
- typ = type(seq)
- sepLines = len(rep) > (MAX_WIDTH - 1 - indent - allowance)
-
- if sepLines and (typ is ListType or typ is TupleType):
- # Pretty-print the sequence.
- stream.write(((typ is ListType) and '[') or '(')
-
- length = len(seq)
- if length:
- indent = indent + INDENT_PER_LEVEL
- pprint(seq[0], stream, indent, allowance + 1)
-
- if len(seq) > 1:
- for ent in seq[1:]:
- stream.write(',\n' + ' '*indent)
- pprint(ent, stream, indent, allowance + 1)
-
- indent = indent - INDENT_PER_LEVEL
-
- stream.write(((typ is ListType) and ']') or ')')
-
- elif typ is DictType and sepLines:
- stream.write('{')
-
- length = len(seq)
- if length:
- indent = indent + INDENT_PER_LEVEL
- items = seq.items()
- items.sort()
- key, ent = items[0]
- rep = `key` + ': '
- stream.write(rep)
- pprint(ent, stream, indent + len(rep), allowance + 1)
-
- if len(items) > 1:
- for key, ent in items[1:]:
- rep = `key` + ': '
- stream.write(',\n' + ' '*indent + rep)
- pprint(ent, stream, indent + len(rep), allowance + 1)
-
- indent = indent - INDENT_PER_LEVEL
-
- stream.write('}')
-
- else:
- stream.write(rep)
-
- # Terminate the 'print' if we're not a recursive invocation.
- if not indent:
- stream.write('\n')
-
-
-#
-# end of file