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 ]
39 ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
40
41 nativeCheckInputs = [
42 pytestCheckHook
43 pytz
44 ];
45
46 preCheck = ''
47 export COLLECT_DEPRECATION_WARNINGS_PACKAGE_NAME=true
48 '';
49
50 meta = with lib; {
51 description = "Python packages and modules used by Logilab";
52 homepage = "https://logilab-common.readthedocs.io/";
53 changelog = "https://forge.extranet.logilab.fr/open-source/logilab-common/-/blob/branch/default/CHANGELOG.md";
54 license = licenses.lgpl21Plus;
55 maintainers = [ ];
56 mainProgram = "logilab-pytest";
57 };
58}