Metadata-Version: 2.4
Name: moose-inventory
Version: 2.1.1
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`](https://github.com/RusDavies/moose-inventory) command.

Install from PyPI:

```bash
python -m pip install moose-inventory
```

Check the installed CLI:

```bash
moose-inventory version
moose-inventory help
```

## User guide

See the [user guide](https://github.com/RusDavies/moose-inventory-python/blob/master/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 [database backend adapters](https://github.com/RusDavies/moose-inventory-python/blob/master/docs/backend-adapters.md) for config examples and adapter smoke-test coverage.

## Release operations

Release and security-maintenance notes live in [release operations](https://github.com/RusDavies/moose-inventory-python/blob/master/docs/release.md).

Publication uses PyPI Trusted Publishing from GitHub Actions.

## 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
make coverage
make lint
make format
make typecheck
make build
make package
make check
```

The full CI/release gate used during development is:

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