Unverified Commit 36f6e42e authored by dotlambda's avatar dotlambda Committed by GitHub
Browse files

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

parents deb0b6a7 e7afe861
Loading
Loading
Loading
Loading
+83 −123
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  buildPythonPackage,
  fetchPypi,
  python,
}:
let
  version = "3.4.0";
  fetchFromGitHub,

  inherit (python) pythonVersion;
  # build
  setuptools,
  cmake,
  pkg-config,

  Srcs =
    let
      getSrcFromPypi =
        {
          platform,
          dist,
          hash,
  # dependencies
  libpulsar,
  pybind11,
  certifi,

  # optional dependencies
  fastavro,
  grpcio,
  prometheus-client,
  protobuf,
  ratelimit,

  # test
  unittestCheckHook,
}:
        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=";

buildPythonPackage rec {
  pname = "pulsar-client";
  version = "3.7.0";
  pyproject = true;

  src = fetchFromGitHub {
    owner = "apache";
    repo = "pulsar-client-python";
    tag = "v${version}";
    hash = "sha256-M8Y72VgtPdM80AO9jRyyyOFW6wQ7dbKH33alLWcTLV8=";
  };

  build-system = [
    setuptools
  ];

  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));
  };
in
buildPythonPackage {
  pname = "pulsar-client";
  inherit version;

  format = "wheel";
  nativeCheckInputs = [
    unittestCheckHook
  ] ++ optional-dependencies.all;

  unittestFlagsArray = [
    "-s"
    "test"
  ];

  pythonImportsCheck = [ "pulsar" ];

  src =
    Srcs."${pythonVersion}-${stdenv.hostPlatform.system}"
      or (throw "Unsupported '${pythonVersion}-${stdenv.hostPlatform.system}' target");
  __darwinAllowLocalNetworking = true;

  meta = with lib; {
    description = "Client for pulsar";
    homepage = "https://pypi.org/project/pulsar-client/";
    license = licenses.asl20;
    maintainers = with maintainers; [ fab ];
  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 ];
  };
}
+0 −57
Original line number Diff line number Diff line
{
  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 ];
  };
}
+0 −2
Original line number Diff line number Diff line
@@ -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 { };