in client/statistics_collectors.py [0:0]
def visit_FunctionDef(self, node: cst.FunctionDef) -> None:
for decorator in node.decorators:
decorator_node = decorator.decorator
if isinstance(decorator_node, cst.Name):
if decorator_node.value == "staticmethod":
self.static_function_definition_depth += 1
break
self.function_definition_depth += 1
returns = AnnotationInfo(
node,
is_annotated=node.returns is not None,
code_range=self._code_range(node.name),
)
parameters = []
annotated_parameter_count = 0
for parameter_info in self._parameter_annotations(node.params.params):
if parameter_info.is_annotated:
annotated_parameter_count += 1
parameters.append(parameter_info)
annotation_kind = FunctionAnnotationKind.from_function_data(
returns.is_annotated,
annotated_parameter_count,
self._is_method_or_classmethod(),
parameters=node.params.params,
)
self.functions.append(
FunctionAnnotationInfo(
node,
annotation_kind,
self._code_range(node),
returns,
parameters,
self._is_method_or_classmethod(),
)
)