Skip to content

Contribution and development

Robin van de Water edited this page Jun 2, 2023 · 1 revision

YAIB is in active development. The following sections could be relevant for adding new code to our repository

Libraries

The following libraries are important to the operation of YAIB:

  • Pandas: Popular data structure framework.
  • ReciPys: A modular preprocessing package for Pandas dataframes.
  • Pytorch: An open source machine learning framework for deep learning applications.
  • Pytorch Lightning: A lightweight Pytorch wrapper for AI research.
  • Pytorch Ignite: Library for training and evaluating neural networks in Pytorch.
  • Cuda Toolkit: GPU acceleration used for deep learning models.
  • Scikit-learn: Machine learning library.
  • Scikit-optimize: Used for Bayesian optimization.
  • LightGBM: Gradient boosting framework.
  • GIN: Provides a lightweight configuration framework for Python.
  • Wandb: A tool for visualizing and tracking machine learning experiments.
  • Pytest: A testing framework for Python.

Imputation

  • HyperImpute: Imputation library for MissForest and GAIN.
  • PyPOTS: Imputation library.

Run Tests

python -m pytest ./tests/recipes
coverage run -m pytest ./tests/recipes
# then use either of the following
coverage report
coverage html

Autoformat and lint

For development purposes, we use the Black package to autoformat our code and a Flake8 Linting/CI check:

black . -l 127
flake8 . --count --max-complexity=14 --max-line-length=127 --statistics