# 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
```