1{ lib
2, buildPythonPackage
3, fetchPypi
4, pythonOlder
5, pythonAtLeast
6, numpy
7}:
8let
9 pname = "paddle-bfloat";
10 version = "0.1.7";
11in
12buildPythonPackage {
13 inherit pname version;
14 format = "setuptools";
15
16 src = fetchPypi {
17 pname = "paddle_bfloat";
18 inherit version;
19 hash = "sha256-mrjQCtLsXOvqeHHMjuMx65FvMfZ2+wTh1ao9ZJE+9xw=";
20 };
21
22 postPatch = ''
23 sed '1i#include <memory>' -i bfloat16.cc # gcc12
24 # replace deprecated function for python3.11
25 substituteInPlace bfloat16.cc \
26 --replace "Py_TYPE(&NPyBfloat16_Descr) = &PyArrayDescr_Type" "Py_SET_TYPE(&NPyBfloat16_Descr, &PyArrayDescr_Type)"
27 '';
28
29 disabled = pythonOlder "3.9" || pythonAtLeast "3.12";
30
31 propagatedBuildInputs = [
32 numpy
33 ];
34
35 pythonImportsCheck = [ "paddle_bfloat" ];
36
37# upstream has no tests
38 doCheck = false;
39
40 meta = with lib; {
41 description = "Paddle numpy bfloat16 package";
42 homepage = "https://pypi.org/project/paddle-bfloat";
43 license = licenses.asl20;
44 maintainers = with maintainers; [ happysalada ];
45 };
46}