1{
2 lib,
3 buildPythonPackage,
4 click,
5 fetchFromGitHub,
6 maison,
7 pdm-backend,
8 pytest-freezegun,
9 pytest-xdist,
10 pytestCheckHook,
11 pythonOlder,
12 ruyaml,
13 setuptools,
14 writableTmpDirAsHomeHook,
15}:
16let
17 maison143 = maison.overridePythonAttrs (old: rec {
18 version = "1.4.3";
19 src = fetchFromGitHub {
20 owner = "dbatten5";
21 repo = "maison";
22 tag = "v${version}";
23 hash = "sha256-2hUmk91wr5o2cV3un2nMoXDG+3GT7SaIOKY+QaZY3nw=";
24 };
25 });
26in
27
28buildPythonPackage rec {
29 pname = "yamlfix";
30 version = "1.16.1";
31 pyproject = true;
32
33 disabled = pythonOlder "3.8";
34
35 src = fetchFromGitHub {
36 owner = "lyz-code";
37 repo = "yamlfix";
38 tag = version;
39 hash = "sha256-RRpU6cxb3a3g6RrJbUCxY7YC87HHbGkhOFtE3hf8HdA=";
40 };
41
42 build-system = [
43 setuptools
44 pdm-backend
45 ];
46
47 dependencies = [
48 click
49 maison143
50 ruyaml
51 ];
52
53 pythonRelaxDeps = [ "maison" ];
54
55 nativeCheckInputs = [
56 pytest-freezegun
57 pytest-xdist
58 pytestCheckHook
59 writableTmpDirAsHomeHook
60 ];
61
62 pythonImportsCheck = [ "yamlfix" ];
63
64 pytestFlags = [
65 "-Wignore::DeprecationWarning"
66 ];
67
68 meta = {
69 description = "Python YAML formatter that keeps your comments";
70 homepage = "https://github.com/lyz-code/yamlfix";
71 changelog = "https://github.com/lyz-code/yamlfix/blob/${version}/CHANGELOG.md";
72 mainProgram = "yamlfix";
73 license = lib.licenses.gpl3Only;
74 maintainers = with lib.maintainers; [ koozz ];
75 };
76}