in azdev/operations/statistics/__init__.py [0:0]
def _command_codegen_info(command_name, command, module_loader): # pylint: disable=unused-argument, too-many-branches, too-many-statements
from azure.cli.core.commands import AzCliCommand
try:
from azure.cli.core.aaz import AAZCommand
if isinstance(command, AAZCommand):
return {
"version": "v2",
"type": "Atomic"
}
except ImportError:
pass
if isinstance(command, AzCliCommand):
if 'command_operation' not in command.command_kwargs:
return None
command_operation = command.command_kwargs['command_operation']
is_v2_convenience = False
is_generated = False
if getattr(command_operation, 'op_path', None):
operation_path = command_operation.op_path
operation_module_path = operation_path.split("#")[0]
op = command_operation.get_op_handler(operation_path)
func_map = _get_module_functions(operation_module_path)
op_source = _expand_all_functions(op, func_map)
for line in op_source.splitlines():
if import_aaz_express.match(line):
is_v2_convenience = True
break
if command_args_express.match(line):
is_v2_convenience = True
path_parts = list(Path(inspect.getfile(op)).parts)
if "generated" in path_parts:
is_generated = True
if not is_v2_convenience and getattr(command_operation, 'getter_op_path', None):
op = command_operation.get_op_handler(command_operation.getter_op_path)
op_source = inspect.getsource(op)
for line in op_source.splitlines():
if import_aaz_express.match(line):
is_v2_convenience = True
break
if command_args_express.match(line):
is_v2_convenience = True
path_parts = list(Path(inspect.getfile(op)).parts)
if "generated" in path_parts:
is_generated = True
if not is_v2_convenience and getattr(command_operation, 'setter_op_path', None):
op = command_operation.get_op_handler(command_operation.setter_op_path)
op_source = inspect.getsource(op)
for line in op_source.splitlines():
if import_aaz_express.match(line):
is_v2_convenience = True
break
if command_args_express.match(line):
is_v2_convenience = True
path_parts = list(Path(inspect.getfile(op)).parts)
if "generated" in path_parts:
is_generated = True
if not is_v2_convenience and getattr(command_operation, 'custom_function_op_path', None):
op = command_operation.get_op_handler(command_operation.custom_function_op_path)
op_source = inspect.getsource(op)
for line in op_source.splitlines():
if import_aaz_express.match(line):
is_v2_convenience = True
break
if command_args_express.match(line):
is_v2_convenience = True
path_parts = list(Path(inspect.getfile(op)).parts)
if "generated" in path_parts:
is_generated = True
if is_v2_convenience:
return {
"version": "v2",
"type": "Convenience"
}
if is_generated:
return {
"version": "v1",
"type": "SDK"
}
return None