Unverified Commit 77bfd99d authored by Gaétan Lepage's avatar Gaétan Lepage Committed by GitHub
Browse files

python3Packages.polars: 1.31.0 -> 1.36.1 (#472819)

parents 34b2f670 f98d5cba
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -22,14 +22,14 @@

buildPythonPackage rec {
  pname = "narwhals";
  version = "2.10.0";
  version = "2.14.0";
  pyproject = true;

  src = fetchFromGitHub {
    owner = "narwhals-dev";
    repo = "narwhals";
    tag = "v${version}";
    hash = "sha256-a/X6LVzFxtjyaFcgZapJZ5i9h5LSB39XjGu/HdhPf8k=";
    hash = "sha256-5yynyaY5NuxSGEro4pDzFFkf0PsYArzlB23lXYmzydY=";
  };

  build-system = [ hatchling ];
+0 −15
Original line number Diff line number Diff line
diff --git a/crates/polars-compute/src/lib.rs b/crates/polars-compute/src/lib.rs
index ebe1ef753..6e1eee897 100644
--- a/crates/polars-compute/src/lib.rs
+++ b/crates/polars-compute/src/lib.rs
@@ -5,6 +5,10 @@
     all(feature = "simd", target_arch = "x86_64"),
     feature(stdarch_x86_avx512)
 )]
+#![cfg_attr(
+    all(feature = "simd", target_arch = "x86_64"),
+    feature(avx512_target_feature)
+)]
 
 use arrow::types::NativeType;
 
+27 −45
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  build,
  buildPythonPackage,
  cargo,
  cmake,
@@ -15,7 +16,7 @@
  rustc,
  rustPlatform,
  runCommand,

  setuptools,
  mimalloc,
  jemalloc,
  rust-jemalloc-sys,
@@ -40,7 +41,7 @@
}:

let
  version = "1.31.0";
  version = "1.36.1";

  # Hide symbols to prevent accidental use
  rust-jemalloc-sys = throw "polars: use polarsMemoryAllocator over rust-jemalloc-sys";
