Skip to main content

Python tools for data type handling and validation

Project description

splurge-tools

A Python package providing tools for data type handling, validation, and text processing.

Description

splurge-tools is a collection of Python utilities focused on:

  • Data type handling and validation
  • Text file processing and manipulation
  • String tokenization and parsing
  • Text case transformations
  • Delimited separated value parsing
  • Tabular data model class
  • Typed tabular data model class
  • Data validator class
  • Random data class
  • Data transformation class
  • Text normalizer class
  • Python 3.10+ compatibility

Installation

pip install splurge-tools

Features

  • type_helper.py: Comprehensive type validation and conversion utilities
  • text_file_helper.py: Text file processing and manipulation tools
  • string_tokenizer.py: String parsing and tokenization utilities
  • case_helper.py: Text case transformation utilities
  • dsv_helper.py: Delimited separated value utilities
  • tabular_data_model.py: Data model for tabular datasets
  • typed_tabular_data_model.py: Type data model based on tabular data model
  • data_validator.py: Data validator class
  • random_helper.py: Random data class and methods for generating data
  • data_transformer.py: Data transformation utility class
  • text_normalizer.py: Text normalization utility class

Development

Requirements

  • Python 3.10 or higher
  • setuptools
  • wheel

Setup

  1. Clone the repository:
git clone https://github.com/jim-schilling/splurge-tools.git
cd splurge-tools
  1. Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. Install development dependencies:
pip install -e ".[dev]"

Testing

Run tests using pytest:

python -m pytest tests/

Code Quality

The project uses several tools to maintain code quality:

  • Black: Code formatting
  • isort: Import sorting
  • flake8: Linting
  • mypy: Type checking
  • pytest: Testing with coverage

Run all quality checks:

black .
isort .
flake8 splurge_tools/ tests/ --max-line-length=120
mypy splurge_tools/
python -m pytest tests/ --cov=splurge_tools

Build

Build distribution:

python -m build

Changelog

[0.2.1] - 2025-07-03

Added

  • DsvHelper.profile_columns: Added DsvHelper.profile_columns, a new method that generates a simple data profile from parsed DSV data, inferring column names and datatypes.
  • Test Coverage: Added comprehensive test cases for DsvHelper.profile_columns and improved validation of DSV parsing logic, including edge cases for all supported datatypes.

[0.2.0] - 2025-07-02

Breaking Changes

  • Method Signature Standardization: All method signatures across the codebase have been updated to require default parameters to be named (e.g., def myfunc(value: str, *, trim: bool = True)). This enforces keyword-only arguments for all default values, improving clarity and consistency. This is a breaking change and may require updates to any code that calls these methods positionally for defaulted parameters.
  • All method signatures now use explicit type annotations and follow PEP8 and project-specific conventions for parameter ordering and naming.
  • Some methods may have reordered parameters or stricter type requirements as part of this standardization.

Fixed

  • Resolved Regex Pattern Bug: Fixed regex pattern bug - ?? should have been ? in String class in type_helper.py.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

Jim Schilling

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

splurge_tools-0.2.1.tar.gz (40.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

splurge_tools-0.2.1-py3-none-any.whl (28.7 kB view details)

Uploaded Python 3

File details

Details for the file splurge_tools-0.2.1.tar.gz.

File metadata

  • Download URL: splurge_tools-0.2.1.tar.gz
  • Upload date:
  • Size: 40.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for splurge_tools-0.2.1.tar.gz
Algorithm Hash digest
SHA256 493e485b893dbe0488631324c5892c108222c2df95bef146e3e8b5b469ab3de2
MD5 7d88ae0d9c3d8adb86d55522ab6f8d0e
BLAKE2b-256 b15be217070e4e1537100fbafd467c602ed72aa61e0d29cccdd7ae476684fd75

See more details on using hashes here.

File details

Details for the file splurge_tools-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: splurge_tools-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 28.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for splurge_tools-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7c79755d3191bb288894a0c7d9f8fb1908c58b6f43779854f1fd28d9121c32c7
MD5 f49ca0623e020af1200ac23592e99047
BLAKE2b-256 2c53c19e5a73c5448db0481c4dc8d85a38a03c25264aa9b4bcf2fe6a219aff2f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page