1{ stdenv, buildPythonPackage, fetchPypi, isPyPy
2, dnspython
3, geoip2
4, ipython
5, praw
6, pyenchant
7, pygeoip
8, pytestCheckHook
9, python
10, pytz
11, sqlalchemy
12, xmltodict
13}:
14
15buildPythonPackage rec {
16 pname = "sopel";
17 version = "7.0.6";
18 disabled = isPyPy;
19
20 src = fetchPypi {
21 inherit pname version;
22 sha256 = "5e394d9797e221f90a95e5eb9987e8c1faf4f2488964f521e8ca1628798f0a38";
23 };
24
25 propagatedBuildInputs = [
26 dnspython
27 geoip2
28 ipython
29 praw
30 pyenchant
31 pygeoip
32 pytz
33 sqlalchemy
34 xmltodict
35 ];
36
37 # remove once https://github.com/sopel-irc/sopel/pull/1653 lands
38 postPatch = ''
39 substituteInPlace requirements.txt \
40 --replace "praw>=4.0.0,<6.0.0" "praw"
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 meta = with stdenv.lib; {
56 description = "Simple and extensible IRC bot";
57 homepage = "http://sopel.chat";
58 license = licenses.efl20;
59 maintainers = with maintainers; [ mog ];
60 };
61}