Name | csvm JSON |
Version |
0.0.2
JSON |
| download |
home_page | |
Summary | |
upload_time | 2023-07-27 00:57:48 |
maintainer | |
docs_url | None |
author | |
requires_python | >=3.8 |
license | MIT License |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# CSVM
CSVM is a file format that allows you to save multiple tables, add comments, and include metadata for both tables and columns
## File format explanation
1. Transform a `.csv` into a `.csvm`
We start with a `.csv`
```csv
first_name,last_name,instrument
Syd,Barret,"guitar, vocals"
David,Gilmour,"guitar, vocals"
Roger,Waters,"bass, vocals"
Richard,Wright,"keyboards, vocals"
Nick,Mason,drums
```
To transform it into a `.csvm` you add **table attributes**. Tha available table attributes are:
- `[_columns_]` to define the column names
- `[_data_]` to define the tabular data
- `[_table_meta_.any_key.with_nested_keys]` to add table metadata
- `[_columns_meta_.any_key.with_nested_keys]` to add column metadata.
For now we add the attributes `_columns_` and `_data`
```
[_columns_]
first_name,last_name,instrument
[_data_]
Syd,Barret,"guitar, vocals"
David,Gilmour,"guitar, vocals"
Roger,Waters,"bass, vocals"
Richard,Wright,"keyboards, vocals"
Nick,Mason,drums
```
2. Add comments and blank lines
Every line that starts with a `#` is ignored when parsing the file
```
# Pink Floyd band members
[_columns_]
first_name,last_name,instrument
[_data_]
Syd,Barret,"guitar, vocals"
David,Gilmour,"guitar, vocals"
Roger,Waters,"bass, vocals"
Richard,Wright,"keyboards, vocals"
Nick,Mason,drums
```
3. Add table metadata
```
# Pink Floyd band members
[_table_meta_.reference]
"https://en.wikipedia.org/wiki/Pink_Floyd#Band_members"
[_columns_]
first_name,last_name,instrument
[_data_]
Syd,Barret,"guitar, vocals"
David,Gilmour,"guitar, vocals"
Roger,Waters,"bass, vocals"
Richard,Wright,"keyboards, vocals"
Nick,Mason,drums
```
4. Add column metadata
```
# Pink Floyd band members
[_table_meta_.reference]
"https://en.wikipedia.org/wiki/Pink_Floyd#Band_members"
[_column_meta_.unique]
true,true,false
[_columns_]
first_name,last_name,instrument
[_data_]
Syd,Barret,"guitar, vocals"
David,Gilmour,"guitar, vocals"
Roger,Waters,"bass, vocals"
Richard,Wright,"keyboards, vocals"
Nick,Mason,drums
```
5. Save more than one table
If you want to save more than one table you must use a **namespace** for each table.
```
# Table 1 - Pink Floyd band members
[members._table_meta_.reference]
"https://en.wikipedia.org/wiki/Pink_Floyd#Band_members"
[members._column_meta_.unique]
true,true,false
[members._columns_]
first_name,last_name,instrument
[members._data_]
Syd,Barret,"guitar, vocals"
David,Gilmour,"guitar, vocals"
Roger,Waters,"bass, vocals"
Richard,Wright,"keyboards, vocals"
Nick,Mason,drums
# Table 2 - Pink Floyd albums
[albums._columns_]
name,year
[albums._data_]
Animals,1997
"The Dark Side of the Moon",1973
```
## Read a `.csvm` file
Installation `pip install csvm`
```python
import csvm
# Load TableCollection (if multiple tables) or Table (if one table)
tc = csvm.read_csvm("pink_floyd.csvm")
print(tc.tables)
members = tc['members'] # get Table
# Access Table attributes if exist (i.e. Table.columns, Table.column_meta, Table.table_meta, Table.data, Table.name)
print(members.data)
```
Raw data
{
"_id": null,
"home_page": "",
"name": "csvm",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "",
"author": "",
"author_email": "Rafael Sanabria <rafael.d.sanabria@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/ac/29/2b167aaf2033fecb6aaf75a21481497138be6d201a58319fb0aa081dc89d/csvm-0.0.2.tar.gz",
"platform": null,
"description": "# CSVM\n\nCSVM is a file format that allows you to save multiple tables, add comments, and include metadata for both tables and columns\n\n## File format explanation\n\n1. Transform a `.csv` into a `.csvm`\n\n We start with a `.csv`\n\n ```csv\n first_name,last_name,instrument\n Syd,Barret,\"guitar, vocals\"\n David,Gilmour,\"guitar, vocals\"\n Roger,Waters,\"bass, vocals\"\n Richard,Wright,\"keyboards, vocals\"\n Nick,Mason,drums\n ```\n\n To transform it into a `.csvm` you add **table attributes**. Tha available table attributes are:\n \n - `[_columns_]` to define the column names\n - `[_data_]` to define the tabular data\n - `[_table_meta_.any_key.with_nested_keys]` to add table metadata\n - `[_columns_meta_.any_key.with_nested_keys]` to add column metadata. \n \n \n For now we add the attributes `_columns_` and `_data`\n \n ```\n [_columns_]\n first_name,last_name,instrument\n [_data_]\n Syd,Barret,\"guitar, vocals\"\n David,Gilmour,\"guitar, vocals\"\n Roger,Waters,\"bass, vocals\"\n Richard,Wright,\"keyboards, vocals\"\n Nick,Mason,drums\n ```\n\n2. Add comments and blank lines\n\n Every line that starts with a `#` is ignored when parsing the file\n\n ```\n # Pink Floyd band members\n\n [_columns_]\n first_name,last_name,instrument\n\n [_data_]\n Syd,Barret,\"guitar, vocals\"\n David,Gilmour,\"guitar, vocals\"\n Roger,Waters,\"bass, vocals\"\n Richard,Wright,\"keyboards, vocals\"\n Nick,Mason,drums\n ```\n\n3. Add table metadata\n\n ```\n # Pink Floyd band members\n \n [_table_meta_.reference]\n \"https://en.wikipedia.org/wiki/Pink_Floyd#Band_members\"\n \n [_columns_]\n first_name,last_name,instrument\n\n [_data_]\n Syd,Barret,\"guitar, vocals\"\n David,Gilmour,\"guitar, vocals\"\n Roger,Waters,\"bass, vocals\"\n Richard,Wright,\"keyboards, vocals\"\n Nick,Mason,drums\n ```\n\n4. Add column metadata\n\n ```\n # Pink Floyd band members\n \n [_table_meta_.reference]\n \"https://en.wikipedia.org/wiki/Pink_Floyd#Band_members\"\n \n [_column_meta_.unique]\n true,true,false\n \n [_columns_]\n first_name,last_name,instrument\n\n [_data_]\n Syd,Barret,\"guitar, vocals\"\n David,Gilmour,\"guitar, vocals\"\n Roger,Waters,\"bass, vocals\"\n Richard,Wright,\"keyboards, vocals\"\n Nick,Mason,drums\n ```\n\n5. Save more than one table\n\n If you want to save more than one table you must use a **namespace** for each table. \n\n ```\n # Table 1 - Pink Floyd band members\n \n [members._table_meta_.reference]\n \"https://en.wikipedia.org/wiki/Pink_Floyd#Band_members\"\n \n [members._column_meta_.unique]\n true,true,false\n \n [members._columns_]\n first_name,last_name,instrument\n\n [members._data_]\n Syd,Barret,\"guitar, vocals\"\n David,Gilmour,\"guitar, vocals\"\n Roger,Waters,\"bass, vocals\"\n Richard,Wright,\"keyboards, vocals\"\n Nick,Mason,drums\n \n # Table 2 - Pink Floyd albums\n\n [albums._columns_]\n name,year\n [albums._data_]\n Animals,1997\n \"The Dark Side of the Moon\",1973\n ```\n\n\n## Read a `.csvm` file \n\nInstallation `pip install csvm`\n\n```python\nimport csvm\n\n# Load TableCollection (if multiple tables) or Table (if one table)\ntc = csvm.read_csvm(\"pink_floyd.csvm\") \nprint(tc.tables)\nmembers = tc['members'] # get Table\n# Access Table attributes if exist (i.e. Table.columns, Table.column_meta, Table.table_meta, Table.data, Table.name)\nprint(members.data) \n```\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "",
"version": "0.0.2",
"project_urls": {
"Repository": "https://github.com/rfsan/csvm"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "89f38d6527a54642282a5adf0790f0a11494666eb9a27197dd864a25706ff7cd",
"md5": "13d9c2d3428ac71f678dc2797fc786e9",
"sha256": "2f58985de80a17973803955f5d1e8ff3068c22e1d66abc97372aaa86711dce5c"
},
"downloads": -1,
"filename": "csvm-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "13d9c2d3428ac71f678dc2797fc786e9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 4777,
"upload_time": "2023-07-27T00:57:47",
"upload_time_iso_8601": "2023-07-27T00:57:47.647751Z",
"url": "https://files.pythonhosted.org/packages/89/f3/8d6527a54642282a5adf0790f0a11494666eb9a27197dd864a25706ff7cd/csvm-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ac292b167aaf2033fecb6aaf75a21481497138be6d201a58319fb0aa081dc89d",
"md5": "97ae8d5ba2a990d0f3da8cd637a14cd0",
"sha256": "31c1480ee9bb7a3e275606ee1b5b5c1188dbe15720c288381e9fe1564e1890f7"
},
"downloads": -1,
"filename": "csvm-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "97ae8d5ba2a990d0f3da8cd637a14cd0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 5235,
"upload_time": "2023-07-27T00:57:48",
"upload_time_iso_8601": "2023-07-27T00:57:48.975656Z",
"url": "https://files.pythonhosted.org/packages/ac/29/2b167aaf2033fecb6aaf75a21481497138be6d201a58319fb0aa081dc89d/csvm-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-27 00:57:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rfsan",
"github_project": "csvm",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "csvm"
}