Metadata-Version: 2.1
Name: olivertwist
Version: 0.1.2
Summary: DBT DAG Auditor
Home-page: https://github.com/autotraderuk/oliver-twist
License: Apache-2.0
Author: Angelos Georgiadis
Author-email: angelos.georgiadis@autotrader.co.uk
Requires-Python: >=3.6,<4.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: Jinja2 (==2.11.2)
Requires-Dist: click (>=7.1.2,<8.0.0)
Requires-Dist: colorama (>=0.4.4,<0.5.0)
Requires-Dist: dataclasses (>=0.8,<0.9); python_version >= "3.6" and python_version < "3.7"
Requires-Dist: networkx (>=2.5,<3.0)
Project-URL: Repository, https://github.com/autotraderuk/oliver-twist
Description-Content-Type: text/markdown



![Alt text](./images/oliver_twist_logo.png)
# oliver-twist

DAG Auditor

![Build status badge](https://github.com/autotraderuk/oliver-twist/workflows/CI/badge.svg)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

oliver-twist is a dag auditing tool that audits the [DBT](https://www.getdbt.com/) DAG and generates a summary report. The rules implemented can be found [here](RULES.md)

![please sir, can I automate my DAG auditing](./images/oliver_dag_meme.jpg)

# Getting Started

To get started, install the package

```shell
$ pip install olivertwist
```

and then run it by passing it your dbt manifest JSON

```shell
olivertwist manifest.json
```

This will report any failures to the console, and also in HTML format in a directory called `target`. You can optionally auto-open the report in a browser with:

```shell
olivertwist manifest.json --browser
```

Full options are available with:


```shell
olivertwist manifest.json --help
```

## Developer

### To dev locally

Clone this repo and install all the projects packages:

`poetry install`

To get the latest versions of the dependencies and to update the poetry.lock file run:

`poetry update`

To run oliver-twist and generate the summary report run:

`poetry run olivertwist example_manifest.json`


### Creating a distribution

```poetry build --format wheel```

