{ pkgs ? import <nixpkgs> {}}:
let
python = pkgs.python311;
pypkgs = pkgs.python311Packages;
mypkgs = pkgs.callPackage ./nix/packages.nix { pypkgs=pypkgs; };
in
pkgs.mkShell {
  buildInputs = [
    # More general tools
    pkgs.jq
    pkgs.parallel
    pkgs.black
    pkgs.pre-commit
    (python.withPackages (ps: with ps; with mypkgs; [
        # Data handling
        dask
        pandas
        pyarrow
        xarray
        # Visualization
        seaborn
        plotnine
        # Machine learning
        scikitlearn
        # General tools
        numpy
        graphviz
        ipywidgets
        toolz
        tqdm
        # development
        python-lsp-server
        jupyterlab
        jupytext
    ]))

  ];
}