1{ 2 lib, 3 buildPythonPackage, 4 ciso8601, 5 fetchFromGitHub, 6 msgpack, 7 orjson, 8 pendulum, 9 pytest-mock, 10 pytestCheckHook, 11 pythonOlder, 12 pyyaml, 13 setuptools, 14 tomli, 15 tomli-w, 16 typing-extensions, 17}: 18 19buildPythonPackage rec { 20 pname = "mashumaro"; 21 version = "3.13"; 22 pyproject = true; 23 24 disabled = pythonOlder "3.8"; 25 26 src = fetchFromGitHub { 27 owner = "Fatal1ty"; 28 repo = "mashumaro"; 29 rev = "refs/tags/v${version}"; 30 hash = "sha256-ETK1rHKlByQkqibejiZmXF6c4eIiMazLa8XY2OH30q4="; 31 }; 32 33 nativeBuildInputs = [ setuptools ]; 34 35 propagatedBuildInputs = [ typing-extensions ]; 36 37 passthru.optional-dependencies = { 38 orjson = [ orjson ]; 39 msgpack = [ msgpack ]; 40 yaml = [ pyyaml ]; 41 toml = [ tomli-w ] ++ lib.optionals (pythonOlder "3.11") [ tomli ]; 42 }; 43 44 nativeCheckInputs = [ 45 ciso8601 46 pendulum 47 pytest-mock 48 pytestCheckHook 49 ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies); 50 51 pythonImportsCheck = [ "mashumaro" ]; 52 53 meta = with lib; { 54 description = "Serialization library on top of dataclasses"; 55 homepage = "https://github.com/Fatal1ty/mashumaro"; 56 changelog = "https://github.com/Fatal1ty/mashumaro/releases/tag/v${version}"; 57 license = licenses.asl20; 58 maintainers = with maintainers; [ tjni ]; 59 }; 60}