Metadata-Version: 2.1
Name: quasar-typing
Version: 0.1.0
Author-email: Liam <liam_deburca@me.com>
Project-URL: Homepage, https://github.com/liamdeburca/quasar-typing
Project-URL: Repository, https://github.com/liamdeburca/quasar-typing.git
Project-URL: Bug Tracker, https://github.com/liamdeburca/quasar-typing/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic==2.12
Requires-Dist: lazy-imports==1.2.0
Provides-Extra: dev
Requires-Dist: pytest==9.1.1; extra == "dev"
Requires-Dist: pytest-cov==7.1.0; extra == "dev"
Requires-Dist: black==26.10.1; extra == "dev"
Requires-Dist: isort==9.0.2; extra == "dev"
Requires-Dist: astropy==7.0; extra == "dev"
Requires-Dist: numpy==1.26; extra == "dev"
Requires-Dist: scipy==1.16; extra == "dev"
Requires-Dist: emcee==3.1.6; extra == "dev"
Requires-Dist: pandas==3.0.5; extra == "dev"
Requires-Dist: cachetools==7.0.5; extra == "dev"
Requires-Dist: dynesty==3.0.0; extra == "dev"
Requires-Dist: h5py==3.16.0; extra == "dev"

# quasar-typing

A small Python project for pydantic-compatible typing utilities.

## Features

- Array type definitions and utilities
- DataFrame support
- Path handling
- Type bounds and compound models
- Miscellaneous utilities

## Installation

```bash
pip install .
```

## Development

### Running Tests

```bash
pytest
```

## Project Structure

The module contains the following submodules:

1. `astropy`: Astropy-related typing utilities.
    - `coordinates`
    - `cosmology`
    - `fits`
    - `modeling`
    - `table`
    - `units`
2. `errors`: Custom error types.
3. `numpy`: Numpy-related typing utilities: validating shapes, data types, and other properties of arrays, among other things.
    - `random`: Typing utilities for `numpy.random`
4. `pathlib`: `pathlib.Path`-related typing utilities: validating existant/new paths, path extensions, etc.
5. `scipy`: Scipy-related typing utilities.
    - `optimize`
    - `sparse`
    - `stats`
6. `bounds`
7. `cachetools`
8. `dynesty`: requires the `dynesty` package.
9. `emcee`: requires the `emcee` package.
10. `h5py`: requires the `h5py` package.
11. `literals`: Typing utilities for literal types.
12. `logging`
13. `multiprocessing`
14. `pandas`: requires the `pandas` package.
15. `re`: Typing utilities for validating regex pattern strings.
16. `string_selections`: Validating sets of strings.
17. `misc`: Miscellaneous typing utilities.
18. `utils`: Utilities for common validation tasks.

```
quasar-typing/
├── src/quasar_typing/          # Main package
├── tests/                      # Unit tests
├── pyproject.toml              # Project configuration
└── README.md                   # This file
```

## License

MIT License - see LICENSE file for details
