This project is an integrated collection of network-based approaches for coordination detection, as found in the scientific literature. The coordination detection methods are abstracted and implemented in a modular and extensible way, allowing the common building blocks to be reused and combined in different ways.
Structure • Coordination Detection Methods • Development • License
features_builder/
: functions to extract features from the raw data (e.g. text preprocessing, tf-idf, etc.)network_builder/
: functions to create networks based on similarity, and to filter relevant edgespipeline/
: abstractions to combine multiple steps into a single workflowsimilarity_calculator/
: implementation of similarity scorestypes/
: utilities for consistent code typing and datetime formattingutils/
: general utilities that are re-used throughout the codebase (e.g. logging)windowing/
: functions to slice the data (e.g. sliding time windows approaches)
This project is developed and tested on multiple python versions (3.11+). Dependencies are managed with pipenv and security vulnerabilities are scanned with pip_audit
.
pipenv
can be installed via pip
:
$ pip install pipenv
Before running the project, the virtual environment, including development dependencies, needs to be installed and then activated:
# install dependencies (including dev)
$ pipenv install --dev
# activate environment
$ pipenv shell
The code in this repository follows PEP 8 style guide. Code can be formatted and linted with:
python -m black .
python -m ruff check .
Also see Black.
Additionally, static typing can be checked with:
python -m mypy
Unit tests are implemented with pytest
and can be run with:
python -m pytest tests/