language: python
dist: xenial  # required for Python >= 3.7
python: 3.7
cache: pip
before_install: pip install --upgrade pip setuptools
install: pip install -r requirements.txt
before_script:
  - black --check . || true
  - flake8 . --count --select=E9,F401,F63,F7,F82 --show-source --statistics
script:
  - scripts/validate_filenames.py  # no uppercase and no spaces
  - mypy --ignore-missing-imports .
  - pytest . --doctest-modules
      --ignore=file_transfer_protocol/ftp_send_receive.py
      --ignore=file_transfer_protocol/ftp_client_server.py
      --ignore=machine_learning/linear_regression.py
      --ignore=machine_learning/perceptron.py
      --ignore=machine_learning/random_forest_classification/random_forest_classification.py
      --ignore=machine_learning/random_forest_regression/random_forest_regression.py
after_success:
  - scripts/build_directory_md.py > DIRECTORY.md
  - cat DIRECTORY.md