Simple interface for tabulated data and .csv files
Project description
What is tabler?
The tabler package provides the Table class which is intended to make the creation and maniplulation of tabulated data intuitive.
- It can:
Open various spreadsheet files from a relative path, absolute path or url.
Update text in cells.
Write files in various formats.
- Compatible formats:
.csv
Open Spreadsheet Format .ods
Microsoft Excel .xlsx
HTML (Write only)
Other filetypes can be added by subclassing the BaseTableType class.
Quick Start
Creating a Table (Basic)
Import the Tabler class from the tabler package and instanciate it with a header and data:
from tabler import Table table = Tabler( header=['SKU', 'Item Title', 'Price'], data=[[009, 'Item 1', 5.00], [010, 'Item 2', 9.99]])
Or pass the path to a file to open:
from tabler import Table Table('path/to/some/file.csv')
- This will recognise filetypes with the following extensions:
.csv (UTF-8 encoded and comma delimited).
.txt (UTF-8 encoded and comma delimited).
.xlsx
.ods
To explicitly open a file of a specifict type a Table Type object must be provided.:
from tabler import Table from tabler.tabletypes import CSV Table('path/to/some/file.csv', table_type=CSV(delimiter='\t'))
These are subclasses of BaseTableType and allow the method of reading the file to be customised.
Reading a Table (Basic)
At its base, Tabler is a two dimensional list. Therefore the simplest way to access a cell is by providing two indexes:
first_cell = table[0][0]
Rows can be indexed by row number (zero based) Tabler will always treat the first line of any supplied data as column headers. This means that a column can be specified by index number or title:
first_item_title = table[0]["Item Title"]
Editing a Table (Basic)
A cell can be edited using the equals = operator:
table[2]["Item Title"] = 'USB Hub'
Cell content can be string, int or float.
Loading Data into a Table (Basic)
Data can be loaded into an empty Tabler object by passing a list of rows in the form of lists of cell data using the Tabler().load_from_array(data, header) method. A list of column headers must be passed as the second argument:
header = ["SKU", "Item Title", "Price"] data = [ ["001", "USB Hub", 7.00], ["002", "Raspberry Pi 3", 29.99], ["003", Arduino Uno", 20.00] ] table = Tabler() table.load_from_array(data, header)
Writing a Table to a File (Basic)
Writing a file is similar to reading a file. Table Types are used in the same way to manage writing files:
table.write('path/to/save.csv', table_type=CSV(delimiter='\t')
The table type will be set automatically for reconised file extensions if not explicitly set.
Contact
All comments and queries can be sent to Luke Shiner at luke@lukeshiner.com
License
Distributed with MIT License.
Credits
Created by Luke Shiner (luke@lukeshiner.com)
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
File details
Details for the file tabler-2.1.1.tar.gz
.
File metadata
- Download URL: tabler-2.1.1.tar.gz
- Upload date:
- Size: 23.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ddeeff8c4fa9068fd9d6ce6238a0a19bea8af88415846eb387c95246b1d02db |
|
MD5 | 8ba1d99836d4c11435e58347f17a4633 |
|
BLAKE2b-256 | 30783de63f40c142470af281c1b775f8803cdaee293819d324652307293014b1 |
File details
Details for the file tabler-2.1.1-py3-none-any.whl
.
File metadata
- Download URL: tabler-2.1.1-py3-none-any.whl
- Upload date:
- Size: 26.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd96656d12205f3e463e3a9c0e6ac17208f28af958cc93608f6adabe562e2b24 |
|
MD5 | d4016e6eec8a4836a6ab7fef33cb7a30 |
|
BLAKE2b-256 | ebea8fc9552b074bfc2e73e7177b373d3cdb941ec38d11dc46f41a636dcad5cd |