diff --git a/.gitignore b/.gitignore index 607f2e4a..ada5d0b5 100644 --- a/.gitignore +++ b/.gitignore @@ -28,7 +28,6 @@ dataframe_benchmark/ bin/ coverage-html .DS_Store -flake.lock tags __pycache__ venv @@ -45,4 +44,4 @@ Cargo.lock # (transient; the committed *.db fixtures themselves stay tracked). *.db-wal *.db-shm -*.db-journal \ No newline at end of file +*.db-journal diff --git a/examples/examples.cabal b/examples/examples.cabal index 0cb1d9f7..e74248a2 100644 --- a/examples/examples.cabal +++ b/examples/examples.cabal @@ -139,7 +139,7 @@ executable examples cassava >= 0.1 && < 1, containers >= 0.6.7 && < 0.9, directory >= 1.3.0.0 && < 2, - granite ^>= 0.6, + granite >= 0.6 && < 1, hashable >= 1.2 && < 2, hasktorch, http-conduit, diff --git a/flake.lock b/flake.lock new file mode 100644 index 00000000..2b42c650 --- /dev/null +++ b/flake.lock @@ -0,0 +1,112 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "granite": { + "flake": false, + "locked": { + "lastModified": 1782949848, + "narHash": "sha256-oPoDjgrep4DgOTH+UatooiUdVDMBjMRv+ai3fIvulTE=", + "owner": "mchav", + "repo": "granite", + "rev": "3d62c7ce2f02f73b1c0614e3721b7af27147f110", + "type": "github" + }, + "original": { + "owner": "mchav", + "repo": "granite", + "type": "github" + } + }, + "network-run": { + "flake": false, + "locked": { + "lastModified": 1763529229, + "narHash": "sha256-j3Pkvn/eXiciQQIIc+SkWiFSLqbVyAc0SfLyIRZUsv8=", + "owner": "kazu-yamamoto", + "repo": "network-run", + "rev": "f49d0eeafcecce3e26e66edb3209a04cba30defa", + "type": "github" + }, + "original": { + "owner": "kazu-yamamoto", + "repo": "network-run", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1780243769, + "narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "331800de5053fcebacf6813adb5db9c9dca22a0c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "pinch": { + "flake": false, + "locked": { + "lastModified": 1763952216, + "narHash": "sha256-rpk7mqi4C77UFIRTDVWykE30jd5OY5K4l9LWiGo46f8=", + "owner": "abhinav", + "repo": "pinch", + "rev": "0bf7dddf7c3203d3c04aedb709a1c774f99ff796", + "type": "github" + }, + "original": { + "owner": "abhinav", + "repo": "pinch", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "granite": "granite", + "network-run": "network-run", + "nixpkgs": "nixpkgs", + "pinch": "pinch" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix index b5e3f8e4..c3d683a5 100644 --- a/flake.nix +++ b/flake.nix @@ -4,42 +4,111 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; + pinch = { + url = "github:abhinav/pinch"; + flake = false; + }; + network-run = { + url = "github:kazu-yamamoto/network-run"; + flake = false; + }; + granite = { + url = "github:mchav/granite"; + flake = false; + }; }; - outputs = { self, nixpkgs, flake-utils }: - flake-utils.lib.eachDefaultSystem (system: + outputs = + inputs@{ + self, + nixpkgs, + flake-utils, + ... + }: + flake-utils.lib.eachDefaultSystem ( + system: let pkgs = nixpkgs.legacyPackages.${system}; - granitePkg = pkgs.fetchFromGitHub { - repo = "granite"; - owner = "mchav"; - rev = "main"; - hash = "sha256-Z/o8gxMOBltKiaL0NEjMUyOvUljRvKErWeM6Ul3GM9k="; - }; - hsPkgs = pkgs.haskellPackages.extend (self: super: { - granite = self.callCabal2nix "granite" granitePkg { }; - dataframe-fastcsv = self.callCabal2nix "dataframe-fastcsv" ./dataframe-fastcsv { }; - dataframe-persistent = self.callCabal2nix "dataframe-persistent" ./dataframe-persistent { }; - dataframe-hasktorch = self.callCabal2nix "dataframe-hasktorch" ./dataframe-hasktorch { }; - dataframe = self.callCabal2nix "dataframe" ./. { }; - }); + hsPkgs = pkgs.haskellPackages.extend ( + self: super: { + network-run = self.callCabal2nix "network-run" inputs.network-run { }; + dataframe-arrow = self.callCabal2nix "dataframe-arrow" ./dataframe-arrow { }; + dataframe-core = self.callCabal2nix "dataframe-core" ./dataframe-core { }; + dataframe-csv = self.callCabal2nix "dataframe-csv" ./dataframe-csv { }; + dataframe-csv-th = self.callCabal2nix "dataframe-csv-th" ./dataframe-csv-th { }; + dataframe-expr-serializer = + self.callCabal2nix "dataframe-expr-serializer" ./dataframe-expr-serializer + { }; + dataframe-fastcsv = self.callCabal2nix "dataframe-fastcsv" ./dataframe-fastcsv { }; + # dataframe-fusion = self.callCabal2nix "dataframe-fusion" ./dataframe-fusion { }; + dataframe-hasktorch = self.callCabal2nix "dataframe-hasktorch" ./dataframe-hasktorch { }; + dataframe-huggingface = self.callCabal2nix "dataframe-huggingface" ./dataframe-huggingface { }; + dataframe-json = self.callCabal2nix "dataframe-json" ./dataframe-json { }; + dataframe-lazy = self.callCabal2nix "dataframe-lazy" ./dataframe-lazy { }; + dataframe-learn = self.callCabal2nix "dataframe-learn" ./dataframe-learn { + parallel = pkgs.haskell.lib.dontCheck (self.callHackage "parallel" "3.3.0.0" { }); + }; + dataframe-operations = self.callCabal2nix "dataframe-operations" ./dataframe-operations { }; + dataframe-parquet = self.callCabal2nix "dataframe-parquet" ./dataframe-parquet { + pinch = self.callCabal2nix "pinch" inputs.pinch { }; + }; + dataframe-parquet-th = self.callCabal2nix "dataframe-parquet-th" ./dataframe-parquet-th { }; + dataframe-parsing = self.callCabal2nix "dataframe-parsing" ./dataframe-parsing { }; + dataframe-persistent = self.callCabal2nix "dataframe-persistent" ./dataframe-persistent { }; + dataframe-th = self.callCabal2nix "dataframe-th" ./dataframe-th { }; + dataframe-viz = self.callCabal2nix "dataframe-viz" ./dataframe-viz { + granite = self.callCabal2nix "granite" inputs.granite { }; + }; + dataframe = self.callCabal2nix "dataframe" ./. { }; + } + ); in { packages = { default = hsPkgs.dataframe; dataframe = hsPkgs.dataframe; + dataframe-arrow = hsPkgs.dataframe-arrow; + dataframe-core = hsPkgs.dataframe-core; + dataframe-csv = hsPkgs.dataframe-csv; + dataframe-csv-th = hsPkgs.dataframe-csv-th; dataframe-fastcsv = hsPkgs.dataframe-fastcsv; + # dataframe-fusion = hsPkgs.dataframe-fusion; dataframe-hasktorch = hsPkgs.dataframe-hasktorch; + dataframe-json = hsPkgs.dataframe-json; + dataframe-lazy = hsPkgs.dataframe-lazy; + dataframe-learn = hsPkgs.dataframe-learn; + dataframe-operations = hsPkgs.dataframe-operations; + dataframe-parquet = hsPkgs.dataframe-parquet; + dataframe-parquet-th = hsPkgs.dataframe-parquet-th; + dataframe-parsing = hsPkgs.dataframe-parsing; dataframe-persistent = hsPkgs.dataframe-persistent; + dataframe-th = hsPkgs.dataframe-th; + dataframe-viz = hsPkgs.dataframe-viz; }; devShells.default = hsPkgs.shellFor { packages = ps: [ ps.dataframe + ps.dataframe-arrow + ps.dataframe-core + ps.dataframe-csv + ps.dataframe-csv-th + ps.dataframe-expr-serializer ps.dataframe-fastcsv - ps.dataframe-persistent + # ps.dataframe-fusion ps.dataframe-hasktorch + ps.dataframe-huggingface + ps.dataframe-json + ps.dataframe-lazy + ps.dataframe-learn + ps.dataframe-operations + ps.dataframe-parquet + ps.dataframe-parquet-th + ps.dataframe-parsing + ps.dataframe-persistent + ps.dataframe-th + ps.dataframe-viz ]; nativeBuildInputs = with hsPkgs; [ ghc @@ -48,5 +117,6 @@ ]; withHoogle = true; }; - }); + } + ); }