forked from deepmodeling/dpgen
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patharginfo.py
38 lines (30 loc) · 1.15 KB
/
arginfo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from typing import Tuple
from dargs import Argument
from dpgen.dispatcher.Dispatcher import mdata_arginfo
def general_mdata_arginfo(name: str, tasks: Tuple[str]) -> Argument:
"""Generate arginfo for general mdata.
Parameters
----------
name : str
mdata name
tasks : tuple[str]
tuple of task keys, e.g. ("train", "model_devi", "fp")
Returns
-------
Argument
arginfo
"""
doc_api_version = "Please set to 1.0"
doc_deepmd_version = "DeePMD-kit version, e.g. 2.1.3"
doc_run_mdata = "machine.json file"
arg_api_version = Argument("api_version", str, default="1.0", optional=True, doc=doc_api_version)
arg_deepmd_version = Argument(
"deepmd_version", str, optional=True, default="2", doc=doc_deepmd_version)
sub_fields = [arg_api_version, arg_deepmd_version]
doc_mdata = "Parameters of command, machine, and resources for %s"
for task in tasks:
sub_fields.append(Argument(
task, dict, optional=False, sub_fields=mdata_arginfo(),
doc=doc_mdata % task,
))
return Argument(name, dict, sub_fields=sub_fields, doc=doc_run_mdata)