Metadata-Version: 2.4
Name: packingcubes
Version: 0.2.1
Summary: PackingCubes octree implementation for astro data
Author: Michael Ryan
Author-email: Josh Borrow <josh@joshborrow.com>
License-Expression: MIT
Project-URL: home, https://github.com/astrosocket/packingcubes
Project-URL: source, https://github.com/astrosocket/packingcubes
Project-URL: issues, https://github.com/astrosocket/packingcubes/issues/new
Keywords: astronomy,astrophysics
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.12
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: h5py
Requires-Dist: unyt
Requires-Dist: numba
Requires-Dist: xxhash<4,>=3.6.0
Provides-Extra: viz
Requires-Dist: matplotlib; extra == "viz"
Provides-Extra: jupyter
Requires-Dist: ipywidgets; extra == "jupyter"
Requires-Dist: ipykernel; extra == "jupyter"
Requires-Dist: ipympl; extra == "jupyter"
Provides-Extra: all
Requires-Dist: packingcubes[viz]; extra == "all"
Requires-Dist: packingcubes[jupyter]; extra == "all"
Dynamic: license-file

[![Tested with Hypothesis](https://img.shields.io/badge/hypothesis-tested-brightgreen.svg)](https://hypothesis.readthedocs.io/)

# packingcubes

Compact oct-tree implementation used for Socket

## Development requirements
### uv
To get ready for development, create a virtual enviroment and install the package:
```
uv venv --python=3.12
source .venv/bin/activate
uv pip install -e ".[dev]"
pre-commit install
```

We use ruff for formatting. When you go to commit your code, it will automatically be formatted thanks to the pre-commit hook.

Tests are performed using pytest.
### pixi
Using with pixi is pretty easy, simply
```sh
pixi shell
```
To look at visualizations, run tests, or develop, simply specify the corresponding environment
```sh
# visualizations
pixi shell -e viz
# testing (also includes viz)
pixi shell -e test
# developing (also includes viz & test)
pixi shell -e dev
```
and e.g. to run tests, say
```sh
pixi run test
```
which runs `pytest  --cov=packingcubes`.
