1{ lib
2, aiofiles
3, buildPythonPackage
4, colorama
5, fetchFromGitHub
6, git
7, jsonschema
8, pdm-backend
9, pytestCheckHook
10, pythonOlder
11}:
12
13buildPythonPackage rec {
14 pname = "griffe";
15 version = "0.38.0";
16 format = "pyproject";
17
18 disabled = pythonOlder "3.8";
19
20 src = fetchFromGitHub {
21 owner = "mkdocstrings";
22 repo = pname;
23 rev = "refs/tags/${version}";
24 hash = "sha256-GhohFO5tHb9ByISPUf4U2MrDATE4WjuekcC9QZaP2Ls=";
25 };
26
27 SETUPTOOLS_SCM_PRETEND_VERSION = version;
28
29 nativeBuildInputs = [
30 pdm-backend
31 ];
32
33 propagatedBuildInputs = [
34 colorama
35 ];
36
37 nativeCheckInputs = [
38 git
39 jsonschema
40 pytestCheckHook
41 ];
42
43 passthru.optional-dependencies = {
44 async = [
45 aiofiles
46 ];
47 };
48
49 pythonImportsCheck = [
50 "griffe"
51 ];
52
53 meta = with lib; {
54 description = "Signatures for entire Python programs";
55 homepage = "https://github.com/mkdocstrings/griffe";
56 changelog = "https://github.com/mkdocstrings/griffe/blob/${version}/CHANGELOG.md";
57 license = licenses.isc;
58 maintainers = with maintainers; [ fab ];
59 };
60}