anki-bin: 24.06.3 -> 24.11 (#360722)
[NixPkgs.git] / pkgs / development / python-modules / pylibdmtx / default.nix
blob97037747a25b2008d65a502f66eb7bb6f2e5baf6
2   fetchFromGitHub,
3   buildPythonPackage,
4   pillow,
5   numpy,
6   libdmtx,
7   lib,
8 }:
10 buildPythonPackage rec {
11   pname = "pylibdmtx";
12   version = "0.1.10";
13   format = "setuptools";
15   src = fetchFromGitHub {
16     owner = "NaturalHistoryMuseum";
17     repo = pname;
18     rev = "v${version}";
19     hash = "sha256-vNWzhO4V0mj4eItZ0Z5UG9RBCqprIcgMGNyIe1+mXWY=";
20   };
22   # Change:
23   # def load():
24   #     """Loads the libdmtx shared library.
25   #
26   # To:
27   # def load():
28   #     return cdll.LoadLibrary("/nix/store/.../lib/libdmtx.so")
29   #     """Loads the libdmtx shared library.
30   postPatch = ''
31     sed -i '\#def load.*#a\    return cdll.LoadLibrary("${libdmtx}/lib/libdmtx.so")' \
32         pylibdmtx/dmtx_library.py
34     # Checks that the loader works in various scenarios, but we just
35     # forced it to only work one way.
36     rm pylibdmtx/tests/test_dmtx_library.py
37   '';
39   propagatedBuildInputs = [
40     pillow
41     numpy
42   ];
44   pythonImportsCheck = [ "pylibdmtx" ];
46   meta = with lib; {
47     description = "Read and write Data Matrix barcodes from Python 2 and 3 using the libdmtx library";
48     homepage = "https://github.com/NaturalHistoryMuseum/pylibdmtx/";
49     license = licenses.mit;
50     maintainers = with maintainers; [ grahamc ];
51   };