Metadata-Version: 2.1
Name: followthemoney
Version: 3.5.4
Home-page: https://followthemoney.tech/
Author: Organized Crime and Corruption Reporting Project
Author-email: data@occrp.org
License: MIT
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: babel <3.0.0,>=2.9.1
Requires-Dist: pyyaml <7.0.0,>=5.0.0
Requires-Dist: types-PyYAML
Requires-Dist: sqlalchemy2-stubs
Requires-Dist: banal <1.1.0,>=1.0.6
Requires-Dist: click <9.0.0,>=8.0
Requires-Dist: stringcase <2.0.0,>=1.2.0
Requires-Dist: requests <3.0.0,>=2.21.0
Requires-Dist: python-levenshtein <1.0.0,>=0.12.0
Requires-Dist: normality <3.0.0,>=2.4.0
Requires-Dist: sqlalchemy <3.0.0,>=1.4.49
Requires-Dist: countrynames <2.0.0,>=1.13.0
Requires-Dist: languagecodes <2.0.0,>=1.1.0
Requires-Dist: prefixdate <1.0.0,>=0.4.0
Requires-Dist: fingerprints <2.0.0,>=1.0.1
Requires-Dist: phonenumbers <9.0.0,>=8.12.22
Requires-Dist: python-stdnum <2.0.0,>=1.16
Requires-Dist: pantomime <1.0.0,>=0.5.1
Requires-Dist: pytz >=2021.1
Requires-Dist: rdflib <7.1.0,>=6.2.0
Requires-Dist: networkx <3.2,>=2.5
Requires-Dist: openpyxl <4.0.0,>=3.0.5
Requires-Dist: orjson <4.0,>=3.7
Provides-Extra: dev
Requires-Dist: pip >=10.0.0 ; extra == 'dev'
Requires-Dist: bump2version ; extra == 'dev'
Requires-Dist: wheel >=0.29.0 ; extra == 'dev'
Requires-Dist: twine ; extra == 'dev'
Requires-Dist: mypy ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: types-PyYAML ; extra == 'dev'
Requires-Dist: types-requests ; extra == 'dev'
Requires-Dist: types-setuptools ; extra == 'dev'
Requires-Dist: flake8 >=2.6.0 ; extra == 'dev'
Requires-Dist: transifex-client ; extra == 'dev'
Requires-Dist: responses >=0.9.0 ; extra == 'dev'
Requires-Dist: coverage >=4.1 ; extra == 'dev'
Requires-Dist: recommonmark >=0.4.0 ; extra == 'dev'

# Follow the Money

[![ftm-build](https://github.com/alephdata/followthemoney/actions/workflows/build.yml/badge.svg)](https://github.com/alephdata/followthemoney/actions/workflows/build.yml)

This repository contains a pragmatic data model for the entities most
commonly used in investigative reporting: people, companies, assets,
payments, court cases, etc.

The purpose of this is not to model reality in an ideal data model, but
rather to have a working data structure for researchers.

`followthemoney` also contains code used to validate and normalize many
of the elements of data, and to map tabular data into the model.

## Documentation

For a general introduction to `followthemoney`, check the high-level introduction:

* https://followthemoney.tech

Part of this package is a command-line tool that can be used to process and
transform data in various ways. You can find a tutorial here:

* https://followthemoney.tech/docs/cli/

Besides the introductions, there is also a full reference documentation for the
library and the contained ontology: 

* https://followthemoney.tech/explorer/

There's also a number of viewers for the RDF schema definitions generated
from FollowTheMoney, e.g.:

* [LODE documentation](http://150.146.207.114/lode/extract?url=https%3A%2F%2Falephdata.github.io%2Ffollowthemoney%2Fns%2Fftm.xml&owlapi=true&imported=true&lang=en)
* [WebVOWL](https://service.tib.eu/webvowl/#iri=https://alephdata.github.io/followthemoney/ns/ftm.xml)
* RDF/OWL specification in [XML](https://alephdata.github.io/followthemoney/ns/ftm.xml).

## Development environment

For local development with a virtualenv:

```bash
python3 -mvenv .env
source .env/bin/activate
pip install -e ".[dev]"
```

Now you can run the tests with

```bash
make test
```

## Releasing

We release a lot of version of `followthemoney` because even small changes
to the code base require a pypi release to begin being used in `aleph`. To
this end, here's the steps for making a release:

```bash
git pull --rebase
make build
make test
git add . && git commit -m "Updating translation files"
bumpversion patch
git push --atomic origin main $(git describe --tags --abbrev=0)
```

This will create a new patch release and upload a distribution of it. If
the changes are more significant, you can run `bumpversion` with the `minor`
or `major` arguments.

When the schema is updated, please update the docs, ideally including the
diagrams. For the RDF namespace and JavaScript version of the model, 
run `make generate`.
