Skip to content
This repository has been archived by the owner on Jan 28, 2022. It is now read-only.

Latest commit

 

History

History
89 lines (70 loc) · 3.39 KB

WISHLIST.rst

File metadata and controls

89 lines (70 loc) · 3.39 KB

Wish List

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:

Features

  • [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 branch feature/cli.

API

  • [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 and dict?
  • 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 by class Row
  • Import from a dict/Counter (maybe a static method Table.from_dict)
  • Some way to import data directly instead of instatiating and them calling .read (static method Table.from_plugin-name)
  • Some way to consolidate Table data, like group by (filters?)

Documentation

  • Create a better documentation than README.markdown (maybe using something like create-readme.py + sphinxdoc)
  • Add some "use cases" in README.markdown
  • Create documentation about concept of plugins (for developers)

Plugins

  • 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?

Templates

  • 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 and dash) 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 "normal dash". All these "characters" should be generalised.
  • Plugin csv:
    • Create some way to change CSV dialect.