diff --git a/flake.nix b/flake.nix index 338946bb..f198d57a 100644 --- a/flake.nix +++ b/flake.nix @@ -166,6 +166,7 @@ jax jax-tvm-ffi kernel-abi-check + kernels-data matplotlib mktestdocs openssl.dev diff --git a/nix-builder/overlay.nix b/nix-builder/overlay.nix index 6528118d..8c752a4f 100644 --- a/nix-builder/overlay.nix +++ b/nix-builder/overlay.nix @@ -158,6 +158,8 @@ in kernels = callPackage ./pkgs/python-modules/kernels { }; + kernels-data = callPackage ./pkgs/python-modules/kernels-data { }; + pyclibrary = python-self.callPackage ./pkgs/python-modules/pyclibrary { }; mkTorch = callPackage ./pkgs/python-modules/torch/binary { }; diff --git a/nix-builder/pkgs/crate-dirs.nix b/nix-builder/pkgs/crate-dirs.nix new file mode 100644 index 00000000..22697a7f --- /dev/null +++ b/nix-builder/pkgs/crate-dirs.nix @@ -0,0 +1,13 @@ +{ lib, sourceFiles }: + +with lib.fileset; +toSource { + root = ../..; + fileset = unions [ + ../../Cargo.lock + ../../Cargo.toml + (fileFilter sourceFiles ../../kernel-abi-check) + (fileFilter sourceFiles ../../kernel-builder) + (fileFilter sourceFiles ../../kernels-data) + ]; +} diff --git a/nix-builder/pkgs/kernel-abi-check/default.nix b/nix-builder/pkgs/kernel-abi-check/default.nix index 30ac0306..455da4b4 100644 --- a/nix-builder/pkgs/kernel-abi-check/default.nix +++ b/nix-builder/pkgs/kernel-abi-check/default.nix @@ -26,17 +26,8 @@ rustPlatform.buildRustPackage { || file.hasExt "rs" || file.name == "stable_abi.toml"; in - with lib.fileset; - toSource { - root = ../../..; - fileset = unions [ - ../../../Cargo.lock - ../../../Cargo.toml - (fileFilter sourceFiles ../../../kernel-abi-check) - # Cargo wants access to the whole workspace. - (fileFilter sourceFiles ../../../kernel-builder) - (fileFilter sourceFiles ../../../kernels-data) - ]; + import ../crate-dirs.nix { + inherit lib sourceFiles; }; cargoLock = { diff --git a/nix-builder/pkgs/kernel-builder/default.nix b/nix-builder/pkgs/kernel-builder/default.nix index a3e3840c..53e98602 100644 --- a/nix-builder/pkgs/kernel-builder/default.nix +++ b/nix-builder/pkgs/kernel-builder/default.nix @@ -45,17 +45,8 @@ rustPlatform.buildRustPackage { "toml" ]); in - with lib.fileset; - toSource { - root = ../../..; - fileset = unions [ - ../../../Cargo.lock - ../../../Cargo.toml - (fileFilter sourceFiles ../../../kernel-builder) - # Cargo wants access to the whole workspace. - (fileFilter sourceFiles ../../../kernel-abi-check) - (fileFilter sourceFiles ../../../kernels-data) - ]; + import ../crate-dirs.nix { + inherit lib sourceFiles; }; cargoLock = { diff --git a/nix-builder/pkgs/python-modules/kernel-abi-check/default.nix b/nix-builder/pkgs/python-modules/kernel-abi-check/default.nix index 6476a3bb..762e3a36 100644 --- a/nix-builder/pkgs/python-modules/kernel-abi-check/default.nix +++ b/nix-builder/pkgs/python-modules/kernel-abi-check/default.nix @@ -30,17 +30,8 @@ buildPythonPackage { || file.hasExt "rs" || file.name == "stable_abi.toml"; in - with lib.fileset; - toSource { - root = ../../../..; - fileset = unions [ - ../../../../Cargo.lock - ../../../../Cargo.toml - (fileFilter sourceFiles ../../../../kernel-abi-check) - # Cargo wants access to the whole workspace. - (fileFilter sourceFiles ../../../../kernel-builder) - (fileFilter sourceFiles ../../../../kernels-data) - ]; + import ../../crate-dirs.nix { + inherit lib sourceFiles; }; cargoDeps = rustPlatform.importCargoLock { diff --git a/nix-builder/pkgs/python-modules/kernels-data/default.nix b/nix-builder/pkgs/python-modules/kernels-data/default.nix new file mode 100644 index 00000000..abf77d20 --- /dev/null +++ b/nix-builder/pkgs/python-modules/kernels-data/default.nix @@ -0,0 +1,52 @@ +{ + lib, + buildPythonPackage, + rustPlatform, +}: + +let + version = + (builtins.fromTOML (builtins.readFile ../../../../kernels-data/Cargo.toml)).package.version; + cargoFlags = [ + "-m" + "kernels-data/bindings/python/Cargo.toml" + ]; +in +buildPythonPackage { + pname = "kernels-data"; + inherit version; + format = "pyproject"; + + src = + let + sourceFiles = + file: + file.name == "Cargo.toml" + || file.name == "Cargo.lock" + || file.hasExt "pyi" + || file.name == "pyproject.toml" + || file.name == "python_dependencies.json" + || file.hasExt "rs"; + in + import ../../crate-dirs.nix { + inherit lib sourceFiles; + }; + + cargoDeps = rustPlatform.importCargoLock { + lockFile = ../../../../Cargo.lock; + outputHashes = { + "huggingface-hub-0.0.1" = "sha256-By8b1NUPWu+XF3Om1NcEO+o2qdZUco+FxvrJGNRqxWs="; + }; + }; + + maturinBuildFlags = cargoFlags; + + build-system = [ + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + ]; + + meta = with lib; { + description = "Kernels data structures"; + }; +}