Created
April 4, 2024 14:06
-
-
Save MtkN1/41f36491dbf7162043d89d73a9d87dec to your computer and use it in GitHub Desktop.
nox for Rye (it works, sort of)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import nox | |
import os | |
from pathlib import Path | |
PYTHON_VERSIONS = ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
VENV_BACKEND = "uv" | |
def ensurepath(): | |
rye_home = os.getenv("RYE_HOME") | |
rye_py = Path(rye_home) if rye_home else Path.home() / ".rye" / "py" | |
for py_dir in rye_py.iterdir(): | |
bin_dir = py_dir / "bin" | |
os.environ["PATH"] = f"{bin_dir}:{os.environ['PATH']}" | |
ensurepath() | |
@nox.session() | |
def fetch(session: nox.Session): | |
for require_version in PYTHON_VERSIONS: | |
session.run("rye", "fetch", require_version, external=True) | |
ensurepath() | |
@nox.session(python=PYTHON_VERSIONS, venv_backend=VENV_BACKEND) | |
def tests(session: nox.Session): | |
session.install("-r", "requirements-dev.lock") | |
session.run("pytest") | |
@nox.session(venv_backend=VENV_BACKEND) | |
def lint(session: nox.Session): | |
session.install("-r", "requirements-dev.lock") | |
session.run("ruff", "check") |
@vincentchov There were a few missing prerequisites for this snippet to function correctly. You'll need to add a few dependencies:
$ rye add --dev pytest nox uv ruff
With these dependencies installed, the snippet should work as expected.
However, nowadays, using uv>=0.4
directly is a better approach than relying on this specific snippet.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
What about it doesn't work as expected?