Metadata-Version: 2.4
Name: moose-inventory
Version: 2.1.0
Summary: Python CLI replacement for the Ruby moose-inventory tool.
Project-URL: Homepage, https://github.com/RusDavies/moose-inventory-python
Project-URL: Repository, https://github.com/RusDavies/moose-inventory-python
Author: Russ Davies
License: MIT
Keywords: ansible,cli,inventory
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.10
Requires-Dist: pyyaml>=6.0.2
Requires-Dist: sqlalchemy>=2.0
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == 'dev'
Requires-Dist: mypy>=1.13; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.8; extra == 'dev'
Requires-Dist: twine>=5.0; extra == 'dev'
Requires-Dist: types-pyyaml>=6.0.12; extra == 'dev'
Provides-Extra: mysql
Requires-Dist: pymysql>=1.1; extra == 'mysql'
Provides-Extra: postgresql
Requires-Dist: psycopg[binary]>=3.2; extra == 'postgresql'
Description-Content-Type: text/markdown

# Moose Inventory Python

Python CLI/package replacement for the Ruby `moose-inventory` command.

## User guide

See `docs/user-guide.md` for installation, configuration, Ruby migration, doctor, snapshot, Ansible, and read-only console usage.

## Database backends

The Python CLI supports the Ruby-compatible `sqlite3`, `mysql`, and `postgresql` adapter names. SQLite works with the base install; MySQL/MariaDB and PostgreSQL use optional extras:

```bash
python -m pip install 'moose-inventory[mysql]'
python -m pip install 'moose-inventory[postgresql]'
```

See `docs/backend-adapters.md` for config examples and adapter smoke-test coverage.

## Release operations

See `docs/release.md` for PyPI publication, ownership, artifact integrity, vulnerability intake, and release evidence expectations.

## Development commands

Install development dependencies first:

```bash
python -m pip install -e '.[dev]'
```

Common checks are available through either `make` targets or `scripts/dev.sh`:

```bash
make test       # python -m pytest
make coverage   # pytest with coverage report
make lint       # ruff check src tests
make format     # ruff format plus import-order fixes
make typecheck  # mypy
make build      # build sdist/wheel
make package    # twine check dist/*
make check      # full release-readiness gate
```

The CI/release gate used during development is:

```bash
./scripts/check.sh
```
