avoid-inplace-true
Ast Rule: function call
avoid-inplace-true
function visit(node, filename, code) {
FUNCTION_TO_CHECK = ["replace", "fillna", "sort_values", "query", "drop_duplicates", "reset_index"]
console.log(node.functionName.astType);
if (node.functionName.astType === "string" && FUNCTION_TO_CHECK.includes(node.functionName.value)) {
const arguments = node.arguments && node.arguments.values;
if (!arguments) {
return;
}
const inplaceArguments = arguments.filter(a => a.name && a.name.value === "inplace" && a.value && a.value.value === "True");
console.log(inplaceArguments);
if (inplaceArguments && inplaceArguments.length > 0) {
console.log("bla");
const arg = inplaceArguments[0];
const error = buildError(arg.start.line, arg.start.col, arg.end.line, arg.end.col,
"inplace=True should not be used", "INFO", "BEST_PRACTICE");
const edit = buildEditRemove(arg.start.line, arg.start.col, arg.end.line, arg.end.col);
const fix = buildFix("remove argument", [edit]);
addError(error.addFix(fix));
}
}
}
other-function.py
Expected test result: no error
use-inplace.py
Expected test result: has error
inplace-false.py
Expected test result: no error
no-inplace.py
Expected test result: no error