Metadata-Version: 2.4
Name: axiombraid
Version: 1.0.1
Summary: Explainable, safety-first data quality, validation, cleaning, and drift analysis.
Author: Muhammad Adil
License-Expression: MIT
Keywords: data-quality,data-cleaning,validation,profiling,drift-detection,pandas,explainable-ai,data-governance
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas>=2.0
Requires-Dist: openpyxl>=3.1
Requires-Dist: PyYAML>=6.0
Requires-Dist: tomli>=2.0; python_version < "3.11"
Provides-Extra: charts
Requires-Dist: matplotlib>=3.8; extra == "charts"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.6; extra == "docs"
Requires-Dist: mkdocs-material>=9.5; extra == "docs"
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0; extra == "dev"
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: twine>=5.0; extra == "dev"
Requires-Dist: ruff>=0.6; extra == "dev"
Requires-Dist: matplotlib>=3.8; extra == "dev"
Provides-Extra: all
Requires-Dist: matplotlib>=3.8; extra == "all"
Requires-Dist: mkdocs>=1.6; extra == "all"
Requires-Dist: mkdocs-material>=9.5; extra == "all"
Dynamic: license-file

# AxiomBraid

**Explainable, safety-first data quality for Python.**

AxiomBraid inspects, validates, cleans, compares, and monitors tabular datasets while
keeping automated changes conservative and visible.

```python
import axiombraid as AB

result = AB.inspect("students.csv")
AB.report("students.csv")

cleaned = AB.clean("students.csv", risk="low")
AB.export_html("students.csv", "reports/students.html", theme="dark")
```

## Why AxiomBraid?

- Detects missing values, duplicates, constant columns, identifiers, outliers, invalid
  ranges, text inconsistencies, and date-like text.
- Produces transparent dataset and column quality scores.
- Uses preview-first, risk-classified, reversible cleaning.
- Supports contracts, fingerprints, leakage screening, drift history, streaming CSV
  profiling, caching, plugins, parallel batch analysis, CLI usage, and Roman Urdu output.
- Does not silently delete outliers, clip invalid values, drop identifiers, or mutate
  input DataFrames through the functional API.

## Installation

Install the stable release from PyPI:

```bash
pip install axiombraid
```

On Windows:

```powershell
py -m pip install axiombraid
```

Optional chart support:

```bash
pip install "axiombraid[charts]"
```

### Development installation

```bash
git clone https://github.com/Adil307/AxiomBraid.git
cd AxiomBraid
pip install -e ".[dev]"
```

## Stable API

```python
import axiombraid as AB

df = AB.read_csv("data.csv")
inspection = AB.inspect(df)
validation = AB.validate(df, contract)
comparison = AB.compare(old_df, new_df)
drift = AB.detect_drift(old_df, new_df)
```

Advanced use:

```python
guide = AB.Guide("data.csv")
guide.report()
guide.cleaning_plan()
guide.export_json("report.json")
guide.export_html("report.html")
```

## Diagnostics

```python
print(AB.about())
print(AB.self_check())
```

## Command line

```powershell
axiombraid inspect data.csv
axiombraid batch datasets --output reports --workers 4 --format json --format html
axiombraid stream large.csv --chunksize 100000 --sample-rows 50000
python -m axiombraid --version
```

## Stability

Version 1.0 marks the supported public API. AxiomBraid follows semantic versioning:
compatible features and fixes belong in 1.x; incompatible public API changes require 2.0.

The old `dataguidepy` namespace and `dataguide` CLI were deprecated in 0.9 and are not
shipped in 1.0. See `docs/MIGRATION_FROM_DATAGUIDEPY.md`.

## Development

```powershell
py -m pytest
py -m pytest --cov=axiombraid
py benchmarks\benchmark_release.py
```

License: MIT.
