1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, msgpack
5, poetry-core
6, pytestCheckHook
7, pythonOlder
8, pyyaml
9, ruamel-yaml
10, setuptools
11, toml
12, tomli
13, tomli-w
14}:
15
16buildPythonPackage rec {
17 pname = "python-box";
18 version = "7.0.1";
19 format = "setuptools";
20
21 disabled = pythonOlder "3.7";
22
23 src = fetchFromGitHub {
24 owner = "cdgriffith";
25 repo = "Box";
26 rev = "refs/tags/${version}";
27 hash = "sha256-Ddt8/S6HzmOt1kvzRzed3+TbOacw6RG9nd2UNn+ELB4=";
28 };
29
30 nativeBuildInputs = [
31 setuptools
32 ];
33
34 passthru.optional-dependencies = {
35 all = [
36 msgpack
37 ruamel-yaml
38 toml
39 ];
40 yaml = [
41 ruamel-yaml
42 ];
43 ruamel-yaml = [
44 ruamel-yaml
45 ];
46 PyYAML = [
47 pyyaml
48 ];
49 tomli = [
50 tomli-w
51 ] ++ lib.optionals (pythonOlder "3.11") [
52 tomli
53 ];
54 toml = [
55 toml
56 ];
57 msgpack = [
58 msgpack
59 ];
60 };
61
62 nativeCheckInputs = [
63 pytestCheckHook
64 ] ++ passthru.optional-dependencies.all;
65
66 pythonImportsCheck = [
67 "box"
68 ];
69
70 meta = with lib; {
71 description = "Python dictionaries with advanced dot notation access";
72 homepage = "https://github.com/cdgriffith/Box";
73 changelog = "https://github.com/cdgriffith/Box/blob/${version}/CHANGES.rst";
74 license = with licenses; [ mit ];
75 maintainers = with maintainers; [ fab ];
76 };
77}