Metadata-Version: 2.4
Name: outfancy
Version: 0.9.2
Summary: Python3.11+ library to print tables and line charts in Terminal.
Author-email: "Carlos A. Planchón" <carlosandresplanchonprestes@gmail.com>
License-Expression: MIT
Project-URL: Repository, https://github.com/carlosplanchon/outfancy.git
Keywords: rendering,graphical,terminal,chart,graph
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# outfancy

*Table printing and Line plotting in Terminal*

<img src='https://raw.githubusercontent.com/carlosplanchon/outfancy/refs/heads/master/examples/chart_auto.png'>

## what is it?
Outfancy is a Python 3.11+ library for printing tables in the terminal. It’s a quick way to visualize data when you don’t have a GUI, and it integrates easily into your programs. You can install it with pip and use it anywhere.

This was the first library I ever built—when I was 16 :). It’s been modernized to support modern Python versions, fix bugs, and improve performance, but the original style is still there: raw, exploratory teenage code.

## installation
### install with pip
```
pip install outfancy
```

## features

- Quick printing of tables.
- LineChart printing with linear interpolation.
- customize the separator used, width, priority of printing for each column.
- rearrange the columns in real time.
- Add labels above the table (can be autogenerated).
- Do Oneline printing, useful for real-time applications (report in screen function).
- Add colors to the field of the tables.

### DeepWiki Docs: [https://deepwiki.com/carlosplanchon/outfancy](https://deepwiki.com/carlosplanchon/outfancy)

## usage
### In the interpreter
# Table.
```
import outfancy.table
table = outfancy.table.Table()
dataset = [(1, 'Marie'), (2, 'Joseph')]
print(table.render(dataset))
```

# Chart.
```
import outfancy.chart

from math import sin
line_chart = outfancy.chart.LineChart()

dataset = [(i, sin(i)) for i in range(10)]
line_chart.plot(dataset)
print(line_chart.render(color=True))
```

## To do (Colaboration is welcome)
- Translate code to english. (Translated) (the translation need revision from a native english speaker (I speak spanish).
- Improve y_interpolation function on outfancy.chart.LineChart
  Maybe add more kinds of charts on outfancy.chart.
  Maybe on outfancy.table:
     - Checking system on width parameter.
     - Option to cancel the automatical checking of width parameter.

## Others
- https://gist.github.com/carlosplanchon/986c7c11a932a7206bb3 (Funny demo with colors)

## Experimental (Line Chart)
<img src='https://raw.githubusercontent.com/carlosplanchon/outfancy/refs/heads/master/examples/sin_little_2.png'>

