@@ -32,31 +32,36 @@ def trim(text):
32
32
33
33
34
34
def required (item ):
35
- if "action" in item :
36
- return False
37
- elif "default" in item :
38
- return False
39
- elif "private" in item and item ["private" ]:
40
- return False
41
- elif "required" in item and item ["required" ]:
42
- return True
43
- elif not item ["name" ].startswith ("--" ):
44
- return True
45
- return False
46
-
47
-
48
- def data_type_name (item ):
35
+ return item .get ('required' , False )
36
+
37
+
38
+ def argument_type (item ):
49
39
if "action" in item :
50
40
return "marker"
51
- text = item ["type" ]
52
- if text == "str" :
41
+
42
+ spec = item ["type" ]
43
+ if isinstance (spec , dict ) and ((regex := spec .get ('regex' )) is not None ):
44
+ return f"regex({ regex } )"
45
+
46
+ if isinstance (spec , dict ) and ((size := spec .get ('size' )) is not None ):
47
+ min = "utils.parse_size('{}')" .format (size ['min' ]) if 'min' in size else ''
48
+ max = "utils.parse_size('{}')" .format (size ['max' ]) if 'max' in size else ''
49
+ return f"size({ min } ..{ max } )"
50
+
51
+ if isinstance (spec , dict ) and ((range := spec .get ('range' )) is not None ):
52
+ return f"range({ range ['min' ]} ..{ range ['max' ]} )"
53
+
54
+ if spec == 'size' :
55
+ return "size"
56
+ elif spec == "str" :
53
57
return "string"
54
- elif text == "int" :
55
- return "integer"
56
- elif text == "bool" :
58
+ elif spec == "bool" :
57
59
return "boolean"
58
- else :
59
- return "unknown"
60
+ elif spec == "int" :
61
+ return "integer"
62
+
63
+ return "unknown"
64
+
60
65
61
66
62
67
def arg_value (item ):
@@ -108,7 +113,7 @@ def get_description(item):
108
113
environment = jinja2 .Environment (loader = templateLoader )
109
114
110
115
environment .filters ["trim" ] = trim
111
- environment .filters ["data_type_name " ] = data_type_name
116
+ environment .filters ["argument_type " ] = argument_type
112
117
environment .filters ["arg_value" ] = arg_value
113
118
environment .filters ["param_value" ] = param_value
114
119
environment .filters ["required" ] = required
0 commit comments