1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 importlib-metadata,
6 mypy-extensions,
7 pytestCheckHook,
8 pythonAtLeast,
9 pythonOlder,
10 pytz,
11 setuptools,
12 typing-extensions,
13}:
14
15buildPythonPackage rec {
16 pname = "logilab-common";
17 version = "2.0.0";
18 pyproject = true;
19
20 disabled = pythonOlder "3.6";
21
22 src = fetchPypi {
23 inherit pname version;
24 hash = "sha256-ojvR2k3Wpj5Ej0OS57I4aFX/cGFVeL/PmT7riCTelws=";
25 };
26
27 postPatch = lib.optionals (pythonAtLeast "3.12") ''
28 substituteInPlace logilab/common/testlib.py \
29 --replace-fail "_TextTestResult" "TextTestResult"
30 '';
31
32 build-system = [ setuptools ];
33
34 dependencies = [
35 setuptools
36 mypy-extensions
37 typing-extensions
38 ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
39
40 nativeCheckInputs = [
41 pytestCheckHook
42 pytz
43 ];
44
45 preCheck = ''
46 export COLLECT_DEPRECATION_WARNINGS_PACKAGE_NAME=true
47 '';
48
49 meta = with lib; {
50 description = "Python packages and modules used by Logilab";
51 homepage = "https://logilab-common.readthedocs.io/";
52 changelog = "https://forge.extranet.logilab.fr/open-source/logilab-common/-/blob/branch/default/CHANGELOG.md";
53 license = licenses.lgpl21Plus;
54 maintainers = [ ];
55 mainProgram = "logilab-pytest";
56 };
57}