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 utilitiestext_file_helper.py: Text file processing and manipulation toolsstring_tokenizer.py: String parsing and tokenization utilitiescase_helper.py: Text case transformation utilitiesdsv_helper.py: Delimited separated value utilitiestabular_data_model.py: Data model for tabular datasetstyped_tabular_data_model.py: Type data model based on tabular data modeldata_validator.py: Data validator classrandom_helper.py: Random data class and methods for generating datadata_transformer.py: Data transformation utility classtext_normalizer.py: Text normalization utility class
Development
Requirements
- Python 3.10 or higher
- setuptools
- wheel
Setup
- Clone the repository:
git clone https://github.com/jim-schilling/splurge-tools.git
cd splurge-tools
- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- 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.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
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 splurge_tools-0.2.0.tar.gz.
File metadata
- Download URL: splurge_tools-0.2.0.tar.gz
- Upload date:
- Size: 38.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
890b9c7619f9d53fb22bb0df86aff570f6a979d7248671551bf001da819e2e33
|
|
| MD5 |
36c37e86a0b2d674506853ee569efa3a
|
|
| BLAKE2b-256 |
87e4a1758be206c12eda335242b3300024021525676e66b795d11d36207ff8f1
|
File details
Details for the file splurge_tools-0.2.0-py3-none-any.whl.
File metadata
- Download URL: splurge_tools-0.2.0-py3-none-any.whl
- Upload date:
- Size: 27.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5d64815f34e6426194db9e1fca95cffc427df63acb9cb3a68adb65d8f3f8bc8
|
|
| MD5 |
6b821e4308b9492d691625c0535d40a1
|
|
| BLAKE2b-256 |
b4d6881ea58d4edb5d0517e4a4fe75db5148e4a18530d676b9d46a68e98e3b32
|