noxfile.py (22 lines of code) (raw):
import nox
nox.options.reuse_existing_virtualenvs = True
nox.options.sessions = ["lint", "tests"]
SRC = "."
@nox.session(python=["3.10"])
def lint(session):
"""Runs linters and fixers"""
session.run("poetry", "install", external=True)
session.run("poetry", "check", "--lock", external=True)
session.run("isort", "--check", SRC)
session.run("black", "--check", SRC)
session.run("flake8", SRC)
session.run("pyright", SRC)
@nox.session(python=["3.10"])
def format(session):
"""Runs linters and fixers"""
session.run("poetry", "install", external=True)
session.run("isort", SRC)
session.run("black", SRC)
session.run("autoflake", SRC)
@nox.session(python=["3.10"])
def tests(session):
"""Runs tests"""
session.run("poetry", "install", external=True)
session.run("pytest", *session.posargs)