Metadata-Version: 2.1
Name: infrahub-sdk
Version: 1.7.1
Summary: Python Client to interact with Infrahub
Home-page: https://opsmill.com
License: Apache-2.0
Author: OpsMill
Author-email: info@opsmill.com
Requires-Python: >=3.9,<4.0
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Provides-Extra: all
Provides-Extra: ctl
Provides-Extra: tests
Requires-Dist: Jinja2 (>=3,<4) ; extra == "ctl" or extra == "tests" or extra == "all"
Requires-Dist: dulwich (>=0.21.4,<0.22.0)
Requires-Dist: eval-type-backport (>=0.2.2,<0.3.0) ; python_version >= "3.9" and python_version < "3.10"
Requires-Dist: graphql-core (>=3.1,<3.3)
Requires-Dist: httpx (>=0.20) ; python_version >= "3.9" and python_version < "3.11"
Requires-Dist: httpx (>=0.23) ; python_version >= "3.11"
Requires-Dist: numpy (>=1.24.2,<2.0.0) ; (python_version >= "3.9" and python_version < "3.12") and (extra == "ctl" or extra == "all")
Requires-Dist: numpy (>=1.26.2,<2.0.0) ; (python_version >= "3.12") and (extra == "ctl" or extra == "all")
Requires-Dist: pendulum (>=2) ; python_version >= "3.9" and python_version < "3.12"
Requires-Dist: pendulum (>=3) ; python_version >= "3.12"
Requires-Dist: pyarrow (>=14) ; extra == "ctl" or extra == "all"
Requires-Dist: pydantic (>=2.0.0,!=2.0.1,!=2.1.0,<3.0.0)
Requires-Dist: pydantic-settings (>=2.0)
Requires-Dist: pytest ; extra == "tests" or extra == "all"
Requires-Dist: pyyaml (>=6,<7) ; extra == "ctl" or extra == "tests" or extra == "all"
Requires-Dist: rich (>=13,<14) ; extra == "ctl" or extra == "tests" or extra == "all"
Requires-Dist: toml (>=0.10,<0.11) ; extra == "ctl" or extra == "all"
Requires-Dist: typer (>=0.12.3,<0.13.0) ; extra == "ctl" or extra == "all"
Requires-Dist: ujson (>=5,<6)
Project-URL: Documentation, https://docs.infrahub.app/python-sdk/
Project-URL: Repository, https://github.com/opsmill/infrahub
Description-Content-Type: text/markdown


<!-- markdownlint-disable -->
![Infrahub Logo](https://assets-global.website-files.com/657aff4a26dd8afbab24944b/657b0e0678f7fd35ce130776_Logo%20INFRAHUB.svg)
<!-- markdownlint-restore -->

# Infrahub by OpsMill

[Infrahub](https://github.com/opsmill/infrahub) by [OpsMill](https://opsmill.com) is taking a new approach to Infrastructure Management by providing a new generation of datastore to organize and control all the data that defines how an infrastructure should run.

At its heart, Infrahub is built on 3 fundamental pillars:

- **Powerful Schema**: that's easily extensible
- **Unified Version Control**: for data and files
- **Data Synchronization**: with traceability and ownership

## Infrahub SDK

The Infrahub Python SDK greatly simplifies how you can interact with Infrahub programmatically.

More information can be found in the [Infrahub Python SDK Documentation](https://docs.infrahub.app/python-sdk/).

## Installation

The Infrahub SDK can be installed using the pip package installer. It is recommended to install the SDK into a virtual environment.

```bash
python3 -m venv .venv
source .venv/bin/activate
pip install infrahub-sdk
```

### Installing optional extras

Extras can be installed as part of the Python SDK and are not installed by default.

#### ctl

The ctl extra provides the `infrahubctl` command, which allows you to interact with an Infrahub instance.

```bash
pip install 'infrahub-sdk[ctl]'
```

#### tests

The tests extra provides all the components for the testing framework of Transforms, Queries and Checks.

```bash
pip install 'infrahub-sdk[tests]'
```

#### all

Installs infrahub-sdk together with all the extras.

```bash
pip install 'infrahub-sdk[all]'
```

