Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/turicas/outputty
NOT MAINTAINED ANYMORE. SEE "rows"
https://github.com/turicas/outputty
Last synced: 13 days ago
JSON representation
NOT MAINTAINED ANYMORE. SEE "rows"
- Host: GitHub
- URL: https://github.com/turicas/outputty
- Owner: turicas
- License: gpl-3.0
- Archived: true
- Created: 2011-11-01T01:35:25.000Z (about 13 years ago)
- Default Branch: develop
- Last Pushed: 2016-02-02T20:51:38.000Z (almost 9 years ago)
- Last Synced: 2024-10-28T13:36:39.713Z (16 days ago)
- Language: Python
- Homepage: https://github.com/turicas/rows
- Size: 417 KB
- Stars: 37
- Watchers: 8
- Forks: 10
- Open Issues: 8
-
Metadata Files:
- Readme: README-template.rst
- Changelog: CHANGELOG.rst
- License: LICENSE
Awesome Lists containing this project
README
outputty
========{{INTRO}}
Installation
------------As simple as executing::
pip install outputty
Note: as ``pip`` tries to compile everything and ``outputty`` depends on
``MySQL-Python`` package (which needs compilation), you need to have
libmysqlclient's headers, compilers and related stuff. To install it on
Debian/Ubuntu, just execute::apt-get install build-essential libmysqlclient-dev
Example
-------Code time!::
>>> from outputty import Table
>>> my_table = Table(headers=['name', 'age']) # headers are the columns
>>> my_table.append(('Álvaro Justen', 24)) # a row as tuple
>>> my_table.append({'name': 'Other User', 'age': 99}) # a row as dict
>>> print my_table # a text representation of Table
+---------------+-----+
| name | age |
+---------------+-----+
| Álvaro Justen | 24 |
| Other User | 99 |
+---------------+-----+>>> print 'First row:', my_table[0] # Table is indexable
First row: [u'\xc1lvaro Justen', 24]>>> print 'Sum of ages:', sum(my_table['age']) # you can get columns too
Sum of ages: 123>>> my_table.write('csv', 'my-table.csv') # CSV plugin will save its contents in a file
>>> # let's see what's in the file...
>>> print open('my-table.csv').read()
"name","age"
"Álvaro Justen","24"
"Other User","99">>> # let's use HTML plugin!
>>> print my_table.write('html') # without filename ``write`` will return a string
name
age
Álvaro Justen
24
Other User
99
``Table`` have **a lot** of other features. To learn more (by examples), read
`outputty tutorial `_
and see ``examples`` folder. Enjoy!New Features
------------Yes, there are a lot of features to add (it's just the begining). If you
want to contribute, please see our
`outputty wishlist `_.You can also use the `outputty Issue Tracking System on GitHub `_
to report bugs.Contributing
------------If you want to contribute to this project, please:
- Install dependencies for development running ``pip install -r requirements/development.txt``.
- Execute ``make test`` to run all tests -- please run **all tests** *before*
pushing.- To run just one test file execute:
``nosetests --with-coverage --cover-package outputty tests/test_your-test-file.py``
- Try to have a test-coverage of 100%.
- Use `Test-driven development `_.- Use `nvie's gitflow `_ - to learn, read
`A Successful Git branching model `_.- Create/update documentation (README/docstrings/man page)
- **Do NOT** edit ``README.rst`` and ``tutorial.rst``, edit
``README-template.rst`` or ``tutorial-template.rst`` instead and run
``make create-docs`` to create the new ``README.rst`` and
``tutorial.rst`` (before committing). The tutorial will be created based on
files in ``examples`` folder.New Plugins
~~~~~~~~~~~If you want to create a new plugin to import/export from/to some new
resource, please see files ``outputty/plugin_*.py`` as examples. They are so
simple, please follow these steps:- Create a file named ``outputty/plugin_name.py``, where ``name`` is the name of
your plugin.- Create ``read`` and/or ``write`` functions in this file. These functions receive
the ``Table`` object and optional parameters.- ``read``: should read data from the resource specified in parameters and put
this data in ``Table`` (using ``Table.append`` or ``Table.extend``).
- ``write``: should read data from ``Table`` (iterating over it, using slicing
etc.) and write this data to the resource specified in parameters.- Call your plugin executing ``my_table.write('name', optional_parameters...)``
or ``my_table.read('name', optional_parameters...)`` (where ``name`` is your
plugin's name) - when you execute it ``outputty`` will call
``outputty.plugin_name.read``/``outputty.plugin_name.write``.Encoding and Decoding
+++++++++++++++++++++Your plugin's ``read`` function **must** put all data inside in unicode and your
plugin's ``write`` function will receive a ``Table`` object with all data in
unicode (it should not change this). But if you need to decode/encode
before/after doing some actions in your plugin, you can use ``Table.decode()``
and ``Table.encode()``.Contributors
~~~~~~~~~~~~{{AUTHORS}}
Related Software
----------------- outputty-like:
- `tablib `_: format-agnostic tabular
dataset library.
- `PyTables `_: package for managing hierarchical
datasets and designed to efficiently and easily cope with extremely large
amounts of data.
- `csvstudio `_: Python tool to analyze
csv files.
- `csvsimple `_: a simple tool to
handle CSV data.
- `toolshed `_: less boiler-plate.
- `buzhug `_: a fast, pure-Python
database engine.- Data analysis:
- `pyf `_: framework and platform dedicated to large
data processing, mining, transforming, reporting and more.
- `pygrametl `_: Python framework which offers
commonly used functionality for development of Extract-Transform-Load
(ETL) processes.
- `etlpy `_ seems to be a dead project.
- `orange `_: data visualization and analysis for
novice and experts.
- `Ruffus `_: lightweight python module to run
computational pipelines.
- `webstore `_: web-api enabled datastore
backed onto sql databases- Command-line tools:
- `fabulous `_: library designed to
make the output of terminal applications look fabulous.
- `termcolor `_: ANSII Color
formatting for output in terminal.
- `clint `_: Python Command-line
Application Tools.- Other:
- `pyspread `_: non-traditional
spreadsheet application.