1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 hatchling,
8
9 # dependencies
10 docstring-parser,
11 rich,
12 shtab,
13 typeguard,
14 typing-extensions,
15
16 # tests
17 attrs,
18 flax,
19 jax,
20 ml-collections,
21 msgspec,
22 omegaconf,
23 pydantic,
24 pytestCheckHook,
25 torch,
26}:
27
28buildPythonPackage rec {
29 pname = "tyro";
30 version = "0.9.28";
31 pyproject = true;
32
33 src = fetchFromGitHub {
34 owner = "brentyi";
35 repo = "tyro";
36 tag = "v${version}";
37 hash = "sha256-dxciOLNxOjTTIm7P1XTRMgW1a6Sdbnfnqc0EEfyq7IM=";
38 };
39
40 build-system = [ hatchling ];
41
42 dependencies = [
43 docstring-parser
44 rich
45 shtab
46 typeguard
47 typing-extensions
48 ];
49
50 nativeCheckInputs = [
51 attrs
52 flax
53 jax
54 ml-collections
55 msgspec
56 omegaconf
57 pydantic
58 pytestCheckHook
59 torch
60 ];
61
62 pythonImportsCheck = [ "tyro" ];
63
64 meta = {
65 description = "CLI interfaces & config objects, from types";
66 homepage = "https://github.com/brentyi/tyro";
67 changelog = "https://github.com/brentyi/tyro/releases/tag/${src.tag}";
68 license = lib.licenses.mit;
69 maintainers = with lib.maintainers; [ hoh ];
70 };
71}