1{
2 lib,
3 buildPythonPackage,
4 setuptools,
5 chardet,
6 cryptography,
7 feedparser,
8 fetchPypi,
9 mock,
10 pysocks,
11 pytestCheckHook,
12 python-dateutil,
13 python-gnupg,
14 pythonOlder,
15 pytz,
16}:
17
18buildPythonPackage rec {
19 pname = "limnoria";
20 version = "2025.5.3";
21 pyproject = true;
22
23 disabled = pythonOlder "3.6";
24
25 src = fetchPypi {
26 inherit pname version;
27 hash = "sha256-EZ42Ufnw3sUM1fM3+hTreKr58QOgeRANilXP9uxU/Cs=";
28 };
29
30 build-system = [ setuptools ];
31
32 dependencies = [
33 chardet
34 cryptography
35 feedparser
36 mock
37 pysocks
38 python-dateutil
39 python-gnupg
40 ] ++ lib.optionals (pythonOlder "3.9") [ pytz ];
41
42 nativeCheckInputs = [ pytestCheckHook ];
43
44 postPatch = ''
45 substituteInPlace setup.py \
46 --replace-fail "version=version" 'version="${version}"'
47 '';
48
49 checkPhase = ''
50 runHook preCheck
51 export PATH="$PATH:$out/bin";
52 supybot-test test -v --no-network
53 runHook postCheck
54 '';
55
56 pythonImportsCheck = [
57 # Uses the same names as Supybot
58 "supybot"
59 ];
60
61 meta = with lib; {
62 description = "Modified version of Supybot, an IRC bot";
63 homepage = "https://github.com/ProgVal/Limnoria";
64 license = licenses.bsd3;
65 maintainers = [ ];
66 };
67}