Metadata-Version: 2.4
Name: pyemmeans
Version: 0.1.0
Summary: Python rewrite of emmeans (estimated marginal means)
Author-email: Tuo Zhao <tourzhao@gatech.edu>
Maintainer-email: Tuo Zhao <tourzhao@gatech.edu>
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://rvlenth.github.io/emmeans/
Keywords: estimated marginal means,least-squares means,statistics,post-hoc,linear models
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
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 :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.24
Requires-Dist: scipy>=1.10
Requires-Dist: pandas>=2.0
Requires-Dist: patsy>=0.5
Requires-Dist: statsmodels>=0.14
Requires-Dist: matplotlib>=3.8
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: ruff>=0.5; extra == "dev"
Requires-Dist: mypy>=1.8; extra == "dev"
Dynamic: license-file

# pyemmeans

`pyemmeans` is a Python rewrite of core `emmeans` workflows for estimated marginal means (EMMs), contrasts, trends, and post-hoc inference.

## Install

```bash
pip install pyemmeans
```

## Quick Start

```python
from pyemmeans import emmeans, pairs, ref_grid

# `fit` can be a supported statsmodels model result
rg = ref_grid(fit)
emm = emmeans(rg, "treatment")
print(emm.summary())
print(pairs(emm).summary(infer=(False, True)))
```

## Highlights

- Core EMM APIs: `ref_grid`, `emmeans`, `contrast`, `pairs`, `summary`, `confint`, `test`
- Trend and joint testing support: `emtrends`, `joint_tests`
- Multiple weight modes in `emmeans(..., weights=...)`
- Parity-oriented tests against R fixtures

## Project Notes

This package is a parity-oriented Python implementation inspired by the R `emmeans` ecosystem.

## Authorship and Attribution

- Python rewrite author: Tuo Zhao (`tourzhao@gatech.edu`)
- Original R `emmeans` package: developed by its R authors and contributors
- Full attribution details are included in `AUTHORS.md` in the source distribution.
