Lightning Utilities¶
This repository covers the following use-cases:
- Reusable GitHub workflows 
- Shared GitHub actions 
- General Python utilities in - lightning_utilities.core
- CLI - python -m lightning_utilities.cli --help
1. Reusable workflows¶
Usage:
name: Check schema
on: [push]
jobs:
  check-schema:
    uses: Lightning-AI/utilities/.github/workflows/check-schema.yml@v0.5.0
    with:
      azure-dir: ""  # skip Azure check
  check-code:
    uses: Lightning-AI/utilities/.github/workflows/check-code.yml@main
    with:
      actions-ref: main  # normally you shall use the same version as the workflow
See usage of other workflows in .github/workflows/ci-use-checks.yaml.
2. Reusable composite actions¶
See available composite actions .github/actions/.
Usage:
name: Do something with cache
on: [push]
jobs:
  pytest:
    runs-on: ubuntu-24.04
    steps:
    - uses: actions/checkout@v3
    - uses: actions/setup-python@v4
      with:
        python-version: 3.9
    - uses: Lightning-AI/utilities/.github/actions/cache
      with:
        python-version: 3.9
        requires: oldest # or latest
3. General Python utilities lightning_utilities.core¶
Installation
From source:pip install https://github.com/Lightning-AI/utilities/archive/refs/heads/main.zip
From pypi:
pip install lightning_utilities
Usage:
Example for optional imports:
from lightning_utilities.core.imports import module_available
if module_available("some_package.something"):
    from some_package import something
4. CLI lightning_utilities.cli¶
The package provides common CLI commands.
Installation
From pypi:
pip install lightning_utilities[cli]
Usage:
python -m lightning_utilities.cli [group] [command]
Example for setting min versions
$ cat requirements/test.txt
coverage>=5.0
codecov>=2.1
pytest>=6.0
pytest-cov
pytest-timeout
$ python -m lightning_utilities.cli requirements set-oldest
$ cat requirements/test.txt
coverage==5.0
codecov==2.1
pytest==6.0
pytest-cov
pytest-timeout