Metadata-Version: 2.4
Name: moirais
Version: 0.1.0.post2
Summary: Methods for Observational Inference and Robust Analysis of Interventions in Scientific Experimentation. Multi-domain scientific computing toolkit hosting the MRM framework for Canadian carceral, police, and oversight data, with general-purpose causal inference, signal processing, cryptography, spatial statistics, statistical physics, and psychometrics modules.
Author-email: Vansh Singh Ruhela <hadesllm@proton.me>
License-Expression: GPL-2.0-only
Project-URL: Homepage, https://github.com/hadesllm/moirais
Project-URL: Repository, https://github.com/hadesllm/moirais
Project-URL: Issues, https://github.com/hadesllm/moirais/issues
Project-URL: Documentation, https://github.com/hadesllm/moirais#readme
Project-URL: Changelog, https://github.com/hadesllm/moirais/releases
Keywords: MRM,MRM modules,McNamara-Ruhela-Medina,causal inference,observational inference,criminology,Mandela Rules,OTIS,Special Investigations Unit,Structured Intervention Unit,Toronto Police Service,Crime Severity Index,Hawkes process,spatial statistics,signal processing,psychometrics,double machine learning,MOIRAIS
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Legal Industry
Classifier: Intended Audience :: Education
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: R
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
Classifier: Topic :: Scientific/Engineering :: GIS
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Sociology
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas>=2.0
Requires-Dist: numpy>=1.24
Requires-Dist: scipy>=1.10
Requires-Dist: scikit-learn>=1.3
Requires-Dist: statsmodels>=0.14
Requires-Dist: DoubleML>=0.7.1
Requires-Dist: matplotlib>=3.7.0
Requires-Dist: openpyxl>=3.1.0
Requires-Dist: httpx>=0.27
Requires-Dist: rich>=13.0
Requires-Dist: beautifulsoup4>=4.12
Requires-Dist: lxml>=5.0
Requires-Dist: tenacity>=8.0
Provides-Extra: test
Requires-Dist: pytest>=7.0; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: psutil; extra == "test"
Requires-Dist: pypdf>=4.0; extra == "test"
Provides-Extra: ai
Provides-Extra: interactive
Requires-Dist: textual<1.0,>=0.85; extra == "interactive"
Requires-Dist: dashing>=0.1.0; extra == "interactive"
Requires-Dist: enlighten>=1.12; extra == "interactive"
Provides-Extra: ml
Requires-Dist: imbalanced-learn>=0.11; extra == "ml"
Provides-Extra: carbon
Requires-Dist: codecarbon>=2.3; extra == "carbon"
Provides-Extra: docs
Requires-Dist: sphinx>=7.0; extra == "docs"
Requires-Dist: myst-parser; extra == "docs"
Dynamic: license-file

# MOIRAIS

**Methods for Observational Inference and Robust Analysis of Interventions in Scientific Experimentation**

A multi-domain scientific computing toolkit (Python and R) for observational inference, with sociolegal, signal-processing, cryptographic, spatial-statistics, statistical-physics, and psychometrics modules. Hosts the MRM framework as a primary application for Canadian carceral, police, and oversight data analysis.

