Format a simple (i.e. not nested) list into aligned columns.
Project description
Return a list of strings as a compact set of columns arranged
horizontally or vertically.
For example, for a line width of 4 characters (arranged vertically):
['1', '2,', '3', '4'] => '1 3\n2 4\n'
or arranged horizontally:
['1', '2,', '3', '4'] => '1 2\n3 4\n'
Each column is only as wide as necessary. By default, columns are
separated by two spaces - one was not legible enough. Set "colsep"
to adjust the string separate columns. Set `displaywidth' to set
the line width.
Normally, consecutive items go down from the top to bottom from
the left-most column to the right-most. If +arrange_vertical+ is
set false, consecutive items will go across, left to right, top to
bottom.
Adapted from the routine of the same name inside cmd.py
0.3.5
- Reinstate ability to run on older Pythons. In particular Python
2.4.6 and 2.5.6 now. I suppose other version in between work too.
- Add opts hash to bundle the growing options old and new:
* arrange_array
* arrange_vertical
* arrange_horizontal
* array_prefix
* array_suffix
* colsep
* colfmt
* displaywidth
* lineprefix
* linesuffix
* ljust
- Fixes to make source tarball work. (Added test files properly)
0.3.4 01-03-13
- Make 3k tolerant. This means it no longer works for versions less
than Python 2.6.
0.3.3 10-28-10 -
- Work on packaging
- Remove pyflakes warnings
- Correct licensing information
0.3.2 03-08-09 - Ron Frankel -1 Release
- Relax restriction that array has to be string. Now is just something
we can call str() on each of the elements on.
- Correct bug in vertical alignment
- Add an optional initial line prefix string
0.3.1 01-10-09 - Sam Woodward Release
- Some small typos fixed.
0.3.0 01-05-09
- 0.2.0 had bad bugs - don't use.
Allow specifying right justification as well as left justification
0.2.0 12-31-08
- Add ability to run columns vertically
horizontally or vertically.
For example, for a line width of 4 characters (arranged vertically):
['1', '2,', '3', '4'] => '1 3\n2 4\n'
or arranged horizontally:
['1', '2,', '3', '4'] => '1 2\n3 4\n'
Each column is only as wide as necessary. By default, columns are
separated by two spaces - one was not legible enough. Set "colsep"
to adjust the string separate columns. Set `displaywidth' to set
the line width.
Normally, consecutive items go down from the top to bottom from
the left-most column to the right-most. If +arrange_vertical+ is
set false, consecutive items will go across, left to right, top to
bottom.
Adapted from the routine of the same name inside cmd.py
0.3.5
- Reinstate ability to run on older Pythons. In particular Python
2.4.6 and 2.5.6 now. I suppose other version in between work too.
- Add opts hash to bundle the growing options old and new:
* arrange_array
* arrange_vertical
* arrange_horizontal
* array_prefix
* array_suffix
* colsep
* colfmt
* displaywidth
* lineprefix
* linesuffix
* ljust
- Fixes to make source tarball work. (Added test files properly)
0.3.4 01-03-13
- Make 3k tolerant. This means it no longer works for versions less
than Python 2.6.
0.3.3 10-28-10 -
- Work on packaging
- Remove pyflakes warnings
- Correct licensing information
0.3.2 03-08-09 - Ron Frankel -1 Release
- Relax restriction that array has to be string. Now is just something
we can call str() on each of the elements on.
- Correct bug in vertical alignment
- Add an optional initial line prefix string
0.3.1 01-10-09 - Sam Woodward Release
- Some small typos fixed.
0.3.0 01-05-09
- 0.2.0 had bad bugs - don't use.
Allow specifying right justification as well as left justification
0.2.0 12-31-08
- Add ability to run columns vertically