1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 mock,
6 pytestCheckHook,
7 pythonOlder,
8 setuptools-scm,
9 typing-extensions,
10}:
11
12buildPythonPackage rec {
13 pname = "sievelib";
14 version = "1.4.2";
15 pyproject = true;
16
17 disabled = pythonOlder "3.7";
18
19 src = fetchPypi {
20 inherit pname version;
21 hash = "sha256-YOoANqVRTiYQ5b9WFYbzJOdf/ZGnIJ9fueBrj+KLBrs=";
22 };
23
24 build-system = [ setuptools-scm ];
25
26 dependencies = [ typing-extensions ];
27
28 nativeCheckInputs = [
29 mock
30 pytestCheckHook
31 ];
32
33 pythonImportsCheck = [ "sievelib" ];
34
35 meta = with lib; {
36 description = "Client-side Sieve and Managesieve library";
37 longDescription = ''
38 A library written in Python that implements RFC 5228 (Sieve: An Email
39 Filtering Language) and RFC 5804 (ManageSieve: A Protocol for
40 Remotely Managing Sieve Scripts), as well as the following extensions:
41
42 * Copying Without Side Effects (RFC 3894)
43 * Body (RFC 5173)
44 * Date and Index (RFC 5260)
45 * Vacation (RFC 5230)
46 * Imap4flags (RFC 5232)
47 '';
48 homepage = "https://github.com/tonioo/sievelib";
49 changelog = "https://github.com/tonioo/sievelib/releases/tag/${version}";
50 license = licenses.mit;
51 maintainers = with maintainers; [ leenaars ];
52 };
53}