meerax
Shared ML utilities — LLM providers, evaluation metrics, visualization, and report generation.
Used as an in-house dependency across all of Sameer Maurya's ML projects and organization.
Source repo: the-forge — kept its original name;
only the installable package was renamed to meerax.
Install
pip install git+https://github.com/mauryasameer/the-forge.git@v1.0.0
Or pin in requirements.txt:
meerax @ git+https://github.com/mauryasameer/the-forge.git@v1.0.0
Once published to PyPI, this becomes pip install meerax / meerax==1.0.0.
Modules
| Module | What it gives you |
|---|---|
meerax.llm |
Swap-in LLM backends — Claude, OpenAI, Ollama behind one interface, text or images |
meerax.eval.classification |
F1, AUC-ROC, precision, recall in one call |
meerax.eval.timeseries |
RMSE, MAPE, SMAPE, ADF stationarity test |
meerax.eval.text |
BLEU-4, ROUGE-L for caption / summary quality |
meerax.viz |
Dark-themed matplotlib plots (confusion matrix, ROC, forecast, decomposition) |
meerax.data |
CSV/parquet loaders with schema validation, stratified + time splits, SMOTE |
meerax.report |
Self-contained dark-themed HTML model-card report builder |
meerax.logging |
One-call structured logger factory |
meerax.vision |
Image folder dataset loader (PyTorch) + translation-grid plotting (torch or numpy/TF images) |
Scaffolding Projects
Every project in the ecosystem follows the same PROJECT_STANDARDS.md layout and depends on
meerax. The meerax CLI (installed alongside the package) generates or retrofits that layout:
# brand-new project
meerax new my-project --path ~/dev
# retrofit an existing, non-empty directory — additive only, never overwrites
cd ~/dev/my-existing-notebook-project
meerax init
meerax new creates the full src/{core,providers,services,utils,data} + tests/ + CI
skeleton, pins requirements.txt to the current meerax release, and runs git init.
meerax init fills in whatever's missing from that same layout without touching files that
already exist, and reports any top-level files it doesn't recognize (e.g. notebooks) so you can
move them into src/ by hand.
Quick Start
from meerax.llm import ClaudeProvider, PromptTemplate
from meerax.eval import evaluate_classifier
from meerax.viz import apply_meerax_theme
from meerax.report import ReportBuilder, ReportSection
# LLM: swap provider without changing downstream code
llm = ClaudeProvider() # or OpenAIProvider() / OllamaProvider()
tpl = PromptTemplate("Explain {finding} to a risk manager in 3 sentences.")
response = llm.generate(tpl.render(finding="high AUC-ROC with low recall"))
# Eval
metrics = evaluate_classifier(y_true, y_pred, y_prob=probabilities)
print(metrics)
# Accuracy : 0.9823
# F1 : 0.8741
# AUC-ROC : 0.9912
# Viz + Report
apply_meerax_theme()
rb = ReportBuilder("Fraud Detection — Model Report v0.1.0")
rb.add_section(ReportSection(
title="Performance",
metrics=metrics.to_dict(),
content=response.content,
))
rb.save("reports/model_report.html")
LLM Provider Interface
All providers implement LLMProvider.generate() and .chat(). Swap with one line:
from meerax.llm import ClaudeProvider, OpenAIProvider, OllamaProvider
llm = ClaudeProvider() # needs ANTHROPIC_API_KEY
llm = OpenAIProvider() # needs OPENAI_API_KEY
llm = OllamaProvider() # needs Ollama running locally
Benchmarks
Self-contained benchmark scripts in benchmarks/:
| Script | Description |
|---|---|
kv_cache_benchmark.py |
KV caching simulation at GPT-2 Medium scale |
Project Structure
the-forge/
├── meerax/ # Installable package
│ ├── llm/ # LLM provider abstraction
│ ├── eval/ # Evaluation metrics
│ ├── viz/ # Visualization utilities
│ ├── data/ # Data loading, splitting, resampling
│ ├── report/ # HTML report builder
│ ├── scaffold/ # Project skeleton templates + create/retrofit logic
│ ├── cli.py # `meerax new` / `meerax init` command entry point
│ ├── vision/ # Image dataset loader + translation-grid plotting
│ └── logging.py # Structured logger
├── benchmarks/ # Standalone ML benchmark scripts
├── tests/
│ └── unit/ # 80 unit tests, zero external deps
├── LICENSE
├── pyproject.toml
├── requirements.txt
└── VERSION
Release files for meerax 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| meerax-1.0.0.tar.gz | 21.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| meerax-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 48.0 kB
Release files / meerax-1.0.0.tar.gz
| Download URL | meerax-1.0.0.tar.gz |
|---|---|
| Size | 21.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cef8ac4b349809623e0f1150569bb31b35cb8c5e51d4d1fd1765bfd27378a855
|
|
BLAKE2b-256 checksum How to use checksums |
136d68575f7ce2a381858857e8faa9f3ce1f736794d66ab3f93e15c9095dd459
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / meerax-1.0.0-py3-none-any.whl
| Download URL | meerax-1.0.0-py3-none-any.whl |
|---|---|
| Size | 26.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
81ec3cd189cc3910a1fbc93eeff886a4ec74faf4f1811c5cc996ccf4b4733d8b
|
|
BLAKE2b-256 checksum How to use checksums |
512a03807d2237b264cf403d80e67e24dc58f42e259eac92eb8262cd60063147
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency log