# splurge-tabular
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/jim-schilling/splurge-tabular)
[](https://github.com/jim-schilling/splurge-tabular)
A modern, high-performance Python library for tabular data processing with both in-memory and streaming capabilities.
## โจ Features
- **Dual Processing Modes**: Choose between memory-efficient streaming or full in-memory processing
- **Type Safety**: Full type annotations with modern Python typing
- **Robust Error Handling**: Comprehensive exception hierarchy with detailed error messages
- **Flexible Data Input**: Support for CSV, JSON, and custom data formats
- **High Performance**: Optimized for both small datasets and large-scale processing
- **Production Ready**: 95% test coverage with 197 comprehensive tests
- **Modern Packaging**: Built with modern Python standards and best practices
## ๐ Quick Start
### Installation
```bash
pip install splurge-tabular
```
### Basic Usage
```python
from splurge_tabular import TabularDataModel, StreamingTabularDataModel
# In-memory processing
data = [
["name", "age", "city"],
["Alice", "25", "New York"],
["Bob", "30", "London"]
]
model = TabularDataModel(data)
print(f"Columns: {model.column_names}")
print(f"Row count: {model.row_count}")
# Access data
for row in model:
print(row)
# Streaming processing for large datasets
import io
csv_data = """name,age,city
Alice,25,New York
Bob,30,London"""
stream = io.StringIO(csv_data)
streaming_model = StreamingTabularDataModel(stream)
for row in streaming_model:
print(row)
```
## ๐ Requirements
- Python 3.10+
- Dependencies automatically managed via `pip`
## ๐งช Testing
The library includes comprehensive test suites:
```bash
# Run all tests
python -m pytest
# Run with coverage
python -m pytest --cov=splurge_tabular
# Run specific test categories
python -m pytest tests/unit/ # Unit tests
python -m pytest tests/integration/ # Integration tests
python -m pytest tests/e2e/ # End-to-end tests
```
## ๐ Documentation
- [Detailed Documentation](docs/README-details.md) - Comprehensive API reference and examples
- [Changelog](CHANGELOG.md) - Version history and release notes
## ๐๏ธ Architecture
### Core Components
- **`TabularDataModel`**: Full in-memory tabular data processing
- **`StreamingTabularDataModel`**: Memory-efficient streaming processing
- **Exception Hierarchy**: Comprehensive error handling with `SplurgeError` base class
- **Utility Functions**: Data validation, normalization, and processing helpers
### Design Principles
- **SOLID Principles**: Single responsibility, open-closed, etc.
- **DRY**: Don't Repeat Yourself
- **KISS**: Keep It Simple, Stupid
- **Type Safety**: Full type annotations throughout
- **Error Resilience**: Fail fast with clear error messages
## ๐ค Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
### Development Setup
```bash
# Clone the repository
git clone https://github.com/jim-schilling/splurge-tabular.git
cd splurge-tabular
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -e .[dev]
# Run tests
python -m pytest
```
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## ๐ค Author
**Jim Schilling**
- GitHub: [@jim-schilling](https://github.com/jim-schilling)
## ๐ Acknowledgments
- Built with modern Python best practices
- Inspired by the need for robust, type-safe tabular data processing
- Thanks to the Python community for excellent tools and libraries
Raw data
{
"_id": null,
"home_page": null,
"name": "splurge-tabular",
"maintainer": "Jim Schilling",
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "tabular, data, csv, processing, streaming",
"author": "Jim Schilling",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/01/9a/b079555d3c0c1246ec21155267b6f4446e4c5b419fb1f1d9f567330f9240/splurge_tabular-2025.0.0.tar.gz",
"platform": null,
"description": "# splurge-tabular\r\n\r\n[](https://www.python.org/downloads/)\r\n[](https://opensource.org/licenses/MIT)\r\n[](https://github.com/jim-schilling/splurge-tabular)\r\n[](https://github.com/jim-schilling/splurge-tabular)\r\n\r\nA modern, high-performance Python library for tabular data processing with both in-memory and streaming capabilities.\r\n\r\n## \u2728 Features\r\n\r\n- **Dual Processing Modes**: Choose between memory-efficient streaming or full in-memory processing\r\n- **Type Safety**: Full type annotations with modern Python typing\r\n- **Robust Error Handling**: Comprehensive exception hierarchy with detailed error messages\r\n- **Flexible Data Input**: Support for CSV, JSON, and custom data formats\r\n- **High Performance**: Optimized for both small datasets and large-scale processing\r\n- **Production Ready**: 95% test coverage with 197 comprehensive tests\r\n- **Modern Packaging**: Built with modern Python standards and best practices\r\n\r\n## \ud83d\ude80 Quick Start\r\n\r\n### Installation\r\n\r\n```bash\r\npip install splurge-tabular\r\n```\r\n\r\n### Basic Usage\r\n\r\n```python\r\nfrom splurge_tabular import TabularDataModel, StreamingTabularDataModel\r\n\r\n# In-memory processing\r\ndata = [\r\n [\"name\", \"age\", \"city\"],\r\n [\"Alice\", \"25\", \"New York\"],\r\n [\"Bob\", \"30\", \"London\"]\r\n]\r\n\r\nmodel = TabularDataModel(data)\r\nprint(f\"Columns: {model.column_names}\")\r\nprint(f\"Row count: {model.row_count}\")\r\n\r\n# Access data\r\nfor row in model:\r\n print(row)\r\n\r\n# Streaming processing for large datasets\r\nimport io\r\ncsv_data = \"\"\"name,age,city\r\nAlice,25,New York\r\nBob,30,London\"\"\"\r\n\r\nstream = io.StringIO(csv_data)\r\nstreaming_model = StreamingTabularDataModel(stream)\r\nfor row in streaming_model:\r\n print(row)\r\n```\r\n\r\n## \ud83d\udccb Requirements\r\n\r\n- Python 3.10+\r\n- Dependencies automatically managed via `pip`\r\n\r\n## \ud83e\uddea Testing\r\n\r\nThe library includes comprehensive test suites:\r\n\r\n```bash\r\n# Run all tests\r\npython -m pytest\r\n\r\n# Run with coverage\r\npython -m pytest --cov=splurge_tabular\r\n\r\n# Run specific test categories\r\npython -m pytest tests/unit/ # Unit tests\r\npython -m pytest tests/integration/ # Integration tests\r\npython -m pytest tests/e2e/ # End-to-end tests\r\n```\r\n\r\n## \ud83d\udcda Documentation\r\n\r\n- [Detailed Documentation](docs/README-details.md) - Comprehensive API reference and examples\r\n- [Changelog](CHANGELOG.md) - Version history and release notes\r\n\r\n## \ud83c\udfd7\ufe0f Architecture\r\n\r\n### Core Components\r\n\r\n- **`TabularDataModel`**: Full in-memory tabular data processing\r\n- **`StreamingTabularDataModel`**: Memory-efficient streaming processing\r\n- **Exception Hierarchy**: Comprehensive error handling with `SplurgeError` base class\r\n- **Utility Functions**: Data validation, normalization, and processing helpers\r\n\r\n### Design Principles\r\n\r\n- **SOLID Principles**: Single responsibility, open-closed, etc.\r\n- **DRY**: Don't Repeat Yourself\r\n- **KISS**: Keep It Simple, Stupid\r\n- **Type Safety**: Full type annotations throughout\r\n- **Error Resilience**: Fail fast with clear error messages\r\n\r\n## \ud83e\udd1d Contributing\r\n\r\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\r\n\r\n### Development Setup\r\n\r\n```bash\r\n# Clone the repository\r\ngit clone https://github.com/jim-schilling/splurge-tabular.git\r\ncd splurge-tabular\r\n\r\n# Create virtual environment\r\npython -m venv .venv\r\nsource .venv/bin/activate # On Windows: .venv\\Scripts\\activate\r\n\r\n# Install dependencies\r\npip install -e .[dev]\r\n\r\n# Run tests\r\npython -m pytest\r\n```\r\n\r\n## \ud83d\udcc4 License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n## \ud83d\udc64 Author\r\n\r\n**Jim Schilling**\r\n- GitHub: [@jim-schilling](https://github.com/jim-schilling)\r\n\r\n## \ud83d\ude4f Acknowledgments\r\n\r\n- Built with modern Python best practices\r\n- Inspired by the need for robust, type-safe tabular data processing\r\n- Thanks to the Python community for excellent tools and libraries\r\n",
"bugtrack_url": null,
"license": null,
"summary": "A Python library for tabular data processing with in-memory and streaming support",
"version": "2025.0.0",
"project_urls": {
"Changelog": "https://github.com/jim-schilling/splurge-tabular/blob/main/CHANGELOG.md",
"Homepage": "https://github.com/jim-schilling/splurge-tabular",
"Issues": "https://github.com/jim-schilling/splurge-tabular/issues",
"Repository": "https://github.com/jim-schilling/splurge-tabular"
},
"split_keywords": [
"tabular",
" data",
" csv",
" processing",
" streaming"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7e0b1e94ac94a84d81f8a9d28910d0d85a966733fb512f83f5bc97c3b5558c04",
"md5": "942726e50331c18be01a857abfcce344",
"sha256": "e52d6eef6933cdfc4341cc62e4c549e101321e8f23a2ab5ddc67b201b4658195"
},
"downloads": -1,
"filename": "splurge_tabular-2025.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "942726e50331c18be01a857abfcce344",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 19280,
"upload_time": "2025-09-06T21:01:03",
"upload_time_iso_8601": "2025-09-06T21:01:03.639514Z",
"url": "https://files.pythonhosted.org/packages/7e/0b/1e94ac94a84d81f8a9d28910d0d85a966733fb512f83f5bc97c3b5558c04/splurge_tabular-2025.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "019ab079555d3c0c1246ec21155267b6f4446e4c5b419fb1f1d9f567330f9240",
"md5": "1d4296019352c1ec4c3971c8d5bf4912",
"sha256": "98056185a5f1ed7f98c685465557e2eca771f9cfece5fa30fdb0d0da262033e2"
},
"downloads": -1,
"filename": "splurge_tabular-2025.0.0.tar.gz",
"has_sig": false,
"md5_digest": "1d4296019352c1ec4c3971c8d5bf4912",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 18193,
"upload_time": "2025-09-06T21:01:04",
"upload_time_iso_8601": "2025-09-06T21:01:04.961079Z",
"url": "https://files.pythonhosted.org/packages/01/9a/b079555d3c0c1246ec21155267b6f4446e4c5b419fb1f1d9f567330f9240/splurge_tabular-2025.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-06 21:01:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jim-schilling",
"github_project": "splurge-tabular",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "splurge-tabular"
}