Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / mashumaro / default.nix
blobf898acad51446d2b15ed156b628a2379f433d41f
1 { lib
2 , buildPythonPackage
3 , fetchFromGitHub
4 , pythonOlder
5 , setuptools
6 , typing-extensions
7 , orjson
8 , msgpack
9 , pyyaml
10 , tomli-w
11 , tomli
12 , pytestCheckHook
13 , ciso8601
14 , pendulum
15 , pytest-mock
18 buildPythonPackage rec {
19   pname = "mashumaro";
20   version = "3.10";
21   format = "pyproject";
22   disabled = pythonOlder "3.7";
24   src = fetchFromGitHub {
25     owner = "Fatal1ty";
26     repo = pname;
27     rev = "refs/tags/v${version}";
28     hash = "sha256-PvMEwIxurDGwYMCmNFThedxDY4vwATHYwMlXkucNuwM=";
29   };
31   nativeBuildInputs = [
32     setuptools
33   ];
35   propagatedBuildInputs = [
36     typing-extensions
37   ];
39   passthru.optional-dependencies = {
40     orjson = [ orjson ];
41     msgpack = [ msgpack ];
42     yaml = [ pyyaml ];
43     toml = [ tomli-w ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
44   };
46   nativeCheckInputs = [
47     ciso8601
48     pendulum
49     pytest-mock
50     pytestCheckHook
51   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
53   pythonImportsCheck = [
54     "mashumaro"
55   ];
57   meta = with lib; {
58     description = "Fast and well tested serialization library on top of dataclasses";
59     homepage = "https://github.com/Fatal1ty/mashumaro";
60     changelog = "https://github.com/Fatal1ty/mashumaro/releases/tag/v${version}";
61     license = licenses.asl20;
62     maintainers = with maintainers; [ tjni ];
63   };