@@ -50,34 +51,26 @@ in
buildPythonPackage rec {
  pname = "polars";
  inherit version;
  format = "setuptools";
  pyproject = true;

  src = fetchFromGitHub {
    owner = "pola-rs";
    repo = "polars";
    tag = "py-${version}";
    hash = "sha256-OZ7guV/uxa3jGesAh+ubrFjQSNVp5ImfXfPAQxagTj0=";
    hash = "sha256-0usMg/xQZOzrLf2gIfNFtzj96cYVzq5gFaKTFLqyfK0=";
  };

  patches = [
    ./avx512.patch
  ];

  # Do not type-check assertions because some of them use unstable features (`is_none_or`)
  postPatch = ''
    while IFS= read -r -d "" path ; do
      sed -i 's \(\s*\)debug_assert! \1#[cfg(debug_assertions)]\n\1debug_assert! ' "$path"
    done < <( find -iname '*.rs' -print0 )
  '';

  cargoDeps = rustPlatform.fetchCargoVendor {
    inherit pname version src;
    hash = "sha256-yGTXUW6IVa+nRpmnkEl20/RJ/mxTSAaokETT8QLE+Ns=";
    hash = "sha256-20AI4AGSxnmYitQjfwTFwxMBplEqvN4WXPFdoqJBgSg=";
  };

  requiredSystemFeatures = [ "big-parallel" ];

  build-system = [ rustPlatform.maturinBuildHook ];
  build-system = [
    setuptools
    build
  ];

  nativeBuildInputs = [
    cargo
@@ -86,6 +79,7 @@ buildPythonPackage rec {
    rustPlatform.cargoSetupHook
    rustPlatform.cargoBuildHook
    rustPlatform.cargoInstallHook
    rustPlatform.maturinBuildHook
    rustc
  ];

@@ -101,12 +95,8 @@ buildPythonPackage rec {
    # https://discourse.nixos.org/t/nixpkgs-rustplatform-and-nightly/22870
    RUSTC_BOOTSTRAP = true;

    # Several `debug_assert!` statements use the unstable `Option::is_none_or` method
    RUSTFLAGS = lib.concatStringsSep " " (
      [
        "-Cdebug_assertions=n"
      ]
      ++ lib.optionals (polarsMemoryAllocator.pname == "mimalloc") [
      lib.optionals (polarsMemoryAllocator.pname == "mimalloc") [
        "--cfg use_mimalloc"
      ]
    );
@@ -117,24 +107,17 @@ buildPythonPackage rec {

  maturinBuildFlags = [
    "-m"
    "py-polars/Cargo.toml"
    "py-polars/runtime/polars-runtime-32/Cargo.toml"
  ];

  postInstall = ''
    # Move polars.abi3.so -> polars.so
    local polarsSo=""
    local soName=""
    while IFS= read -r -d "" p ; do
      polarsSo=$p
      soName="$(basename "$polarsSo")"
      [[ "$soName" == polars.so ]] && break
    done < <( find "$out" -iname "polars*.so" -print0 )
    [[ -z "''${polarsSo:-}" ]] && echo "polars.so not found" >&2 && exit 1
    if [[ "$soName" != polars.so ]] ; then
      mv "$polarsSo" "$(dirname "$polarsSo")/polars.so"
    fi
  # maturin builds `_polars_runtime_32`, and we also need the pure-python `polars` wheel itself
  preBuild = ''
    pyproject-build --no-isolation --outdir dist/ --wheel py-polars
  '';

  # Fails on polars -> polars-runtime-32 dependency between the two wheels
  dontCheckRuntimeDeps = true;

  pythonImportsCheck = [
    "polars"
  ];
@@ -219,6 +202,7 @@ buildPythonPackage rec {
        ps.nest-asyncio
        ps.numpy
        ps.openpyxl
        ps.orjson
        ps.pandas
        ps.pyarrow
        ps.pydantic
@@ -277,14 +261,16 @@ buildPythonPackage rec {
      "test_scan_credential_provider"
      "test_scan_credential_provider_serialization"

      # Only connecting to localhost, but http URL scheme is disallowed
      "test_scan_delta_loads_aws_profile_endpoint_url"

      # ModuleNotFoundError: ADBC 'adbc_driver_sqlite.dbapi' driver not detected.
      "test_read_database"
      "test_read_database_parameterised_uri"

      # Untriaged
      "test_pickle_lazyframe_nested_function_udf"
      "test_serde_udf"
      "test_hash_struct"
      "test_async_index_error_25209"
      "test_parquet_schema_correctness"
    ];
    disabledTestPaths = [
      "tests/benchmark"
@@ -293,15 +279,11 @@ buildPythonPackage rec {
      # Internet access
      "tests/unit/io/cloud/test_credential_provider.py"

      # Wrong altair version
      "tests/unit/operations/namespaces/test_plot.py"

      # adbc
      "tests/unit/io/database/test_read.py"

      # Untriaged
      "tests/unit/cloud/test_prepare_cloud_plan.py"
      "tests/unit/io/cloud/test_cloud.py"
      # Requires pydantic 2.12
      "tests/unit/io/test_iceberg.py"
    ];

    installPhase = "touch $out";
+2 −2
Original line number Diff line number Diff line
@@ -38,14 +38,14 @@

buildPythonPackage rec {
  pname = "sqlframe";
  version = "3.43.7";
  version = "3.43.8";
  pyproject = true;

  src = fetchFromGitHub {
    owner = "eakmanrq";
    repo = "sqlframe";
    tag = "v${version}";
    hash = "sha256-qrKNn13wFEqvMQYzHH8T1pga1EUaVIt701p0k4eXw9c=";
    hash = "sha256-gsWA3aBolsR2zPwseHnQXSJRngXUHFGvi55UPevgUHw=";
  };

  build-system = [ setuptools-scm ];
+2 −2
Original line number Diff line number Diff line
@@ -19,14 +19,14 @@

buildPythonPackage rec {
  pname = "sqlglot";
  version = "27.28.1";
  version = "27.29.0";
  pyproject = true;

  src = fetchFromGitHub {
    repo = "sqlglot";
    owner = "tobymao";
    tag = "v${version}";
    hash = "sha256-DGpxKIlSRwKKXhZGDTTQb8a3iAzy8a7h9/PKHPCuq+g=";
    hash = "sha256-kqtsZRtIIgQ0cTbhG5K4N+c3cq7I+Uvd+3s+b0CYLtg=";
  };

  build-system = [