From 16b3a8a5690f7a37d820d92b4a067149422c1615 Mon Sep 17 00:00:00 2001 From: Charlie Lin Date: Wed, 15 Oct 2025 11:21:13 -0400 Subject: [PATCH 01/12] Add 3.15 testing in ci.yml --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 381b096860e..be19b9d83da 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -234,6 +234,10 @@ jobs: "3.13t", "3.14", "3.14t", + "3.15-dev", + "3.15t-dev", + "pypy3.9", + "pypy3.10", "pypy3.11", "graalpy25.0", ] From fe9e4c28267fcc5e1c10273aaf7817a5a7366ee0 Mon Sep 17 00:00:00 2001 From: Charlie Lin Date: Wed, 15 Oct 2025 11:25:51 -0400 Subject: [PATCH 02/12] Create 5518-packaging.md --- newsfragments/5518-packaging.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 newsfragments/5518-packaging.md diff --git a/newsfragments/5518-packaging.md b/newsfragments/5518-packaging.md new file mode 100644 index 00000000000..0b6b0664792 --- /dev/null +++ b/newsfragments/5518-packaging.md @@ -0,0 +1 @@ +Add 3.15 to CI for preliminary testing From a6f169dbd9aa9023b36a745565a68c86c9e6933e Mon Sep 17 00:00:00 2001 From: Charlie Lin Date: Mon, 20 Oct 2025 08:21:16 -0400 Subject: [PATCH 03/12] Update .github/workflows/ci.yml Co-authored-by: Bas Schoenmaeckers <7943856+bschoenmaeckers@users.noreply.github.com> --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index be19b9d83da..36f0b274a29 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -236,8 +236,6 @@ jobs: "3.14t", "3.15-dev", "3.15t-dev", - "pypy3.9", - "pypy3.10", "pypy3.11", "graalpy25.0", ] From 3b84b1f41ecc112564658d8d1b582a2580c0a9cc Mon Sep 17 00:00:00 2001 From: Charlie Lin Date: Tue, 21 Oct 2025 07:37:05 -0400 Subject: [PATCH 04/12] Update Python version compatibility in pyo3-ffi/Cargo.toml --- pyo3-ffi/Cargo.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pyo3-ffi/Cargo.toml b/pyo3-ffi/Cargo.toml index b5e17fdfd71..13b4b2ec06f 100644 --- a/pyo3-ffi/Cargo.toml +++ b/pyo3-ffi/Cargo.toml @@ -35,7 +35,8 @@ abi3-py310 = ["abi3-py311", "pyo3-build-config/abi3-py310"] abi3-py311 = ["abi3-py312", "pyo3-build-config/abi3-py311"] abi3-py312 = ["abi3-py313", "pyo3-build-config/abi3-py312"] abi3-py313 = ["abi3-py314", "pyo3-build-config/abi3-py313"] -abi3-py314 = ["abi3", "pyo3-build-config/abi3-py314"] +abi3-py314 = ["abi3-py315", "pyo3-build-config/abi3-py314"] +abi3-py314 = ["abi3", "pyo3-build-config/abi3-py315"] # Automatically generates `python3.dll` import libraries for Windows targets. generate-import-lib = ["pyo3-build-config/generate-import-lib"] @@ -51,7 +52,7 @@ workspace = true [package.metadata.cpython] min-version = "3.7" -max-version = "3.14" # inclusive +max-version = "3.15" # inclusive [package.metadata.pypy] min-version = "3.11" From cd879a908dc4b87d5d9c88e58a213d805c0883cf Mon Sep 17 00:00:00 2001 From: Charlie Lin Date: Tue, 21 Oct 2025 07:37:34 -0400 Subject: [PATCH 05/12] Typo --- pyo3-ffi/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyo3-ffi/Cargo.toml b/pyo3-ffi/Cargo.toml index 13b4b2ec06f..630433ca896 100644 --- a/pyo3-ffi/Cargo.toml +++ b/pyo3-ffi/Cargo.toml @@ -36,7 +36,7 @@ abi3-py311 = ["abi3-py312", "pyo3-build-config/abi3-py311"] abi3-py312 = ["abi3-py313", "pyo3-build-config/abi3-py312"] abi3-py313 = ["abi3-py314", "pyo3-build-config/abi3-py313"] abi3-py314 = ["abi3-py315", "pyo3-build-config/abi3-py314"] -abi3-py314 = ["abi3", "pyo3-build-config/abi3-py315"] +abi3-py315 = ["abi3", "pyo3-build-config/abi3-py315"] # Automatically generates `python3.dll` import libraries for Windows targets. generate-import-lib = ["pyo3-build-config/generate-import-lib"] From a031ef302b136ff96103756845a517d3816f3c3e Mon Sep 17 00:00:00 2001 From: Charlie Lin Date: Tue, 21 Oct 2025 07:50:32 -0400 Subject: [PATCH 06/12] Add `abi3-py315` in pyo3-build-config/Cargo.toml --- pyo3-build-config/Cargo.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyo3-build-config/Cargo.toml b/pyo3-build-config/Cargo.toml index dd2af861968..9761d60d44f 100644 --- a/pyo3-build-config/Cargo.toml +++ b/pyo3-build-config/Cargo.toml @@ -41,7 +41,8 @@ abi3-py310 = ["abi3-py311"] abi3-py311 = ["abi3-py312"] abi3-py312 = ["abi3-py313"] abi3-py313 = ["abi3-py314"] -abi3-py314 = ["abi3"] +abi3-py314 = ["abi3-py315"] +abi3-py315 = ["abi3"] [package.metadata.docs.rs] features = ["resolve-config"] From 9f65eeac2967cc8bd5e417ecea2637c897a4d2c0 Mon Sep 17 00:00:00 2001 From: Charlie Lin Date: Tue, 21 Oct 2025 07:52:30 -0400 Subject: [PATCH 07/12] Add abi3-py315 in Cargo.toml --- Cargo.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 1a7588b5f95..ffa8b468409 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -117,7 +117,8 @@ abi3-py310 = ["abi3-py311", "pyo3-build-config/abi3-py310", "pyo3-ffi/abi3-py310 abi3-py311 = ["abi3-py312", "pyo3-build-config/abi3-py311", "pyo3-ffi/abi3-py311"] abi3-py312 = ["abi3-py313", "pyo3-build-config/abi3-py312", "pyo3-ffi/abi3-py312"] abi3-py313 = ["abi3-py314", "pyo3-build-config/abi3-py313", "pyo3-ffi/abi3-py313"] -abi3-py314 = ["abi3", "pyo3-build-config/abi3-py314", "pyo3-ffi/abi3-py314"] +abi3-py314 = ["abi3-py315", "pyo3-build-config/abi3-py314", "pyo3-ffi/abi3-py314"] +abi3-py315 = ["abi3", "pyo3-build-config/abi3-py315", "pyo3-ffi/abi3-py315"] # Automatically generates `python3.dll` import libraries for Windows targets. generate-import-lib = ["pyo3-ffi/generate-import-lib"] From 1c179fde4efd88f2fe3adb9903f953e11a279d0e Mon Sep 17 00:00:00 2001 From: Charlie Lin Date: Tue, 21 Oct 2025 07:54:47 -0400 Subject: [PATCH 08/12] Bump max supported CPython version in noxfile.py --- noxfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/noxfile.py b/noxfile.py index 9fa8188dd27..8b5828af1ae 100644 --- a/noxfile.py +++ b/noxfile.py @@ -959,8 +959,8 @@ def test_version_limits(session: nox.Session): config_file.set("CPython", "3.6") _run_cargo(session, "check", env=env, expect_error=True) - assert "3.15" not in PY_VERSIONS - config_file.set("CPython", "3.15") + assert "3.16" not in PY_VERSIONS + config_file.set("CPython", "3.16") _run_cargo(session, "check", env=env, expect_error=True) # 3.15 CPython should build if abi3 is explicitly requested From 86c5c9441ea6dd0bf1b6aa8a0f378664a7387186 Mon Sep 17 00:00:00 2001 From: Charlie Lin Date: Tue, 21 Oct 2025 07:59:04 -0400 Subject: [PATCH 09/12] Bump max CPython version in pyo3-ffi/build.rs --- pyo3-ffi/build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyo3-ffi/build.rs b/pyo3-ffi/build.rs index 3e2354f2d38..929d35f1036 100644 --- a/pyo3-ffi/build.rs +++ b/pyo3-ffi/build.rs @@ -18,7 +18,7 @@ const SUPPORTED_VERSIONS_CPYTHON: SupportedVersions = SupportedVersions { min: PythonVersion { major: 3, minor: 7 }, max: PythonVersion { major: 3, - minor: 14, + minor: 15, }, }; From a4c9d3c57fd9835a47ce579f44e358f75320131b Mon Sep 17 00:00:00 2001 From: Charlie Lin Date: Tue, 11 Nov 2025 03:29:53 +0000 Subject: [PATCH 10/12] Lint noxfile.py encountered by PyLance --- noxfile.py | 102 +++++++++++++++++++++++++++++------------------------ 1 file changed, 56 insertions(+), 46 deletions(-) diff --git a/noxfile.py b/noxfile.py index 8b5828af1ae..a2a9dd359fe 100644 --- a/noxfile.py +++ b/noxfile.py @@ -8,19 +8,18 @@ import sysconfig import tarfile import tempfile +from collections.abc import ( + Callable, + Iterable, + Iterator, +) from contextlib import ExitStack, contextmanager from functools import lru_cache from glob import glob from pathlib import Path from typing import ( Any, - Callable, - Dict, - Iterable, - Iterator, - List, - Optional, - Tuple, + IO, ) import nox.command @@ -54,7 +53,7 @@ def _get_output(*args: str) -> str: def _parse_supported_interpreter_version( python_impl: str, # Literal["cpython", "pypy"], TODO update after 3.7 dropped -) -> Tuple[str, str]: +) -> tuple[str, str]: output = _get_output("cargo", "metadata", "--format-version=1", "--no-deps") cargo_packages = json.loads(output)["packages"] # Check Python interpreter version support in package metadata @@ -68,7 +67,7 @@ def _parse_supported_interpreter_version( def _supported_interpreter_versions( python_impl: str, # Literal["cpython", "pypy"], TODO update after 3.7 dropped -) -> List[str]: +) -> list[str]: min_version, max_version = _parse_supported_interpreter_version(python_impl) major = int(min_version.split(".")[0]) assert major == 3, f"unsupported Python major version {major}" @@ -97,7 +96,7 @@ def test_rust(session: nox.Session): _run_cargo_test(session, package="pyo3-macros-backend") _run_cargo_test(session, package="pyo3-macros") - extra_flags = [] + extra_flags: list[str] = [] # pypy and graalpy don't have Py_Initialize APIs, so we can only # build the main tests, not run them if sys.implementation.name in ("pypy", "graalpy"): @@ -214,14 +213,14 @@ def rumdl(session: nox.Session): @nox.session(name="clippy", venv_backend="none") -def clippy(session: nox.Session) -> bool: +def clippy(session: nox.Session) -> None: if not (_clippy(session) and _clippy_additional_workspaces(session)): session.error("one or more jobs failed") -def _clippy(session: nox.Session, *, env: Dict[str, str] = None) -> bool: +def _clippy(session: nox.Session, *, env: dict[str, str] | None = None) -> bool: success = True - env = env or os.environ + env = env or dict(os.environ) for feature_set in _get_feature_sets(): try: _run_cargo( @@ -263,12 +262,12 @@ def _clippy_additional_workspaces(session: nox.Session) -> bool: @nox.session(venv_backend="none") -def bench(session: nox.Session) -> bool: +def bench(session: nox.Session) -> None: _run_cargo(session, "bench", _BENCHES, *session.posargs) @nox.session() -def codspeed(session: nox.Session) -> bool: +def codspeed(session: nox.Session) -> None: # rust benchmarks os.chdir(PYO3_DIR / "pyo3-benches") _run_cargo(session, "codspeed", "build") @@ -283,7 +282,7 @@ def codspeed(session: nox.Session) -> bool: def clippy_all(session: nox.Session) -> None: success = True - def _clippy_with_config(env: Dict[str, str]) -> None: + def _clippy_with_config(env: dict[str, str]) -> None: nonlocal success success &= _clippy(session, env=env) @@ -298,7 +297,7 @@ def _clippy_with_config(env: Dict[str, str]) -> None: def check_all(session: nox.Session) -> None: success = True - def _check(env: Dict[str, str]) -> None: + def _check(env: dict[str, str]) -> None: nonlocal success for feature_set in _get_feature_sets(): try: @@ -347,7 +346,7 @@ def contributors(session: nox.Session) -> None: if len(session.posargs) > 2: raise Exception("too many arguments") - authors = set() + authors: set[str] | list[str] = set() while True: resp = requests.get( @@ -387,9 +386,10 @@ def __init__(self): self.pyversion = sys.version.split()[0] self.pymajor, self.pyminor, self.pymicro = self.pyversion.split(".") - self.pymicro, self.pydev = re.match( - "([0-9]*)([^0-9].*)?", self.pymicro - ).groups() + match = re.match("([0-9]*)([^0-9].*)?", self.pymicro) + if match: + self.pymicro, self.pydev = match.groups() + if self.pydev is None: self.pydev = "" @@ -441,7 +441,7 @@ def test_emscripten(session: nox.Session): ) session.env["RUSTDOCFLAGS"] = session.env["RUSTFLAGS"] session.env["CARGO_BUILD_TARGET"] = target - session.env["PYO3_CROSS_LIB_DIR"] = pythonlibdir + session.env["PYO3_CROSS_LIB_DIR"] = str(pythonlibdir) _run(session, "rustup", "target", "add", target, "--toolchain", "stable") _run( session, @@ -517,8 +517,8 @@ def test_cross_compilation_windows(session: nox.Session): @nox.session(venv_backend="none") def docs(session: nox.Session, nightly: bool = False, internal: bool = False) -> None: rustdoc_flags = ["-Dwarnings"] - toolchain_flags = [] - cargo_flags = [] + toolchain_flags: list[str] = [] + cargo_flags: list[str] = [] nightly = nightly or ("nightly" in session.posargs) internal = internal or ("internal" in session.posargs) @@ -539,7 +539,7 @@ def docs(session: nox.Session, nightly: bool = False, internal: bool = False) -> else: cargo_flags.extend(["--exclude=pyo3-macros", "--exclude=pyo3-macros-backend"]) - rustdoc_flags.append(session.env.get("RUSTDOCFLAGS", "")) + rustdoc_flags.append(session.env.get("RUSTDOCFLAGS") or "") session.env["RUSTDOCFLAGS"] = " ".join(rustdoc_flags) features = "full" @@ -579,6 +579,9 @@ def build_guide(session: nox.Session): @nox.session(name="build-netlify-site") def build_netlify_site(session: nox.Session): + if requests is None: + session.error("requests library is required for this session") + # Remove netlify_build directory if it exists netlify_build = Path("netlify_build") if netlify_build.exists(): @@ -726,7 +729,7 @@ def check_guide(session: nox.Session): # rust docs "(https://docs.rs/[^#]+)#[a-zA-Z0-9._-]*": "$1", } - remap_args = [] + remap_args: list[str] = [] for key, value in remaps.items(): remap_args.extend(("--remap", f"{key} {value}")) @@ -771,7 +774,7 @@ def format_guide(session: nox.Session): for path in Path("guide").glob("**/*.md"): session.log("Working on %s", path) lines = iter(path.read_text().splitlines(True)) - new_lines = [] + new_lines: list[str] = [] for line in lines: new_lines.append(line) @@ -893,7 +896,7 @@ def set_msrv_package_versions(session: nox.Session): *(Path(p).parent for p in glob("examples/*/Cargo.toml")), *(Path(p).parent for p in glob("pyo3-ffi/examples/*/Cargo.toml")), ) - min_pkg_versions = {} + min_pkg_versions: dict[str, str] = {} # run cargo update first to ensure that everything is at highest # possible version, so that this matches what CI will resolve to. @@ -908,10 +911,12 @@ def set_msrv_package_versions(session: nox.Session): lock_file = project / "Cargo.lock" - def load_pkg_versions(): + def load_pkg_versions(): + if toml is None: + session.error("requires `toml` to be installed") cargo_lock = toml.loads(lock_file.read_text()) # Cargo allows to depends on multiple versions of the same package - pkg_versions = defaultdict(list) + pkg_versions: defaultdict[str, list[str]] = defaultdict(list) for pkg in cargo_lock["package"]: name = pkg["name"] if name not in min_pkg_versions: @@ -926,7 +931,7 @@ def load_pkg_versions(): if version != min_version: pkg_id = pkg_name + ":" + version _run_cargo_set_package_version( - session, pkg_id, min_version, project=project + session, pkg_id, min_version, project=str(project) ) # assume `_run_cargo_set_package_version` has changed something # and re-read `Cargo.lock` @@ -1107,7 +1112,7 @@ def update_ui_tests(session: nox.Session): def test_introspection(session: nox.Session): session.install("maturin") session.install("ruff") - options = [] + options: list[str] = [] target = os.environ.get("CARGO_BUILD_TARGET") if target is not None: options += ("--target", target) @@ -1128,6 +1133,8 @@ def test_introspection(session: nox.Session): for file in Path(session.virtualenv.location).rglob("pyo3_pytests.*"): if file.is_file(): lib_file = str(file.resolve()) + if lib_file is None: + session.error("Could not find built pyo3_pytests") _run_cargo_test( session, package="pyo3-introspection", @@ -1143,19 +1150,21 @@ def _build_docs_for_ffi_check(session: nox.Session) -> None: @lru_cache() -def _get_rust_info() -> Tuple[str, ...]: +def _get_rust_info() -> tuple[str, ...]: output = _get_output("rustc", "-vV") return tuple(output.splitlines()) -def get_rust_version() -> Tuple[int, int, int, List[str]]: +def get_rust_version() -> tuple[int, int, int, list[str]]: for line in _get_rust_info(): if line.startswith(_RELEASE_LINE_START): version = line[len(_RELEASE_LINE_START) :].strip() # e.g. 1.67.0-beta.2 (version_number, *extra) = version.split("-", maxsplit=1) - return (*map(int, version_number.split(".")), extra) + major, minor, patch = map(int, version_number.split(".")) + return (major, minor, patch, extra) + raise RuntimeError("Could not parse Rust version") def is_rust_nightly() -> bool: @@ -1169,10 +1178,11 @@ def _get_rust_default_target() -> str: for line in _get_rust_info(): if line.startswith(_HOST_LINE_START): return line[len(_HOST_LINE_START) :].strip() + raise RuntimeError("Could not get Rust default target") @lru_cache() -def _get_feature_sets() -> Tuple[Optional[str], ...]: +def _get_feature_sets() -> tuple[str | None, ...]: """Returns feature sets to use for Rust jobs""" cargo_target = os.getenv("CARGO_BUILD_TARGET", "") @@ -1192,8 +1202,8 @@ def _get_feature_sets() -> Tuple[Optional[str], ...]: _HOST_LINE_START = "host: " -def _get_coverage_env() -> Dict[str, str]: - env = {} +def _get_coverage_env() -> dict[str, str]: + env: dict[str, str] = {} output = _get_output("cargo", "llvm-cov", "show-env") for line in output.strip().splitlines(): @@ -1246,10 +1256,10 @@ def _run_cargo( def _run_cargo_test( session: nox.Session, *, - package: Optional[str] = None, - features: Optional[str] = None, - env: Optional[Dict[str, str]] = None, - extra_flags: Optional[List[str]] = None, + package: str | None = None, + features: str | None = None, + env: dict[str, str] | None = None, + extra_flags: list[str] | None = None, ) -> None: command = ["cargo"] if "careful" in session.posargs: @@ -1280,7 +1290,7 @@ def _run_cargo_set_package_version( pkg_id: str, version: str, *, - project: Optional[str] = None, + project: str | None = None, ) -> None: command = ["cargo", "update", "-p", pkg_id, "--precise", version, "--workspace"] if project: @@ -1289,13 +1299,13 @@ def _run_cargo_set_package_version( def _for_all_version_configs( - session: nox.Session, job: Callable[[Dict[str, str]], None] + session: nox.Session, job: Callable[[dict[str, str]], None] ) -> None: env = os.environ.copy() with _config_file() as config_file: env["PYO3_CONFIG_FILE"] = config_file.name - def _job_with_config(implementation, version): + def _job_with_config(implementation: str, version: str) -> None: session.log(f"{implementation} {version}") config_file.set(implementation, version) job(env) @@ -1308,7 +1318,7 @@ def _job_with_config(implementation, version): class _ConfigFile: - def __init__(self, config_file) -> None: + def __init__(self, config_file: IO[str]) -> None: self._config_file = config_file def set( From e7985fe4439c30c5494b0dafbe9ab3c30b1d4d00 Mon Sep 17 00:00:00 2001 From: Charlie Lin Date: Tue, 11 Nov 2025 13:22:34 +0000 Subject: [PATCH 11/12] Closer match of PyObject's definition in 3.15t --- pyo3-ffi/src/object.rs | 7 ++++++- pyo3-ffi/src/refcount.rs | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pyo3-ffi/src/object.rs b/pyo3-ffi/src/object.rs index d7bd17b5e46..13c2d29293f 100644 --- a/pyo3-ffi/src/object.rs +++ b/pyo3-ffi/src/object.rs @@ -74,6 +74,9 @@ impl std::fmt::Debug for PyObjectObRefcnt { #[cfg(all(not(Py_3_12), not(Py_GIL_DISABLED)))] pub type PyObjectObRefcnt = Py_ssize_t; +const _PyGC_PREV_SHIFT: usize = 2; +pub const _PyObject_MIN_ALIGNMENT: usize = 1 << _PyGC_PREV_SHIFT; + // PyObject_HEAD_INIT comes before the PyObject definition in object.h // but we put it after PyObject because HEAD_INIT uses PyObject @@ -114,7 +117,9 @@ pub const PyObject_HEAD_INIT: PyObject = PyObject { _ob_next: std::ptr::null_mut(), #[cfg(py_sys_config = "Py_TRACE_REFS")] _ob_prev: std::ptr::null_mut(), - #[cfg(Py_GIL_DISABLED)] + #[cfg(all(Py_GIL_DISABLED, not(Py_3_15)))] + ob_tid: 0, + #[cfg(all(Py_GIL_DISABLED, Py_3_15))] ob_tid: 0, #[cfg(all(Py_GIL_DISABLED, Py_3_14))] ob_flags: 0, diff --git a/pyo3-ffi/src/refcount.rs b/pyo3-ffi/src/refcount.rs index 22a6268c729..51543231daa 100644 --- a/pyo3-ffi/src/refcount.rs +++ b/pyo3-ffi/src/refcount.rs @@ -14,8 +14,10 @@ use std::ptr; #[cfg(Py_GIL_DISABLED)] use std::sync::atomic::Ordering::Relaxed; -#[cfg(Py_3_14)] +#[cfg(all(Py_3_14, not(Py_3_15)))] const _Py_STATICALLY_ALLOCATED_FLAG: c_int = 1 << 7; +#[cfg(Py_3_15)] +const _Py_STATICALLY_ALLOCATED_FLAG: c_int = 1 << 2; #[cfg(all(Py_3_12, not(Py_3_14)))] const _Py_IMMORTAL_REFCNT: Py_ssize_t = { From f4da3c982c097a4fa9d255a393bd2c3b041c5a24 Mon Sep 17 00:00:00 2001 From: Charlie Lin Date: Thu, 27 Nov 2025 16:39:55 +0000 Subject: [PATCH 12/12] tmp --- noxfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/noxfile.py b/noxfile.py index a2a9dd359fe..1b5a9707787 100644 --- a/noxfile.py +++ b/noxfile.py @@ -581,7 +581,7 @@ def build_guide(session: nox.Session): def build_netlify_site(session: nox.Session): if requests is None: session.error("requests library is required for this session") - + # Remove netlify_build directory if it exists netlify_build = Path("netlify_build") if netlify_build.exists(): @@ -911,7 +911,7 @@ def set_msrv_package_versions(session: nox.Session): lock_file = project / "Cargo.lock" - def load_pkg_versions(): + def load_pkg_versions(): if toml is None: session.error("requires `toml` to be installed") cargo_lock = toml.loads(lock_file.read_text())