1{ buildPythonPackage, fetchFromGitHub, pillow, click, dlib, numpy
2, face_recognition_models, lib, flake8, pytest, glibcLocales
3}:
4
5buildPythonPackage rec {
6 pname = "face_recognition";
7 version = "1.3.0";
8
9 src = fetchFromGitHub {
10 repo = pname;
11 owner = "ageitgey";
12 rev = "d34c622bf42e2c619505a4884017051ecf61ac77";
13 sha256 = "052878vnh3vbrsvmpgr0bx78k524dlxn47b2xakzbxk7dyjrgcli";
14 };
15
16 postPatch = ''
17 substituteInPlace setup.py --replace "flake8==2.6.0" "flake8"
18 '';
19
20 propagatedBuildInputs = [ pillow click dlib numpy face_recognition_models ];
21
22 # Our dlib is compiled with AVX instructions by default which breaks
23 # with "Illegal instruction" on some builders due to missing hardware features.
24 #
25 # As this makes the build fairly unreliable, it's better to skip the test and to ensure that
26 # the build is working and after each change to the package, manual testing should be done.
27 doCheck = false;
28
29 # Although tests are disabled by default, checkPhase still exists, so
30 # maintainers can check the package's functionality locally before modifying it.
31 checkInputs = [ flake8 pytest glibcLocales ];
32 checkPhase = ''
33 LC_ALL="en_US.UTF-8" py.test
34 '';
35
36 meta = with lib; {
37 license = licenses.mit;
38 homepage = "https://github.com/ageitgey/face_recognition";
39 maintainers = with maintainers; [ ma27 ];
40 description = "The world's simplest facial recognition api for Python and the command line";
41 };
42}