mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-10 03:23:29 +03:00
python3Packages.pulsar-client: deduplicate derivation, update (#411870)
This commit is contained in:
commit
36f6e42e87
3 changed files with 82 additions and 181 deletions
|
@ -1,133 +1,93 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
python,
|
||||
fetchFromGitHub,
|
||||
|
||||
# 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;
|
||||
|
||||
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 {
|
||||
buildPythonPackage rec {
|
||||
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 =
|
||||
Srcs."${pythonVersion}-${stdenv.hostPlatform.system}"
|
||||
or (throw "Unsupported '${pythonVersion}-${stdenv.hostPlatform.system}' target");
|
||||
build-system = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Client for pulsar";
|
||||
homepage = "https://pypi.org/project/pulsar-client/";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
];
|
||||
|
||||
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 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
|
@ -11758,8 +11758,6 @@ self: super: with self; {
|
|||
|
||||
pulp = callPackage ../development/python-modules/pulp { };
|
||||
|
||||
pulsar = callPackage ../development/python-modules/pulsar { };
|
||||
|
||||
pulsar-client = callPackage ../development/python-modules/pulsar-client { };
|
||||
|
||||
pulsectl = callPackage ../development/python-modules/pulsectl { };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue