class documentation

class ImplicitBooleanessChecker(checkers.BaseChecker): (source)

View In Hierarchy

Checks for incorrect usage of comparisons or len() inside conditions. Incorrect usage of len() Pep8 states: For sequences, (strings, lists, tuples), use the fact that empty sequences are false. Yes: if not seq: if seq: No: if len(seq): if not len(seq): Problems detected: * if len(sequence): * if not len(sequence): * elif len(sequence): * elif not len(sequence): * while len(sequence): * while not len(sequence): * assert len(sequence): * assert not len(sequence): * bool(len(sequence)) Incorrect usage of empty literal sequences; (), [], {}, For empty sequences, (dicts, lists, tuples), use the fact that empty sequences are false. Yes: if variable: if not variable No: if variable == empty_literal: if variable != empty_literal: Problems detected: * comparison such as variable == empty_literal: * comparison such as variable != empty_literal:

Static Method base_names_of_instance Return all names inherited by a class instance or those returned by a function.
Static Method instance_has_bool Undocumented
Method visit_call Undocumented
Method visit_compare Undocumented
Method visit_unaryop `not len(S)` must become `not S` regardless if the parent block is a test condition or something else (boolean expression) e.g. `if not len(S):`.
Class Variable msgs Undocumented
Class Variable name Name of the provider.
Class Variable options Options provided by this provider.
Method _check_use_implicit_booleaness_not_comparison Check for left side and right side of the node for empty literals.
Method _get_node_description Undocumented
Method _implicit_booleaness_message_args Helper to get the right message for "use-implicit-booleaness-not-comparison".

Inherited from BaseChecker:

Method __eq__ Permit to assert Checkers are equal.
Method __gt__ Sorting of checkers.
Method __hash__ Make Checker hashable.
Method __init__ Checker instances should have the linter as argument.
Method __repr__ Undocumented
Method __str__ This might be incomplete because multiple classes inheriting BaseChecker can have the same name.
Method add_message Undocumented
Method check_consistency Check the consistency of msgid.
Method close Called after visiting project (i.e set of modules).
Method create_message_definition_from_tuple Undocumented
Method get_full_documentation Undocumented
Method get_map_data Undocumented
Method get_message_definition Undocumented
Method open Called before visiting project (i.e. set of modules).
Method reduce_map_data Undocumented
Class Variable enabled Undocumented
Class Variable reports Undocumented
Instance Variable linter Undocumented
Property messages Undocumented

Inherited from _ArgumentsProvider (via BaseChecker):

Method get_option_def DEPRECATED: Return the dictionary defining an option given its name.
Method level.setter Undocumented
Method load_defaults DEPRECATED: Initialize the provider using default values.
Method option_attrname DEPRECATED: Get the config attribute corresponding to opt.
Method option_value DEPRECATED: Get the current value for the given option.
Method options_and_values DEPRECATED.
Method options_by_section DEPRECATED: Return an iterator on options grouped by section.
Method set_option DEPRECATED: Method called to set an option (registered in the options list).
Class Variable option_groups_descs Option groups of this provider and their descriptions.
Property config Undocumented
Property level Undocumented
Instance Variable _arguments_manager The manager that will parse and register any options provided.
Instance Variable _level Undocumented
@staticmethod
def base_names_of_instance(node: util.UninferableBase|bases.Instance) -> list[str]: (source)

Return all names inherited by a class instance or those returned by a function. The inherited names include 'object'.

@staticmethod
def instance_has_bool(class_def: nodes.ClassDef) -> bool: (source)

Undocumented

@utils.only_required_for_messages('use-implicit-booleaness-not-len')
def visit_call(self, node: nodes.Call): (source)

Undocumented

@utils.only_required_for_messages('use-implicit-booleaness-not-comparison')
def visit_compare(self, node: nodes.Compare): (source)

Undocumented

@utils.only_required_for_messages('use-implicit-booleaness-not-len')
def visit_unaryop(self, node: nodes.UnaryOp): (source)

`not len(S)` must become `not S` regardless if the parent block is a test condition or something else (boolean expression) e.g. `if not len(S):`.

Name of the provider.

Options provided by this provider.

def _check_use_implicit_booleaness_not_comparison(self, node: nodes.Compare): (source)

Check for left side and right side of the node for empty literals.

def _get_node_description(self, node: nodes.NodeNG) -> str: (source)

Undocumented

def _implicit_booleaness_message_args(self, literal_node: nodes.NodeNG, operator: str, target_node: nodes.NodeNG) -> tuple[str, str, str]: (source)

Helper to get the right message for "use-implicit-booleaness-not-comparison".