Skip to content
Snippets Groups Projects
noxfile.py 1.68 KiB
Newer Older
Xuefeng Ding's avatar
Xuefeng Ding committed
"""
nox configuration file.
"""

Xuefeng Ding's avatar
Xuefeng Ding committed
import glob
Xuefeng Ding's avatar
Xuefeng Ding committed
import sys
Xuefeng Ding's avatar
Xuefeng Ding committed
from pathlib import Path

import nox

DIR = Path(__file__).parent.resolve()
Xuefeng Ding's avatar
Xuefeng Ding committed


Xuefeng Ding's avatar
Xuefeng Ding committed
@nox.session(venv_backend="none")
def pre_commit(session: nox.Session) -> None:
    """
    Run pre-commit
    """
    if "pre_commit" in sys.argv:
        session.run("pre-commit", "run", "--all-files")


Xuefeng Ding's avatar
Xuefeng Ding committed
@nox.session(venv_backend="none")
def dev(session: nox.Session) -> None:
    """
    Prepare a .venv folder.
    """

Xuefeng Ding's avatar
Xuefeng Ding committed
    library_output_dir = DIR / "src" / "myproj" / "simulation" / "_csrc"
    print(sys.path)
    session.run("which", "pip")
Xuefeng Ding's avatar
Xuefeng Ding committed

Xuefeng Ding's avatar
Xuefeng Ding committed
    session.run(
Xuefeng Ding's avatar
Xuefeng Ding committed
        "pip",
Xuefeng Ding's avatar
Xuefeng Ding committed
        "install",
        "--no-build-isolation",
        "--check-build-dependencies",
Xuefeng Ding's avatar
Xuefeng Ding committed
        "-ve",
        ".",
Xuefeng Ding's avatar
Xuefeng Ding committed
        f"-Ccmake.define.Python_ROOT_DIR={sys.exec_prefix}",
Xuefeng Ding's avatar
Xuefeng Ding committed
        "-Ccmake.define.CMAKE_EXPORT_COMPILE_COMMANDS=1",
        f"-Ccmake.define.CMAKE_LIBRARY_OUTPUT_DIRECTORY={library_output_dir}",
        "-Cbuild-dir=build",
Xuefeng Ding's avatar
Xuefeng Ding committed
    )
Xuefeng Ding's avatar
Xuefeng Ding committed


Xuefeng Ding's avatar
Xuefeng Ding committed
@nox.session(reuse_venv=True)
def cpp_lint_slow(session: nox.Session) -> None:
    if "cpp_lint_slow" in sys.argv:
        cpp_files = glob.glob("**/*.cc", recursive=True)
        session.run("clang-tidy", "-p", "build", *cpp_files)


Xuefeng Ding's avatar
Xuefeng Ding committed
@nox.session(reuse_venv=True)
def rr_run(session: nox.Session) -> None:
    """
    Run sp-repo-review.
    """

    session.install("sp-repo-review[cli]")
    session.run("repo-review", ".")


@nox.session
def rr_pylint(session: nox.Session) -> None:
    """
    Run PyLint.
    """
    # This needs to be installed into the package environment, and is slower
    # than a pre-commit check
    session.install("-e.")
    session.install("pylint>=3.2")
    session.run("pylint", "myproj.simulation", *session.posargs)