python3Packages.pulsar-client: deduplicate derivation, update (#411870)

This commit is contained in:
dotlambda 2025-06-01 12:03:58 -07:00 committed by GitHub
commit 36f6e42e87
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 82 additions and 181 deletions

View file

@ -1,133 +1,93 @@
{ {
lib, lib,
stdenv,
buildPythonPackage, buildPythonPackage,
fetchPypi, fetchFromGitHub,
python,
# build
setuptools,
cmake,
pkg-config,
# dependencies
libpulsar,
pybind11,
certifi,
# optional dependencies
fastavro,
grpcio,
prometheus-client,
protobuf,
ratelimit,
# test
unittestCheckHook,
}: }:
let
version = "3.4.0";
inherit (python) pythonVersion; buildPythonPackage rec {
Srcs =
let
getSrcFromPypi =
{
platform,
dist,
hash,
}:
fetchPypi {
inherit
version
platform
dist
hash
;
pname = "pulsar_client";
format = "wheel";
python = dist;
abi = dist;
};
in
{
"3.9-x86_64-linux" = getSrcFromPypi {
platform = "manylinux_2_17_x86_64.manylinux2014_x86_64";
dist = "cp39";
hash = "sha256-1P5ArMoLZiUkHUoQ/mJccbNj5/7el/op+Qo6cGQ33xE=";
};
"3.9-aarch64-linux" = getSrcFromPypi {
platform = "manylinux_2_17_aarch64.manylinux2014_aarch64";
dist = "cp39";
hash = "sha256-11JQZRwMLtt7sK/JlCBqqRyfTVIAVJFN2sL+nAkQgvU=";
};
"3.9-aarch64-darwin" = getSrcFromPypi {
platform = "macosx_10_15_universal2";
dist = "cp39";
hash = "sha256-dwTGZKosgBr0wtOljp2P+u7xLOig9xcS6Rh/mpbahW8=";
};
"3.9-x86_64-darwin" = getSrcFromPypi {
platform = "macosx_10_15_universal2";
dist = "cp39";
hash = "sha256-dwTGZKosgBr0wtOljp2P+u7xLOig9xcS6Rh/mpbahW8=";
};
"3.10-x86_64-linux" = getSrcFromPypi {
platform = "manylinux_2_17_x86_64.manylinux2014_x86_64";
dist = "cp310";
hash = "sha256-swp1kuQsdgNOmo1k1C3VurNhQl+GneVi6cytaY4ZzYg=";
};
"3.10-aarch64-linux" = getSrcFromPypi {
platform = "musllinux_1_1_aarch64";
dist = "cp310";
hash = "sha256-1ZYwkKeKVkS6JfQdo6bUnqPwDJcrCVuv82WRbcJGQmo=";
};
"3.10-aarch64-darwin" = getSrcFromPypi {
platform = "macosx_10_15_universal2";
dist = "cp310";
hash = "sha256-6/mdtSRP9pR5KDslYhsHBJKsxLtkPRYthrkDh8tv2yo=";
};
"3.10-x86_64-darwin" = getSrcFromPypi {
platform = "macosx_10_15_universal2";
dist = "cp310";
hash = "sha256-6/mdtSRP9pR5KDslYhsHBJKsxLtkPRYthrkDh8tv2yo=";
};
"3.11-x86_64-linux" = getSrcFromPypi {
platform = "manylinux_2_17_x86_64.manylinux2014_x86_64";
dist = "cp311";
hash = "sha256-M1cd6ZzYmDSfF5eLpi4rg56gJ1+3Bn8xv19uv+rgmH0=";
};
"3.11-aarch64-linux" = getSrcFromPypi {
platform = "manylinux_2_17_aarch64.manylinux2014_aarch64";
dist = "cp311";
hash = "sha256-+HQ8MgqpZ5jSDK+pjql6aMQpX8SHLCOs1eAS/TbLBro=";
};
"3.11-aarch64-darwin" = getSrcFromPypi {
platform = "macosx_10_15_universal2";
dist = "cp311";
hash = "sha256-EZUvsCLuct6/U7Fp9EgvncXIkL4BSa6Yd5hks6IfG9M=";
};
"3.11-x86_64-darwin" = getSrcFromPypi {
platform = "macosx_10_15_universal2";
dist = "cp311";
hash = "sha256-EZUvsCLuct6/U7Fp9EgvncXIkL4BSa6Yd5hks6IfG9M=";
};
"3.12-x86_64-linux" = getSrcFromPypi {
platform = "manylinux_2_17_x86_64.manylinux2014_x86_64";
dist = "cp312";
hash = "sha256-xgbATzVzQQQvpsdUd959IgT3rlCqKcL3SyTlTIX0f5Y=";
};
"3.12-aarch64-linux" = getSrcFromPypi {
platform = "manylinux_2_17_aarch64.manylinux2014_aarch64";
dist = "cp312";
hash = "sha256-8gK4Th9oPWRnLdGXERRgCuLlw3NVhyhv+b+0MThfCOg=";
};
"3.12-aarch64-darwin" = getSrcFromPypi {
platform = "macosx_10_15_universal2";
dist = "cp312";
hash = "sha256-Hgd6SDm+Pq094/BbTCRCadyi3wf0fOoLkFRMfp3BZC8=";
};
"3.12-x86_64-darwin" = getSrcFromPypi {
platform = "macosx_10_15_universal2";
dist = "cp312";
hash = "sha256-Hgd6SDm+Pq094/BbTCRCadyi3wf0fOoLkFRMfp3BZC8=";
};
};
in
buildPythonPackage {
pname = "pulsar-client"; pname = "pulsar-client";
inherit version; version = "3.7.0";
pyproject = true;
format = "wheel"; src = fetchFromGitHub {
owner = "apache";
repo = "pulsar-client-python";
tag = "v${version}";
hash = "sha256-M8Y72VgtPdM80AO9jRyyyOFW6wQ7dbKH33alLWcTLV8=";
};
src = build-system = [
Srcs."${pythonVersion}-${stdenv.hostPlatform.system}" setuptools
or (throw "Unsupported '${pythonVersion}-${stdenv.hostPlatform.system}' target"); ];
meta = with lib; { nativeBuildInputs = [
description = "Client for pulsar"; cmake
homepage = "https://pypi.org/project/pulsar-client/"; pkg-config
license = licenses.asl20; ];
maintainers = with maintainers; [ fab ];
buildInputs = [
libpulsar
pybind11
];
preBuild = ''
make -j$NIX_BUILD_CORES
make install
cd ..
'';
dependencies = [ certifi ];
optional-dependencies = {
functions = [
# apache-bookkeeper-client
grpcio
prometheus-client
protobuf
ratelimit
];
avro = [ fastavro ];
all = lib.flatten (lib.attrValues (lib.filterAttrs (n: v: n != "all") optional-dependencies));
};
nativeCheckInputs = [
unittestCheckHook
] ++ optional-dependencies.all;
unittestFlagsArray = [
"-s"
"test"
];
pythonImportsCheck = [ "pulsar" ];
__darwinAllowLocalNetworking = true;
meta = {
description = "Apache Pulsar Python client library";
homepage = "https://pulsar.apache.org/docs/next/client-libraries-python/";
changelog = "https://github.com/apache/pulsar-client-python/releases/tag/${src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ gaelreyrol ];
}; };
} }

View file

@ -1,57 +0,0 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pythonOlder,
cmake,
pkg-config,
libpulsar,
pybind11,
certifi,
}:
buildPythonPackage rec {
pname = "pulsar";
version = "3.6.1";
format = "setuptools";
src = fetchFromGitHub {
owner = "apache";
repo = "pulsar-client-python";
tag = "v${version}";
hash = "sha256-KdPLp0BmZnobU4F6tuMj2DY/ya4QHeGcM/eEAivoXNI=";
};
disabled = pythonOlder "3.7";
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
libpulsar
pybind11
];
preBuild = ''
make -j$NIX_BUILD_CORES
make install
cd ..
'';
propagatedBuildInputs = [ certifi ];
# Requires to setup a cluster
doCheck = false;
pythonImportsCheck = [ "pulsar" ];
meta = with lib; {
description = "Apache Pulsar Python client library";
homepage = "https://pulsar.apache.org/docs/next/client-libraries-python/";
changelog = "https://github.com/apache/pulsar-client-python/releases/tag/${src.tag}";
license = licenses.asl20;
maintainers = with maintainers; [ gaelreyrol ];
};
}

View file

@ -11758,8 +11758,6 @@ self: super: with self; {
pulp = callPackage ../development/python-modules/pulp { }; pulp = callPackage ../development/python-modules/pulp { };
pulsar = callPackage ../development/python-modules/pulsar { };
pulsar-client = callPackage ../development/python-modules/pulsar-client { }; pulsar-client = callPackage ../development/python-modules/pulsar-client { };
pulsectl = callPackage ../development/python-modules/pulsectl { }; pulsectl = callPackage ../development/python-modules/pulsectl { };