Metadata-Version: 2.4
Name: investigraph
Version: 0.8.0
Summary: etl pipeline for investigations with follow the money data
License-Expression: MIT
License-File: LICENSE
Author: Simon Wörpel
Author-email: simon.woerpel@pm.me
Requires-Python: >=3.11,<3.14
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Provides-Extra: level
Provides-Extra: postgres
Provides-Extra: redis
Provides-Extra: sql
Requires-Dist: anystore (>=1.0.1,<2.0.0)
Requires-Dist: dateparser (>=1.2.2,<2.0.0)
Requires-Dist: followthemoney (>=4.5.1,<5.0.0)
Requires-Dist: ftmq (>=4.5.2,<5.0.0)
Requires-Dist: memorious4 (>=4.0.0,<5.0.0)
Requires-Dist: plyvel (>=1.5.1,<2.0.0) ; extra == "level"
Requires-Dist: psycopg2 (>=2.9.10,<3.0.0) ; extra == "postgres"
Requires-Dist: redis (>=4.0.0) ; extra == "redis"
Requires-Dist: runpandarun (>=0.7.0,<0.8.0)
Requires-Dist: sqlalchemy (>=2.0.36,<3.0.0) ; extra == "postgres"
Requires-Dist: sqlalchemy (>=2.0.36,<3.0.0) ; extra == "sql"
Project-URL: Documentation, https://docs.investigraph.dev
Project-URL: Homepage, https://investigraph.dev
Project-URL: Issues, https://github.com/dataresearchcenter/investigraph-etl/issues
Project-URL: Repository, https://github.com/dataresearchcenter/investigraph-etl
Description-Content-Type: text/markdown

[![investigraph on pypi](https://img.shields.io/pypi/v/investigraph)](https://pypi.org/project/investigraph/)
[![Python test and package](https://github.com/dataresearchcenter/investigraph-etl/actions/workflows/python.yml/badge.svg)](https://github.com/dataresearchcenter/investigraph-etl/actions/workflows/python.yml)
[![Build docker container](https://github.com/dataresearchcenter/investigraph-etl/actions/workflows/build-docker.yml/badge.svg)](https://github.com/dataresearchcenter/investigraph-etl/actions/workflows/build-docker.yml)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
[![Coverage Status](https://coveralls.io/repos/github/dataresearchcenter/investigraph-etl/badge.svg?branch=main)](https://coveralls.io/github/dataresearchcenter/investigraph-etl?branch=main)
[![MIT License](https://img.shields.io/pypi/l/investigraph)](./LICENSE)

# investigraph

**An ETL framework for building datasets in the [FollowTheMoney](https://followthemoney.tech) format for investigative journalism and research.**

[Documentation](https://dataresearchcenter.github.io/investigraph/)

[Tutorial](https://dataresearchcenter.github.io/investigraph/tutorial/)

## installation

`investigraph` requires at least **Python 3.11**

    pip install investigraph

## example datasets

There is a dedicated [repo](https://github.com/dataresearchcenter/investigraph-datasets) for example datasets built with investigraph.

## deployment

### docker

`docker-compose.yml` for local development / testing, use `docker-compose.prod.yml` as a starting point for a production setup. [More instructions here](https://dataresearchcenter.github.io/investigraph/deployment/)

## run locally

Install app and dependencies (use a virtualenv):

    pip install investigraph

Or, e.g. when using [poetry](https://python-poetry.org/):

    poetry add investigraph

After installation, `investigraph` as a command should be available:

    investigraph --help

Quick run a local dataset definition:

    investigraph run -c ./path/to/config.yml

## development

This package is using [poetry](https://python-poetry.org/) for packaging and dependencies management, so first [install it](https://python-poetry.org/docs/#installation).

Clone investigraph repository to a local destination.

Within the root directory, run

    poetry install --with dev

This installs a few development dependencies, including [pre-commit](https://pre-commit.com/) which needs to be registered:

    poetry run pre-commit install

Before creating a commit, this checks for correct code formatting (isort, black) and some other useful stuff (see: `.pre-commit-config.yaml`)

### test

    make test

## supported by

[Media Tech Lab Bayern batch #3](https://github.com/media-tech-lab)

<a href="https://www.media-lab.de/en/programs/media-tech-lab">
    <img src="https://raw.githubusercontent.com/media-tech-lab/.github/main/assets/mtl-powered-by.png" width="240" title="Media Tech Lab powered by logo">
</a>

