Metadata-Version: 2.5
Name: openecon
Version: 0.3.19a1
Summary: An open-source Python workspace for reproducible statistics and econometrics
Project-URL: Homepage, https://openeconometrics.com
Project-URL: Repository, https://github.com/bluearf/openeconometrics
Author: OpenEconometrics contributors
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE
License-File: THIRD_PARTY.md
Requires-Python: <3.15,>=3.11
Requires-Dist: openecon-charts==0.3.1a1
Requires-Dist: packaging<27,>=24
Requires-Dist: pandas<3,>=2.2
Requires-Dist: pyarrow<24,>=18
Requires-Dist: pydantic<3,>=2.9
Requires-Dist: threadpoolctl<4,>=3.5
Requires-Dist: torch<3,>=2.6
Provides-Extra: agent
Requires-Dist: mcp<2,>=1.26; extra == 'agent'
Provides-Extra: app
Requires-Dist: fastapi<1,>=0.115; extra == 'app'
Requires-Dist: mcp<2,>=1.26; extra == 'app'
Requires-Dist: openpyxl<4,>=3.1; extra == 'app'
Requires-Dist: pyreadstat<2,>=1.2; extra == 'app'
Requires-Dist: python-multipart<1,>=0.0.20; extra == 'app'
Requires-Dist: typer<1,>=0.15; extra == 'app'
Requires-Dist: uvicorn<1,>=0.30; extra == 'app'
Provides-Extra: cli
Requires-Dist: typer<1,>=0.15; extra == 'cli'
Provides-Extra: cloud
Requires-Dist: fastapi<1,>=0.115; extra == 'cloud'
Requires-Dist: firebase-admin<8,>=6.9; extra == 'cloud'
Requires-Dist: google-cloud-firestore<3,>=2.20; extra == 'cloud'
Requires-Dist: google-cloud-run<1,>=0.10; extra == 'cloud'
Requires-Dist: google-cloud-storage<4,>=3; extra == 'cloud'
Requires-Dist: mcp<2,>=1.26; extra == 'cloud'
Requires-Dist: openpyxl<4,>=3.1; extra == 'cloud'
Requires-Dist: pyjwt[crypto]<3,>=2.10; extra == 'cloud'
Requires-Dist: pyreadstat<2,>=1.2; extra == 'cloud'
Requires-Dist: python-multipart<1,>=0.0.20; extra == 'cloud'
Requires-Dist: typer<1,>=0.15; extra == 'cloud'
Requires-Dist: uvicorn<1,>=0.30; extra == 'cloud'
Provides-Extra: desktop
Requires-Dist: fastapi<1,>=0.115; extra == 'desktop'
Requires-Dist: mcp<2,>=1.26; extra == 'desktop'
Requires-Dist: openpyxl<4,>=3.1; extra == 'desktop'
Requires-Dist: pip<27,>=26.2; extra == 'desktop'
Requires-Dist: pyreadstat<2,>=1.2; extra == 'desktop'
Requires-Dist: python-multipart<1,>=0.0.20; extra == 'desktop'
Requires-Dist: typer<1,>=0.15; extra == 'desktop'
Requires-Dist: uv==0.9.26; extra == 'desktop'
Requires-Dist: uvicorn<1,>=0.30; extra == 'desktop'
Provides-Extra: files
Requires-Dist: openpyxl<4,>=3.1; extra == 'files'
Requires-Dist: pyreadstat<2,>=1.2; extra == 'files'
Provides-Extra: server
Requires-Dist: fastapi<1,>=0.115; extra == 'server'
Requires-Dist: python-multipart<1,>=0.0.20; extra == 'server'
Requires-Dist: uvicorn<1,>=0.30; extra == 'server'
Description-Content-Type: text/markdown

# OpenEconometrics

`openecon` is an Apache-2.0 Python library for statistical and econometric
analysis. It provides model fitting, persistent JSON results, saved prediction,
LaTeX tables and offline charts. The package is an alpha with bounded method and
option coverage; full Stata or other vendor parity has not been established.

## Install this package version

```sh
python -m pip install 'openecon==0.3.19a1' 'openecon-charts==0.3.1a1'
python -m pip check
```

Python must be at least 3.11 and below 3.15. The SDK pins charts `0.3.1a1`
exactly. Charts also works as a standalone package with no required Python
dependencies:

```sh
python -m pip install 'openecon-charts==0.3.1a1'
```

The base SDK installation does not require the web server, CLI, MCP service or
additional Excel/Stata file readers. Optional application layers are described
in the [distribution guide](https://github.com/bluearf/openeconometrics/blob/main/docs/distribution.md).
For example, Excel and Stata readers use `python -m pip install 'openecon[files]==0.3.19a1'`.

## Fit and save a result

```python
import openecon as oe

frame = oe.example()
result = oe.ols(
    data=frame,
    y="wage",
    x=["education", "experience"],
    covariance="HC3",
    device="cpu",
)
print(result.summary())

saved = result.model_dump_json(indent=2)
restored = oe.ResultBundle.model_validate_json(saved)
print(restored.to_latex())

chart = oe.plot.scatter(data=frame, x="education", y="wage")
chart.save_html("wage.html")
```

Charts embed their scripts, styles and fonts for offline HTML. Optional network
PDF/SVG/PNG export uses an installed Chrome, Chromium or Edge; it does not download
a browser or open a user's existing profile.

## Scope and provenance

SDK `0.3.19a1` and charts `0.3.1a1` form one source-based package pair. The
corresponding public source snapshot records the frozen source commit and file
inventory in `SOURCE-MANIFEST.json`. Release provenance identifies the exact
wheel/sdist hashes and the scope of their installation checks. Numerical tests,
installed-package checks, public release access and registry installation are
separate evidence layers.

Installing these Python packages does not rebuild a native desktop installer.
Device support follows each method's recorded contract; physical CUDA, installed
desktop acceptance, Developer ID signing and notarization have separate evidence.

- [Public repository and releases](https://github.com/bluearf/openeconometrics)
- [Estimator and resource scope](https://github.com/bluearf/openeconometrics/blob/main/docs/capabilities.md)
- [OLS and inference options](https://github.com/bluearf/openeconometrics/blob/main/docs/ols.md)
- [Public source and fixture boundary](https://github.com/bluearf/openeconometrics/blob/main/PUBLIC-SOURCE.md)
- [Apache-2.0 license](https://github.com/bluearf/openeconometrics/blob/main/LICENSE)
- [Third-party notices](https://github.com/bluearf/openeconometrics/blob/main/THIRD_PARTY.md)
- [Security reporting](https://github.com/bluearf/openeconometrics/blob/main/SECURITY.md)
