Metadata-Version: 2.3
Name: PyVeritas
Version: 0.1.13
Summary: Data Validation Engine
Author-email: Tim McCallum <mistermac2008@gmail.com>
Maintainer-email: Tim McCallum <mistermac2008@gmail.com>
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Dist: typing-extensions
Project-URL: Documentation, https://pyveritas.readthedocs.io
Project-URL: Homepage, https://github.com/tpmccallum/PyVeritas

# PyVeritas: The Declarative Data Contract Engine for Python

[![License](https://img.shields.io/badge/license-Apache2-blue.svg)](LICENSE)  
[![PyPI Version](https://img.shields.io/pypi/v/pyveritassvg)](https://pypi.org/project/pyveritas/) 

PyVeritas empowers you to define and enforce data contracts in Python with a declarative, code-centric approach. Ensure data integrity, simplify integrations, and build robust applications by defining your data's expected structure and constraints **as code**.

## Key Features

*   **Declarative Data Contracts:** Define data contracts as Python classes, making them readable, maintainable, and testable.
*   **Composable Rules:** Build complex validation logic by combining simple rules using logical operators (AND, OR, NOT).
*   **Extensible Architecture:** Easily create custom rules to handle specific validation requirements.
*   **Clear Error Reporting:** Get detailed error messages that pinpoint the exact cause of validation failures.
*   **Framework Integrations:** (Future) Seamlessly integrate with popular Python frameworks like Pydantic, Flask, FastAPI, and Django REST Framework.
*   **Fuzzing Support:** (In Progress) Generate realistic test data based on your data contracts to uncover potential vulnerabilities.

## Getting Started

Follow the steps below to get started.

### Installation

Create a Python environment:

```bash
python3 -m venv venv
source venv/bin/activate
```

Install PyVeritas:

```bash
pip install pyveritas
```

Install dependencies:

```bash
# Standard use - (MANDATORY)
pip install -r requirements.txt
# For contributing developers only - (OPTIONAL)
pip install -r dev-requirements.txt
```

# Document

```bash
cd PyVeritas/docs
make html
```

# Cut a new release

Update the version/release:

```
```

Push changes to repository:

```bash
cd PyVeritas
git add .
git commit -m "Your Message"
git push
```



