splurge-tabular


Namesplurge-tabular JSON
Version 2025.0.0 PyPI version JSON
download
home_pageNone
SummaryA Python library for tabular data processing with in-memory and streaming support
upload_time2025-09-06 21:01:04
maintainerJim Schilling
docs_urlNone
authorJim Schilling
requires_python>=3.10
licenseNone
keywords tabular data csv processing streaming
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # splurge-tabular

[![Python Version](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Tests](https://img.shields.io/badge/tests-197%20passed-green.svg)](https://github.com/jim-schilling/splurge-tabular)
[![Coverage](https://img.shields.io/badge/coverage-95%25-green.svg)](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[![Python Version](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n[![Tests](https://img.shields.io/badge/tests-197%20passed-green.svg)](https://github.com/jim-schilling/splurge-tabular)\r\n[![Coverage](https://img.shields.io/badge/coverage-95%25-green.svg)](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"
}
        
Elapsed time: 0.89223s