MCPcopy Index your code
hub / github.com/python/cpython / run_clinic

Function run_clinic

Tools/clinic/libclinic/cli.py:122–219  ·  view source on GitHub ↗
(parser: argparse.ArgumentParser, ns: argparse.Namespace)

Source from the content-addressed store, hash-verified

120
121
122def run_clinic(parser: argparse.ArgumentParser, ns: argparse.Namespace) -> None:
123 if ns.converters:
124 if ns.filename:
125 parser.error(
126 "can't specify --converters and a filename at the same time"
127 )
128 AnyConverterType = ConverterType | ReturnConverterType
129 converter_list: list[tuple[str, AnyConverterType]] = []
130 return_converter_list: list[tuple[str, AnyConverterType]] = []
131
132 for name, converter in converters.items():
133 converter_list.append((
134 name,
135 converter,
136 ))
137 for name, return_converter in return_converters.items():
138 return_converter_list.append((
139 name,
140 return_converter
141 ))
142
143 print()
144
145 print("Legacy converters:")
146 legacy = sorted(legacy_converters)
147 print(' ' + ' '.join(c for c in legacy if c[0].isupper()))
148 print(' ' + ' '.join(c for c in legacy if c[0].islower()))
149 print()
150
151 for title, attribute, ids in (
152 ("Converters", 'converter_init', converter_list),
153 ("Return converters", 'return_converter_init', return_converter_list),
154 ):
155 print(title + ":")
156
157 ids.sort(key=lambda item: item[0].lower())
158 longest = -1
159 for name, _ in ids:
160 longest = max(longest, len(name))
161
162 for name, cls in ids:
163 callable = getattr(cls, attribute, None)
164 if not callable:
165 continue
166 signature = inspect.signature(callable)
167 parameters = []
168 for parameter_name, parameter in signature.parameters.items():
169 if parameter.kind == inspect.Parameter.KEYWORD_ONLY:
170 if parameter.default != inspect.Parameter.empty:
171 s = f'{parameter_name}={parameter.default!r}'
172 else:
173 s = parameter_name
174 parameters.append(s)
175 print(' {}({})'.format(name, ', '.join(parameters)))
176 print()
177 print("All converters also accept (c_default=None, py_default=None, annotation=None).")
178 print("All return converters also accept (py_default=None).")
179 return

Callers 1

mainFunction · 0.85

Calls 14

isupperMethod · 0.80
islowerMethod · 0.80
parse_fileFunction · 0.70
errorMethod · 0.45
itemsMethod · 0.45
appendMethod · 0.45
joinMethod · 0.45
sortMethod · 0.45
lowerMethod · 0.45
signatureMethod · 0.45
formatMethod · 0.45
walkMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…