Skip to content

Warning

You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?

Run pyright

Actions
Run pyright
v2.2.0
Star (83)

pyright-action

ci codecov

GitHub action for pyright. Featuring:

  • PR/commit annotations for errors/warnings.
  • Super fast startup, via:
    • Download caching.
    • No dependency on setup-node.
- uses: jakebailey/pyright-action@v2
  with:
    version: 1.1.311 # Optional (change me!)

Options

inputs:
  # Options for pyright-action
  version:
    description: 'Version of pyright to run. If neither version nor pylance-version are specified, the latest version will be used.'
    required: false
  pylance-version:
    description: 'Version of pylance whose pyright version should be run. Can be latest-release, latest-prerelease, or a specific pylance version. Ignored if version option is specified.'
    required: false
  working-directory:
    description: 'Directory to run pyright in. If not specified, the repo root will be used.'
    required: false
  annotate:
    description: 'A comma separated list of check annotations to emit. May be "none"/"false", "errors", "warnings", or "all"/"true" (shorthand for "errors, warnings").'
    required: false
    default: 'all'

  # Shorthand for pyright flags
  create-stub:
    description: 'Create type stub file(s) for import. Note: using this option disables commenting.'
    required: false
  dependencies:
    description: 'Emit import dependency information. Note: using this option disables commenting.'
    required: false
  ignore-external:
    description: 'Ignore external imports for verify-types.'
    required: false
  level:
    description: 'Minimum diagnostic level (error or warning)'
    required: false
  project:
    description: 'Use the configuration file at this location.'
    required: false
  python-platform:
    description: 'Analyze for a specific platform (Darwin, Linux, Windows).'
    required: false
  python-path:
    description: 'Path to the Python interpreter.'
    required: false
  python-version:
    description: 'Analyze for a specific version (3.3, 3.4, etc.).'
    required: false
  skip-unannotated:
    description: 'Skip analysis of functions with no type annotations.'
    required: false
  stats:
    description: 'Print detailed performance stats. Note: using this option disables commenting.'
    required: false
  typeshed-path:
    description: 'Use typeshed type stubs at this location.'
    required: false
  venv-path:
    description: 'Directory that contains virtual environments.'
    required: false
  verbose:
    description: 'Emit verbose diagnostics. Note: using this option disables commenting.'
    required: false
  verify-types:
    description: 'Package name to run the type verifier on; must be an *installed* library. Any score under 100% will fail the build. Using this option disables commenting.'
    required: false
  warnings:
    description: 'Use exit code of 1 if warnings are reported.'
    required: false
    default: 'false'

  # Extra arguments (if what you want isn't listed above)
  extra-args:
    description: 'Extra arguments; can be used to specify specific files to check.'
    required: false

  # Removed in pyright 1.1.303
  lib:
    description: 'Use library code to infer types when stubs are missing.'
    required: false
    default: 'false'

  # Deprecated
  no-comments:
    description: 'Disable issue/commit comments.'
    required: false
    default: 'false'
    deprecationMessage: 'Use "annotate" instead.'

Use with a virtualenv

The easiest way to use a virtualenv with this action is to "activate" the environment by adding its bin to $PATH, then allowing pyright to find it there.

- uses: actions/checkout@v3
- uses: actions/setup-python@v4
  with:
    cache: 'pip'

- run: |
    python -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt

- run: echo "$PWD/.venv/bin" >> $GITHUB_PATH

- uses: jakebailey/pyright-action@v2

Use with poetry

Similarly to a virtualenv, the easiest way to get it working is to ensure that poetry's python binary is on $PATH:

- uses: actions/checkout@v3

- run: pipx install poetry
- uses: actions/setup-python@v4
  with:
    cache: 'poetry'

- run: poetry install
- run: echo "$(poetry env info --path)/bin" >> $GITHUB_PATH

- uses: jakebailey/pyright-action@v2

Keeping Pyright and Pylance in sync

If you use Pylance as your language server, you'll likely want pyright-action to use the same version of pyright that Pylance does. The pylance-version option makes this easy.

If you allow VS Code to auto-update Pylance, then set pylance-version to latest-release if you use Pylance's Release builds, or latest-prerelease if you use Pylance's Pre-Release builds. Alternatively, you can set it to a particular Pylance version number (ex. 2023.11.11).

Note that the version option takes precedence over pylance-version, so you'll want to set one or the other, not both.

- uses: jakebailey/pyright-action@v2
  with:
    pylance-version: latest-release

Run pyright is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Run pyright
v2.2.0

Run pyright is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.