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 16}: 17 18buildPythonPackage rec { 19 pname = "mashumaro"; 20 version = "3.10"; 21 format = "pyproject"; 22 disabled = pythonOlder "3.7"; 23 24 src = fetchFromGitHub { 25 owner = "Fatal1ty"; 26 repo = pname; 27 rev = "refs/tags/v${version}"; 28 hash = "sha256-PvMEwIxurDGwYMCmNFThedxDY4vwATHYwMlXkucNuwM="; 29 }; 30 31 nativeBuildInputs = [ 32 setuptools 33 ]; 34 35 propagatedBuildInputs = [ 36 typing-extensions 37 ]; 38 39 passthru.optional-dependencies = { 40 orjson = [ orjson ]; 41 msgpack = [ msgpack ]; 42 yaml = [ pyyaml ]; 43 toml = [ tomli-w ] ++ lib.optionals (pythonOlder "3.11") [ tomli ]; 44 }; 45 46 nativeCheckInputs = [ 47 ciso8601 48 pendulum 49 pytest-mock 50 pytestCheckHook 51 ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies); 52 53 pythonImportsCheck = [ 54 "mashumaro" 55 ]; 56 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 }; 64}