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