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 pipenvBefore 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 shellThe 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 mypyUnit tests are implemented with pytest and can be run with:
python -m pytest tests/