Metadata-Version: 2.4
Name: mostlyright-data
Version: 0.9.1
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

`mostlyright-data` is the Mostly Right command-line client. It starts hosted research and build
work, follows run status, and downloads completed 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.
