eXtendable Automated Unified Research & Analytics — an intelligent AI library
Project description
XAURA — eXtendable Automated Unified Research & Analytics
An intelligent, dataset-aware Python ML library with built-in profiling, experiment tracking, model-specific visualisations, and a local web UI — all in one
pip install.
XAURA is designed to make machine learning workflows faster, smarter, and fully reproducible. Instead of writing boilerplate for every project, you call profile() to understand your data and run_model() to train with dataset-aware defaults. Every run is automatically logged, visualised, and exportable.
Table of Contents
- Installation
- Quick Start
- Key Features
- Supported Models
- API Reference
- Architecture
- Contributing
- License
Installation
Install XAURA directly from PyPI:
pip install xaura
Install from Source
If you want to contribute or run the latest development version:
git clone https://github.com/Vinamra3215/Xaura.git
cd Xaura
pip install -e ".[dev]"
Quick Start
Python API
import pandas as pd
from xaura import profile, run_model
# Load data
df = pd.read_csv("data.csv")
# Step 1: Profile
data_profile = profile(df)
print(data_profile.warnings) # ["High imbalance: 3.2:1"]
# Step 2: Run a model (dataset-aware defaults applied automatically)
result = run_model("rf_classifier", df, data_profile, target_col="target")
# Step 3: Inspect results
print(result.metrics) # {'accuracy': 0.91, 'f1': 0.85, 'recall': 0.78, ...}
print(result.config) # Full config with all defaults resolved
print(result.run_id) # 'a3f8c21d-...' — logged to SQLite automatically
# Step 4: Override defaults if needed
result2 = run_model("xgboost_cls", df, data_profile, target_col="target", config={
"n_estimators": 500,
"max_depth": 8,
"learning_rate": 0.01
})
Web UI
XAURA comes with a beautiful local web interface. Start it by running:
xaura serve
Then open http://localhost:7070 in your browser.
- Upload page — drag-and-drop CSV upload
- Profile view — dataset summary with interactive charts
- Model runner — select model, configure params, run, view results
- Experiment log — sortable/filterable table of all past runs
- Run comparison — side-by-side diff of two runs
- Export buttons — one-click download of plots, bundles, logs
CLI
You can also use XAURA directly from the terminal:
xaura profile data.csv
xaura run rf_classifier data.csv --config '{"n_estimators": 200}'
xaura export a3f8c21d
Key Features
- 🔍 Automatic Dataset Profiling — shape, types, class balance, correlations, missing values, and warnings
- 🎯 Dataset-Aware Defaults — hyperparameters adapt based on your data's characteristics
- 📊 Model-Specific Visualisations — confusion matrices for classifiers, residual plots for regressors, silhouette plots for clusterers
- 💾 Silent Experiment Tracking — every run auto-logged to SQLite with full reproducibility
- 🌐 Local Web UI — FastAPI-powered dashboard served at
localhost:7070 - 📦 One-Click Export — PNG plots, JSON configs, ZIP run bundles, CSV experiment logs
- 🖥️ CLI Interface — profile, run models, and export from the terminal
- ⚡ CPU-Optimised — all models run efficiently on CPU (no GPU required)
Supported Models
Classification
| Model | Identifier |
|---|---|
| Logistic Regression | logistic_regression |
| Random Forest | rf_classifier |
| XGBoost | xgboost_cls |
| LightGBM | lightgbm_cls |
Regression
| Model | Identifier |
|---|---|
| Linear Regression | linear_regression |
| Ridge | ridge |
| Lasso | lasso |
| Random Forest | random_forest_reg |
| XGBoost | xgboost_reg |
Clustering
| Model | Identifier |
|---|---|
| K-Means | kmeans |
| DBSCAN | dbscan |
| Agglomerative | hierarchical |
API Reference
profile(data) → DataProfile
| Parameter | Type | Description |
|---|---|---|
data |
pd.DataFrame, str, np.ndarray |
Dataset or path to CSV |
run_model(model_name, data, profile, config=None, target_col=None) → Result
| Parameter | Type | Description |
|---|---|---|
model_name |
str |
Model identifier (e.g., "rf_classifier") |
data |
pd.DataFrame |
Dataset |
profile |
DataProfile |
From profile() call |
config |
dict, optional |
Hyperparameter overrides |
target_col |
str, optional |
The target column to predict |
Result Object
| Attribute | Type | Description |
|---|---|---|
metrics |
dict |
Evaluation metrics |
plots |
list |
Plotly JSON chart objects |
model_object |
object |
Trained model |
run_id |
str |
UUID in experiment log |
config |
dict |
Full resolved config |
Architecture
XAURA is built with strict layer separation. Each component has a clear responsibility:
- User Interfaces: Web UI (FastAPI/JS), CLI (Click), Python API
- Core Library: Profiler, Model Wrappers, Registry, Visualisation Engines
- Storage: Local SQLite database for zero-config experiment tracking
Contributing
- Fork the repo
- Create a feature branch (
git checkout -b feature/model-name) - Write tests for your changes
- Ensure all tests pass (
pytest tests/ -v) - Submit a PR with a clear description
License
MIT License — see LICENSE for details.
XAURA — Because ML should be intelligent about your data, not just your model.
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 xaura-0.1.1.tar.gz.
File metadata
- Download URL: xaura-0.1.1.tar.gz
- Upload date:
- Size: 116.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc17ef8d19a53f3c33444cc795889deffa440d3bd9c5157ff3a7ec71440d557c
|
|
| MD5 |
819fcc95cd6d827c5ef1931f9edea634
|
|
| BLAKE2b-256 |
0b24f017f6a3843080fed6fd8ef2d90b7f9215aec4111897166600183032517c
|
File details
Details for the file xaura-0.1.1-py3-none-any.whl.
File metadata
- Download URL: xaura-0.1.1-py3-none-any.whl
- Upload date:
- Size: 113.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
812eb8ef363787c4554d6d7d4f000d923e394cbeeb18e8ae0ff2fe0845edcfa6
|
|
| MD5 |
2ab08985e43e2f777bcbfcaf696805f6
|
|
| BLAKE2b-256 |
954410e83c04ce89ab4dc7e664340abcdd5e3b206177145879afa6f71bb8e5d7
|