Metadata-Version: 2.4
Name: mathipy
Version: 0.1.0
Summary: Multimodal item feature extraction for K-12 math assessment
Author-email: Mikyung Shin <shin.mikyung@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/mshin77/mathipy
Project-URL: Repository, https://github.com/mshin77/mathipy
Project-URL: Documentation, https://mshin77.github.io/mathipy
Project-URL: Issues, https://github.com/mshin77/mathipy/issues
Keywords: math,assessment,education,readability,k-12
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Education
Classifier: Programming Language :: Python :: 3.9
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: Topic :: Education
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.20.0
Provides-Extra: nlp
Requires-Dist: textstat>=0.7.0; extra == "nlp"
Requires-Dist: nltk>=3.8.0; extra == "nlp"
Provides-Extra: vision
Requires-Dist: pillow>=9.0.0; extra == "vision"
Requires-Dist: opencv-python-headless>=4.5.0; extra == "vision"
Provides-Extra: ocr
Requires-Dist: httpx>=0.24.0; extra == "ocr"
Provides-Extra: documents
Requires-Dist: python-docx>=0.8.0; extra == "documents"
Requires-Dist: pdfplumber>=0.7.0; extra == "documents"
Provides-Extra: all
Requires-Dist: mathipy[documents,nlp,ocr,vision]; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=8.2; extra == "docs"
Requires-Dist: pydata-sphinx-theme>=0.16; extra == "docs"
Requires-Dist: myst-parser>=3.0; extra == "docs"
Dynamic: license-file

<img src="docs_src/_static/logo.svg" alt="MathiPy Logo" align="right" width="220px"/>

[![PyPI version](https://img.shields.io/pypi/v/mathipy)](https://pypi.org/project/mathipy/)
[![Python versions](https://img.shields.io/pypi/pyversions/mathipy)](https://pypi.org/project/mathipy/)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)

Multimodal item feature extraction for K-12 math assessment. Analyze readability with math-aware normalization via [textstat](https://github.com/textstat/textstat) and [NLTK](https://www.nltk.org/), classify math content by [Common Core State Standards for Mathematics](https://www.thecorestandards.org/Math/) domain, estimate cognitive load components, extract visual complexity features from images using [OpenCV](https://opencv.org/) and [Pillow](https://pillow.readthedocs.io/), and perform multimodal optical character recognition (OCR) through [Gemini](https://ai.google.dev/) and [OpenAI](https://platform.openai.com/) vision APIs.

## Installation

```bash
pip install mathipy
```

With optional dependencies:

```bash
pip install mathipy[nlp]        # readability (textstat, nltk)
pip install mathipy[vision]     # visual analysis (opencv, pillow)
pip install mathipy[ocr]        # OCR via vision LLMs (httpx)
pip install mathipy[documents]  # document parsing (python-docx, pdfplumber)
pip install mathipy[all]        # all features
```

From GitHub:

```bash
pip install git+https://github.com/mshin77/mathipy.git[all]
```

## Getting Started

See [Quick Start](https://mshin77.github.io/mathipy/getting-started.html) and [Analyzing Math Items](https://mshin77.github.io/mathipy/vignettes/naep-demo.html) for tutorials.

## Citation

- Shin, M. (2026). *MathiPy: Multimodal item feature extraction for K-12 math assessment* (Python package version 0.1.0) [Computer software]. <https://github.com/mshin77/mathipy>