[![License: GPL v2](https://img.shields.io/badge/License-GPL_v2-blue.svg)](LICENSE)
[![PyPI version](https://img.shields.io/pypi/v/moirais.svg)](https://pypi.org/project/moirais/)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.20096350-blue)](https://doi.org/10.5281/zenodo.20096350)

## Installation

### Python (PyPI)

```bash
pip install moirais
```

### R (CRAN)

```r
install.packages("moirais")
```

### R (r-universe; nightly binary builds)

```r
install.packages(
  "moirais",
  repos = c(
    hadesllm = "https://hadesllm.r-universe.dev",
    CRAN     = "https://cloud.r-project.org"
  )
)
```

## Quick start

```python
import moirais

# Load a built-in dataset
df = moirais.load_dataset("otis-2025")

# Run an MRM module on OTIS data
from moirais.otis_all_analyze import analyze_a01_mrm
result = analyze_a01_mrm(df)
print(result)
```

## Documentation

Full documentation is at [hadesllm.github.io/moirais](https://hadesllm.github.io/moirais/).

## Citation

If you use MOIRAIS in your research, please cite the package paper, the MRM framework paper, and (where applicable to your work) the Hawkes-process methodology paper:

```
Ruhela, V. S. (2026). MOIRAIS: A Multi-Domain Scientific Computing
Toolkit for Observational Inference, with Sociolegal, Signal-Processing,
Cryptographic, and Spatial-Statistics Modules. Zenodo.
https://doi.org/10.5281/zenodo.20096350

Ruhela, V. S. (2026). The MRM Framework: A Multi-Source Statistical
Foundation for Canadian Carceral, Police, and Oversight Data, Implemented
as MRM Modules in MOIRAIS. Zenodo.
https://doi.org/10.5281/zenodo.20096075

Ruhela, V. S. (2026). Criminological Hawkes Process via MOIRAIS:
Markovian and Non-Markovian Self-Exciting Point Processes for Toronto
Crime. Zenodo.
https://doi.org/10.5281/zenodo.20102198
```

See [`CITATION.cff`](CITATION.cff) for machine-readable citation metadata.

## Acknowledgments

### AI assistance

MOIRAIS was developed with substantial assistance from frontier AI
assistants. The author retains full responsibility for the code, the
methods, and the scientific claims; AI assistance accelerated
implementation but does not change the attribution of the work.

- **Claude — Anthropic.** Anthropic's Claude family (Opus, Sonnet, and
  Haiku across the 4.x generation) was used extensively throughout
  development for code generation, refactoring, documentation, code
  review, and design discussions. Use was supported by Anthropic
  research-credit programs.

- **Gemini and Vertex AI — Google.** Google's Gemini 2.5 models (Pro and
  Flash) on the Vertex AI platform were used extensively for additional
  code generation, cross-checking Claude-generated code, multi-modal
  data analysis, and prototype evaluation. Use was supported by Google
  research-credit programs.

### Funding and infrastructure

- Anthropic — Claude API research credits.
- Google — Gemini / Vertex AI research credits.
- The author thanks **Glenn McNamara** — ~30 years as the
  statistician at Ontario Provincial Police headquarters, preceded by
  tenure at Statistics Canada, with a Mathematics and Linguistics
  background from the University of Toronto — for weekly methodological
  mentorship over the past six months. He brings distribution theory,
  applied-statistics intuition for administrative data, and the
  judgment that grounds much of this framework. Glenn is the **M** in
  **MRM (McNamara-Ruhela-Medina)** (catalyst).

- The author thanks **Prof. Angela Zorro Medina**, Centre for
  Criminology and Sociolegal Studies, University of Toronto, for
  expert review of the framework and for the methodological lineage
  established by her work on anti-gang legislation (Zorro Medina,
  2023, *The Effect of Anti-Gang Laws on Crime and Social
  Control*) — staggered two-way-fixed-effects identification,
  formal leads-and-lags Granger-causality diagnostics for parallel
  trends, multi-source data-integration over five jurisdictional
  sources, deterrence / routine-activities / certainty mechanism
  categorisation, and the inequality-effects-of-criminal-law
  framing — all of which directly shape MRM's empirical-statistical
  spine. Prof. Medina is the **M** in MRM (reviewer).

### Data acknowledgments

Several MRM analyses use Statistics Canada and Health Canada Public
Use Microdata Files (PUMFs) — including the **Canadian Cannabis
Survey (CCS)**, the **Canadian Student Alcohol and Drugs Survey
(CSADS)**, the **Canadian Substance Use Survey (CSUS)**, the
**Canadian Alcohol and Drugs Survey (CADS, 2019;
[doi.org/10.25318/132500052021001-eng](https://doi.org/10.25318/132500052021001-eng))**,
and the **Canadian Postsecondary Education Alcohol and Drug Use
Survey (CPADS)** — along with Public Health Agency of Canada (PHAC)
and Canadian Institute for Health Information (CIHI) aggregates.
Although the analyses use Statistics Canada and Health Canada data,
the analyses, interpretations, and conclusions are those of the
author and do not represent the views of Statistics Canada or
Health Canada. Ontario open data (OTIS, A01-RCDD release; via
`data.ontario.ca`) and Toronto Police Service open data are used
under the same standard disclaimer.

## License

MOIRAIS is released under the GNU General Public License v2 (`GPL-2.0-only`); see [`LICENSE`](LICENSE). The licensing matrix for individual components is documented in [`LICENSING.md`](LICENSING.md).

## Reporting issues / security

- General issues: [GitHub Issues](https://github.com/hadesllm/moirais/issues)
- Security vulnerabilities: see [`SECURITY.md`](.github/SECURITY.md)
