This list is not a promise. :-) We need to think about each proposed feature and how it'll be be implemented to have the better user experience using the library. Just a brainstorm. The ideas are divided in the categories below:
- [must-have] Create a command-line tool (called
outputty
) so some users don't need to create a Python script to use the software. This command-line interface should be able to get data from stdin or any "read" plugin available and export data to stdout (CSV or TXT) or using any "write" plugin available. It won't be interactive and it must have a man page. The development is in process at branchfeature/cli
.
- [must-have] Add doc strings to
Table
and its methods and all plugins. - Create
Table.__repr__
? If yes, accept creating an object with representation generated by__repr__
. - Create
Table.map
? - What to do with column names received by methods/plugins that are not
unicode? Always convert it (so
self.headers
will be always unicode)? - Accept any sequence/iterable/map on append instead of only
list
,tuple
anddict
? - Create some way to filter input columns in all plugins.
- Create some way to filter output columns in all plugins.
- Encode and decode strings with the default system encoding instead of UTF-8 (?)
- Replace
to_list_of_dicts
byclass Row
- Import from a
dict
/Counter
(maybe a static methodTable.from_dict
) - Some way to import data directly instead of instatiating and them calling
.read
(static methodTable.from_plugin-name
) - Some way to consolidate
Table
data, like group by (filters?)
- Create a better documentation than
README.markdown
(maybe using something likecreate-readme.py
+ sphinxdoc) - Add some "use cases" in
README.markdown
- Create documentation about concept of plugins (for developers)
- Get a better grade on PyPants.
- mysql.read/write: work started at branch
feature/mysql
- html.read (write is done)
- dbf.read/write. See dbf, dbfpy and this code snippet
- xls.read/write. See xlrd and xlwt
- LaTeX.write (?)
- text: Create some way to print colors and backgrounds (links:
- ANSI escape code and
library fabulous). Create
plugin_text.read
?
- Plugin
text
: - Should be able to change the space character and line feed (like
pipe
,plus
etc.). - Change the name of special characters (
pipe
,plus
anddash
) to something more intuitive. - Create some kind of 'templates' with pre-defined
pipe
,plus
,dash
etc. See sqlite's .mode column. - The
dash
inside the line that split the table into header and data should be different from the "normaldash
". All these "characters" should be generalised.
- Should be able to change the space character and line feed (like
- Plugin
- Plugin
csv
: - Create some way to change CSV dialect.
- Plugin