Skip to main content

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

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:

  1. User Interfaces: Web UI (FastAPI/JS), CLI (Click), Python API
  2. Core Library: Profiler, Model Wrappers, Registry, Visualisation Engines
  3. Storage: Local SQLite database for zero-config experiment tracking

Contributing

  1. Fork the repo
  2. Create a feature branch (git checkout -b feature/model-name)
  3. Write tests for your changes
  4. Ensure all tests pass (pytest tests/ -v)
  5. 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


Download files

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

Source Distribution

xaura-0.1.1.tar.gz (116.6 kB view details)

Uploaded Source

Built Distribution

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

xaura-0.1.1-py3-none-any.whl (113.8 kB view details)

Uploaded Python 3

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

Hashes for xaura-0.1.1.tar.gz
Algorithm Hash digest
SHA256 cc17ef8d19a53f3c33444cc795889deffa440d3bd9c5157ff3a7ec71440d557c
MD5 819fcc95cd6d827c5ef1931f9edea634
BLAKE2b-256 0b24f017f6a3843080fed6fd8ef2d90b7f9215aec4111897166600183032517c

See more details on using hashes here.

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

Hashes for xaura-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 812eb8ef363787c4554d6d7d4f000d923e394cbeeb18e8ae0ff2fe0845edcfa6
MD5 2ab08985e43e2f777bcbfcaf696805f6
BLAKE2b-256 954410e83c04ce89ab4dc7e664340abcdd5e3b206177145879afa6f71bb8e5d7

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