Composable pipelines for spreadsheets (JSON/YAML/CSV/XLSX) with FK helpers, validation, and IO routing.
Project description
Spreadsheet Handling
Spreadsheet Handling is a Python toolkit for round-tripping tabular data between JSON, CSV, and Excel/ODS workbooks while preserving relationships such as foreign keys, indexes, and hierarchies. It is built around small composable pipeline steps configured in YAML so that complex spreadsheet models stay easier to validate, transform, and reimport.
The project is in beta.
Install
pip install spreadsheet-handling
Requires Python 3.10 or newer.
Where to go next
- Try it locally in a few minutes — the spreadsheet-handling-demo repository walks you through a first-hour tutorial: generate a workbook from a normalized JSON model, edit it, reimport it, and verify the canonical JSON stays clean.
- Read the user guide (latest release) — https://stefanschade.github.io/spreadsheet-handling-pages/versions/v0.2.0/core/user-guide/.
- Browse documentation by version — https://stefanschade.github.io/spreadsheet-handling-pages/ is the per-release archive portal; it carries the latest-release banner and a list of every published version.
Features
- Convert JSON ↔ CSV/Excel (XLSX) with round-tripping support
- Detect and enforce foreign key relationships
- Validate spreadsheet structures (naming rules, uniqueness, etc.)
- Orchestrate multi-sheet pipelines via YAML configs
- Extensible: plug in new backends and transformation steps
AI Usage & Position Statement
- AI tools are used at all levels of this project: requirement analysis, solution design, coding.
- Human oversight, testing, and review remain essential. AI augments reasoning and speed but does not replace engineering judgment.
- Quality and maintainability are goals treated with priority; AI contributes to these.
Industry trends support this approach: according to the JetBrains Developer Ecosystem 2025 survey published by Golem.de, AI adoption is already pervasive and considered a core competency.
License
This project is licensed under the terms of the MIT License. See LICENSE for details.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file spreadsheet_handling-0.2.0.tar.gz.
File metadata
- Download URL: spreadsheet_handling-0.2.0.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d2595f01182ead21feb4e76e4cf5f12db0d068b3f2fe3cc2d7fd54895e751bf
|
|
| MD5 |
4cebebf5ebd291c9091c5865227f060b
|
|
| BLAKE2b-256 |
feda9e40dc5d743785d2de7bbc8bdbf989675755520c6734e92201bb9915bb19
|
Provenance
The following attestation bundles were made for spreadsheet_handling-0.2.0.tar.gz:
Publisher:
release.yml on StefanSchade/spreadsheet-handling
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spreadsheet_handling-0.2.0.tar.gz -
Subject digest:
7d2595f01182ead21feb4e76e4cf5f12db0d068b3f2fe3cc2d7fd54895e751bf - Sigstore transparency entry: 1711896703
- Sigstore integration time:
-
Permalink:
StefanSchade/spreadsheet-handling@cd66fbf6555b3e3b0796a8f8dca9735cf9505ddb -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/StefanSchade
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@cd66fbf6555b3e3b0796a8f8dca9735cf9505ddb -
Trigger Event:
push
-
Statement type:
File details
Details for the file spreadsheet_handling-0.2.0-py3-none-any.whl.
File metadata
- Download URL: spreadsheet_handling-0.2.0-py3-none-any.whl
- Upload date:
- Size: 203.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
495761b496b77985c8d30bd8f06ddadcf33093182a0e79003884648395abc828
|
|
| MD5 |
40026ebf11b58ea7c4c26b4f2afe1cf4
|
|
| BLAKE2b-256 |
1400385818f1af1bb0ea69a6a1f1aefcf4e9addadead2d5fe9d35aeae3104c44
|
Provenance
The following attestation bundles were made for spreadsheet_handling-0.2.0-py3-none-any.whl:
Publisher:
release.yml on StefanSchade/spreadsheet-handling
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spreadsheet_handling-0.2.0-py3-none-any.whl -
Subject digest:
495761b496b77985c8d30bd8f06ddadcf33093182a0e79003884648395abc828 - Sigstore transparency entry: 1711896718
- Sigstore integration time:
-
Permalink:
StefanSchade/spreadsheet-handling@cd66fbf6555b3e3b0796a8f8dca9735cf9505ddb -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/StefanSchade
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@cd66fbf6555b3e3b0796a8f8dca9735cf9505ddb -
Trigger Event:
push
-
Statement type: