name: "Mypy"
description: "Optional Static Typing for Python."
author: "Jukka Lehtosalo and contributors"
inputs:
  options:
    description: >
      Options passed to mypy. Use `mypy --help` to see available options.
    required: false
  paths:
    description: >
      Explicit paths to run mypy on. Defaults to the current directory.
    required: false
    default: "."
  version:
    description: >
      Mypy version to use (PEP440) - e.g. "0.910"
    required: false
    default: ""
  install_types:
    description: >
      Whether to automatically install missing library stub packages.
      ('yes'|'no', default: 'yes')
    default: "yes"
  install_project_dependencies:
    description: >
      Whether to attempt to install project dependencies into mypy
      environment. ('yes'|'no', default: 'yes')
    default: "yes"
branding:
  color: "blue"
  icon: "check-circle"
runs:
  using: composite
  steps:
    - name: mypy setup
      shell: bash
      run: |
        echo ::group::Installing mypy...
        export PIP_DISABLE_PIP_VERSION_CHECK=1

        if [ "$RUNNER_OS" == "Windows" ]; then
          HOST_PYTHON=python
        else
          HOST_PYTHON=python3
        fi

        venv_script="import os.path; import venv; import sys;
        path = os.path.join(r'${{ github.action_path }}', '.mypy-venv');
        venv.main([path]);
        bin_subdir = 'Scripts' if sys.platform == 'win32' else 'bin';
        print(os.path.join(path, bin_subdir, 'python'));
        "

        VENV_PYTHON=$(echo $venv_script | "$HOST_PYTHON")
        mypy_spec="mypy"

        if [ -n "${{ inputs.version }}" ]; then
          mypy_spec+="==${{ inputs.version }}"
        fi

        if ! "$VENV_PYTHON" -m pip install "$mypy_spec"; then
          echo "::error::Could not install mypy."
          exit 1
        fi
        echo ::endgroup::

        if [ "${{ inputs.install_project_dependencies }}" == "yes" ]; then
          VENV=$("$VENV_PYTHON" -c 'import sys;print(sys.prefix)')
          echo ::group::Installing project dependencies...
          "$VENV_PYTHON" -m pip download --dest="$VENV"/deps .
          "$VENV_PYTHON" -m pip install -U --find-links="$VENV"/deps "$VENV"/deps/*
          echo ::endgroup::
        fi

        echo ::group::Running mypy...
        mypy_opts=""
        if [ "${{ inputs.install_types }}" == "yes" ]; then
          mypy_opts+="--install-types --non-interactive"
        fi

        echo "mypy $mypy_opts ${{ inputs.options }} ${{ inputs.paths }}"
        "$VENV_PYTHON" -m mypy $mypy_opts ${{ inputs.options }} ${{ inputs.paths }}
        echo ::endgroup::
