Metadata-Version: 2.4
Name: mostlyright-data
Version: 0.9.3
Summary: Mostly Right CLI for reproducible, reviewed Parquet datasets
Project-URL: Homepage, https://mostlyright.md/
Project-URL: Documentation, https://mostlyright.md/docs/guides/cli/
Requires-Python: <3.14,>=3.13
Provides-Extra: build
Requires-Dist: hatchling==1.28.0; extra == 'build'
Requires-Dist: uv-build==0.9.26; extra == 'build'
Provides-Extra: dev
Requires-Dist: cmarkgfm>=2025.10.22; extra == 'dev'
Requires-Dist: croniter==6.2.4; extra == 'dev'
Requires-Dist: cryptography<51,>=50.0.0; extra == 'dev'
Requires-Dist: et-xmlfile==2.0.0; extra == 'dev'
Requires-Dist: idna<4,>=3.10; extra == 'dev'
Requires-Dist: jsonschema[format]<5,>=4.23; extra == 'dev'
Requires-Dist: numpy==2.5.1; extra == 'dev'
Requires-Dist: openpyxl==3.1.5; extra == 'dev'
Requires-Dist: packaging<27,>=24; extra == 'dev'
Requires-Dist: pandas==3.0.3; extra == 'dev'
Requires-Dist: polars-runtime-32==1.42.1; extra == 'dev'
Requires-Dist: polars==1.42.1; extra == 'dev'
Requires-Dist: pyarrow==23.0.1; extra == 'dev'
Requires-Dist: pytest-xdist>=3.6; extra == 'dev'
Requires-Dist: pytest>=8.3; extra == 'dev'
Requires-Dist: referencing<1,>=0.35; extra == 'dev'
Requires-Dist: ruff>=0.9; extra == 'dev'
Provides-Extra: hosted
Requires-Dist: mostlyright-studio-client-v3==3.0.0; extra == 'hosted'
Provides-Extra: local
Requires-Dist: croniter==6.2.4; extra == 'local'
Requires-Dist: cryptography<51,>=50.0.0; extra == 'local'
Requires-Dist: et-xmlfile==2.0.0; extra == 'local'
Requires-Dist: idna<4,>=3.10; extra == 'local'
Requires-Dist: numpy==2.5.1; extra == 'local'
Requires-Dist: openpyxl==3.1.5; extra == 'local'
Requires-Dist: packaging<27,>=24; extra == 'local'
Requires-Dist: pandas==3.0.3; extra == 'local'
Requires-Dist: polars-runtime-32==1.42.1; extra == 'local'
Requires-Dist: polars==1.42.1; extra == 'local'
Requires-Dist: pyarrow==23.0.1; extra == 'local'
Provides-Extra: local-search-neural
Requires-Dist: anyio==4.14.2; extra == 'local-search-neural'
Requires-Dist: certifi==2026.7.22; extra == 'local-search-neural'
Requires-Dist: click==8.4.2; extra == 'local-search-neural'
Requires-Dist: filelock==3.32.2; extra == 'local-search-neural'
Requires-Dist: flatbuffers==25.12.19; extra == 'local-search-neural'
Requires-Dist: fsspec==2026.7.0; extra == 'local-search-neural'
Requires-Dist: h11==0.16.0; extra == 'local-search-neural'
Requires-Dist: hf-xet==1.6.0; extra == 'local-search-neural'
Requires-Dist: httpcore==1.0.9; extra == 'local-search-neural'
Requires-Dist: httpx==0.28.1; extra == 'local-search-neural'
Requires-Dist: huggingface-hub==1.27.0; extra == 'local-search-neural'
Requires-Dist: idna==3.18; extra == 'local-search-neural'
Requires-Dist: numpy==2.5.1; extra == 'local-search-neural'
Requires-Dist: onnxruntime==1.28.0; extra == 'local-search-neural'
Requires-Dist: packaging==26.3; extra == 'local-search-neural'
Requires-Dist: protobuf==7.35.1; extra == 'local-search-neural'
Requires-Dist: pyyaml==6.0.3; extra == 'local-search-neural'
Requires-Dist: tokenizers==0.23.1; extra == 'local-search-neural'
Requires-Dist: tqdm==4.70.0; extra == 'local-search-neural'
Requires-Dist: typing-extensions==4.16.0; extra == 'local-search-neural'
Provides-Extra: release
Requires-Dist: croniter==6.2.4; extra == 'release'
Requires-Dist: cryptography<51,>=50.0.0; extra == 'release'
Requires-Dist: et-xmlfile==2.0.0; extra == 'release'
Requires-Dist: idna<4,>=3.10; extra == 'release'
Requires-Dist: jsonschema[format]<5,>=4.23; extra == 'release'
Requires-Dist: numpy==2.5.1; extra == 'release'
Requires-Dist: openpyxl==3.1.5; extra == 'release'
Requires-Dist: packaging<27,>=24; extra == 'release'
Requires-Dist: pandas==3.0.3; extra == 'release'
Requires-Dist: polars-runtime-32==1.42.1; extra == 'release'
Requires-Dist: polars==1.42.1; extra == 'release'
Requires-Dist: pyarrow==23.0.1; extra == 'release'
Provides-Extra: viewer
Requires-Dist: nbconvert==7.17.1; extra == 'viewer'
Requires-Dist: nbformat==5.10.4; extra == 'viewer'
Description-Content-Type: text/markdown

# mostlyright-data

Mostly Right turns historical and live public data—weather, economic releases, financial reports,
and satellite data—into consistent datasets for analysis and prediction. Each dataset includes
source links, timestamps, and check results.

`mostlyright-data` is the command-line client. It starts hosted research and build work, follows
run status, and downloads completed Parquet datasets.

## Requirements

Use CPython 3.13.

## Install

```bash
python -m pip install mostlyright-data
```

The default install is the hosted client. It works on Linux, macOS, and Windows.

## Sign in

```bash
mr-data login
mr-data whoami
```

`login` stores a device key on the current machine. `whoami` checks that key.

## Check the installation

```bash
mr-data --version
mr-data --help
```

Use `mr-data research-open`, `mr-data research-status`, and `mr-data research-close` for hosted
research sessions. `research-status` shows the current state.

## Local tools

The optional local tools require Linux:

```bash
python -m pip install "mostlyright-data[local]"
```

They build and check worker inputs. They are not required for the hosted client.

## Documentation

- [CLI guide](https://mostlyright.md/docs/guides/cli/)
- [Research sessions](https://mostlyright.md/docs/guides/research/)
- [Credentials](https://mostlyright.md/docs/guides/credentials/)
- [Public datasets](https://mostlyright.md/docs/guides/use-public-datasets/)

Use `mr-data --help` for the full command list and options. Commands that support
`--json` write one JSON object.

For local builds, `--input-root` and `--output` may use relative paths.

## Limits and behavior

- `mr-data review --local RUN_DIR` exits 1 when a check fails.
- The weather Reader accepts one extracted GRIB2 record. It refuses a multi-record GFS or HRRR file.
- Hosted credential-free acquisition is limited to one single-address public HTTPS object. Bounded collections require both local attestations.

## Verification

```bash
make test-fast
```

`make test-fast` is non-authoritative and is useful while editing. `make verify` is required
before review or merge.

## Development

```bash
uv sync --locked --extra dev
```

The local test suite requires Linux for worker-boundary tests. The hosted client is tested on Linux,
macOS, and Windows.
