Metadata-Version: 2.4
Name: muck-out
Version: 0.3.16
Summary: Provides normalization into pydantic objects for ActivityPub objects
Project-URL: Repository, https://codeberg.org/bovine/muck_out
Project-URL: Documentation, https://bovine.codeberg.page/muck_out/
Project-URL: Changelog, https://codeberg.org/bovine/muck_out/src/branch/main/CHANGES.md
Requires-Python: >=3.11
Requires-Dist: bovine>=0.5.14
Requires-Dist: nh3>=0.2.20
Requires-Dist: pydantic>=2.10.4
Requires-Dist: uuid6>=2024.7.10
Provides-Extra: cattle-grid
Requires-Dist: cattle-grid>=0.5.11; extra == 'cattle-grid'
Provides-Extra: markdown
Requires-Dist: markdown>=3.9; extra == 'markdown'
Description-Content-Type: text/markdown

# bovine - muck_out

The goal of this package is to provide normalization
routines for ActivityPub data. This means you input
some dictionary and get a [pydantic](https://docs.pydantic.dev/latest/) object back.

See [the documentation](https://bovine.codeberg.page/muck_out/)
for details.

* [@bovine/muck-out-types](https://codeberg.org/bovine/-/packages/npm/@bovine%2Fmuck-out-types/) a typescript package with the tpes generated from the muck_out schemas
* [@bovine/mucked_out_components](https://codeberg.org/bovine/mucked_up_components) preact components based on the muck_out types and other utilities to build Fediverse apps

## Development

Development is done using uv.

### Running tests

Download the test data from [funfedi.dev](https://funfedi.dev/) using

```bash
./resources/download_test_data.sh 
```

The script just runs two curl commands. Then you can run the tests using

```bash
uv run pytest
```

One can only run the doctests for the docs with `uv run pytest docs`.

### Generate json schemas

```bash
python -mmuck_out schemas
```