A package used to generate basic markdown tables from a list of dicts
Project description
markdownTable
A class used to generate padded tables in a markdown code block. It also works with pandas dataframes.
Installation
using pip:
pip install py-markdown-table
importing:
from markdownTable import markdownTable
Usage
markdownTable(data).getMarkdown()
or
markdownTable(data).setParams(...).getMarkdown()
Parameters
The library supports has the following parameters:
markdownTable(data):
data (list): List of dicts with uniform {key : value} pairs used to generate the header
markdownTable(data).setParams(...):
row_sep (str): Row separation strategy with the following options:
'always' Separate each row
'topbottom' Insert row separator above header and below the last row
'markdown' Single header/body separator formated as valid markdown
'None' No row separation
padding_width (int): Extra padding to all table cells
padding_weight (str): Padding strategy. The following values are accepted:
'left' Aligns items to the end of the cell
'right' Aligns items to the beginning of the cell
'centerleft' Centers items, where extra padding is allocated to the beginning of the cell
'centerright' Centers items, where extra padding is allocated to the end of the cell
padding_char (str): Custom single character to fill extra and normal padding with. Default is a blank space.
newline_char (str): Custom character to be used for indicating a newline. Default is '\n'
float_rounding (int): Round down float values to a number decimal places.
Default is 2, but can also be set to 'None' to not round down.
quote(bool): If true (default) surrounds the table with markdown block code quote
Using it with a dataframe
import pandas as pd
from markdownTable import markdownTable
file = 'sample.csv'
df = pd.read_csv(file)
markdownTable(df.to_dict(orient='records')).getMarkdown()
Examples
markdownTable(data).setParams(row_sep = 'always').getMarkdown()
+----------------------------------------+
| title | time | date |seats|
+------------+-----------+---------+-----+
|Vrij Zwemmen|21:30-23:00|Wed 09.12|24/24|
+------------+-----------+---------+-----+
|Vrij Zwemmen|12:00-13:00|Thu 10.12|18/18|
+------------+-----------+---------+-----+
|Vrij zwemmen| 7:30-8:30 |Fri 11.12|18/18|
+------------+-----------+---------+-----+
|Vrij Zwemmen|13:15-14:15|Sat 12.12|18/18|
+----------------------------------------+
markdownTable(data).setParams(row_sep = 'topbottom').getMarkdown()
+----------------------------------------+
| title | time | date |seats|
|Vrij Zwemmen|21:30-23:00|Wed 09.12|24/24|
|Vrij Zwemmen|12:00-13:00|Thu 10.12|18/18|
|Vrij zwemmen| 7:30-8:30 |Fri 11.12|18/18|
|Vrij Zwemmen|13:15-14:15|Sat 12.12|18/18|
+----------------------------------------+
markdownTable(data).setParams(row_sep = 'markdown').getMarkdown()
| title | time | date |seats|
|------------|-----------|---------|-----|
|Vrij Zwemmen|21:30-23:00|Wed 09.12|24/24|
|Vrij Zwemmen|12:00-13:00|Thu 10.12|18/18|
|Vrij zwemmen| 7:30-8:30 |Fri 11.12|18/18|
|Vrij Zwemmen|13:15-14:15|Sat 12.12|18/18|
markdownTable(data).setParams(row_sep = 'markdown', quote = False).getMarkdown()
title | time | date | seats |
---|---|---|---|
Vrij Zwemmen | 21:30-23:00 | Wed 09.12 | 24/24 |
Vrij Zwemmen | 12:00-13:00 | Thu 10.12 | 18/18 |
Vrij zwemmen | 7:30-8:30 | Fri 11.12 | 18/18 |
Vrij Zwemmen | 13:15-14:15 | Sat 12.12 | 18/18 |
markdownTable(data).setParams(row_sep = 'topbottom', padding_width = 5, padding_weight='left').getMarkdown()
+------------------------------------------------------------+
| title| time| date| seats|
| Vrij Zwemmen| 21:30-23:00| Wed 09.12| 24/24|
| Vrij Zwemmen| 12:00-13:00| Thu 10.12| 18/18|
| Vrij zwemmen| 7:30-8:30| Fri 11.12| 18/18|
| Vrij Zwemmen| 13:15-14:15| Sat 12.12| 18/18|
+------------------------------------------------------------+
markdownTable(data).setParams(row_sep = 'topbottom', padding_width = 5, padding_weight = 'centerright').getMarkdown()
+------------------------------------------------------------+
| title | time | date | seats |
| Vrij Zwemmen | 21:30-23:00 | Wed 09.12 | 24/24 |
| Vrij Zwemmen | 12:00-13:00 | Thu 10.12 | 18/18 |
| Vrij zwemmen | 7:30-8:30 | Fri 11.12 | 18/18 |
| Vrij Zwemmen | 13:15-14:15 | Sat 12.12 | 18/18 |
+------------------------------------------------------------+
mt = markdownTable(data).setParams(row_sep = 'always', padding_width = 5, padding_weight='centerright', padding_char = '.').getMarkdown()
+------------------------------------------------------------+
|......title......|......time......|.....date.....|..seats...|
+-----------------+----------------+--------------+----------+
|..Vrij Zwemmen...|..21:30-23:00...|..Wed 09.12...|..24/24...|
+-----------------+----------------+--------------+----------+
|..Vrij Zwemmen...|..12:00-13:00...|..Thu 10.12...|..18/18...|
+-----------------+----------------+--------------+----------+
|..Vrij zwemmen...|...7:30-8:30....|..Fri 11.12...|..18/18...|
+-----------------+----------------+--------------+----------+
|..Vrij Zwemmen...|..13:15-14:15...|..Sat 12.12...|..18/18...|
+------------------------------------------------------------+
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for py_markdown_table-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39927cd4b7d1e22e6e7c5c881851310df1ee882be82da90dbf8aae2ff95d22b6 |
|
MD5 | 9327b1387503af75f19742eb56b8ca22 |
|
BLAKE2b-256 | edfd98cfcdbb40276ba3e5c39d149505a3aace286b0fd0a8dd8f52214e5efaaa |