@@ -32,31 +32,26 @@ 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 ):
49
- if "action" in item :
50
- return "marker"
51
- text = item ["type" ]
52
- if text == "str" :
53
- return "string"
54
- elif text == "int" :
55
- return "integer"
56
- elif text == "bool" :
57
- return "boolean"
58
- else :
59
- return "unknown"
35
+ return item .get ('required' , False )
36
+
37
+
38
+ def argument_type (spec ):
39
+ if isinstance (spec , dict ) and ((regex := spec .get ('regex' )) is not None ):
40
+ return f"regex({ regex } )"
41
+
42
+ if spec == 'size' :
43
+ return "size"
44
+
45
+ if isinstance (spec , dict ) and ((size := spec .get ('size' )) is not None ):
46
+ min = "utils.parse_size('{}')" .format (size ['min' ]) if 'min' in size else ''
47
+ max = "utils.parse_size('{}')" .format (size ['max' ]) if 'max' in size else ''
48
+ return f"size({ min } ..{ max } )"
49
+
50
+ if isinstance (spec , dict ) and ((range := spec .get ('range' )) is not None ):
51
+ return f"range({ range ['min' ]} ..{ range ['max' ]} )"
52
+
53
+ return "unknown"
54
+
60
55
61
56
62
57
def arg_value (item ):
@@ -108,7 +103,7 @@ def get_description(item):
108
103
environment = jinja2 .Environment (loader = templateLoader )
109
104
110
105
environment .filters ["trim" ] = trim
111
- environment .filters ["data_type_name " ] = data_type_name
106
+ environment .filters ["argument_type " ] = argument_type
112
107
environment .filters ["arg_value" ] = arg_value
113
108
environment .filters ["param_value" ] = param_value
114
109
environment .filters ["required" ] = required
0 commit comments