1{ lib, buildPythonPackage, fetchPypi, isPyPy
2, dnspython
3, geoip2
4, ipython
5, praw
6, pyenchant
7, pygeoip
8, pytestCheckHook
9, pytz
10, sqlalchemy
11, xmltodict
12}:
13
14buildPythonPackage rec {
15 pname = "sopel";
16 version = "7.1.6";
17 disabled = isPyPy;
18
19 src = fetchPypi {
20 inherit pname version;
21 sha256 = "ebd3b2aa9230835f8a68ea7f5a10324ddf35d70d89a9c92c8cba81c558565efb";
22 };
23
24 propagatedBuildInputs = [
25 dnspython
26 geoip2
27 ipython
28 praw
29 pyenchant
30 pygeoip
31 pytz
32 sqlalchemy
33 xmltodict
34 ];
35
36 # remove once https://github.com/sopel-irc/sopel/pull/1653 lands
37 postPatch = ''
38 substituteInPlace requirements.txt \
39 --replace "praw>=4.0.0,<6.0.0" "praw" \
40 --replace "sqlalchemy<1.4" "sqlalchemy"
41 '';
42
43 checkInputs = [ pytestCheckHook ];
44
45 preCheck = ''
46 export TESTDIR=$(mktemp -d)
47 cp -R ./test $TESTDIR
48 pushd $TESTDIR
49 '';
50
51 postCheck = ''
52 popd
53 '';
54
55 pythonImportsCheck = [ "sopel" ];
56
57 meta = with lib; {
58 description = "Simple and extensible IRC bot";
59 homepage = "http://sopel.chat";
60 license = licenses.efl20;
61 maintainers = with maintainers; [ mog ];
62 };
63}