Beispiel #1
0
    def _define(
        self,
        collection,
        name,
        first_node,
        last_node=None,
        message="",
        confidence=DEFAULT_CONFIDENCE,
        ignore=None,
    ):
        def ignored(lineno):
            return ((ignore and ignore(self.filename, name))
                    or _match(name, self.ignore_names) or noqa.ignore_line(
                        self.noqa_lines, lineno, ERROR_CODES[typ]))

        last_node = last_node or first_node
        typ = collection.typ
        first_lineno = lines.get_first_line_number(first_node)

        if ignored(first_lineno):
            self._log(f'Ignoring {typ} "{name}"')
        else:
            last_lineno = lines.get_last_line_number(last_node)
            collection.append(
                Item(
                    name,
                    typ,
                    self.filename,
                    first_lineno,
                    last_lineno,
                    message=message,
                    confidence=confidence,
                ))
Beispiel #2
0
def count_lines(node):
    """Estimate the number of lines of the given AST node."""
    last_lineno = lines.get_last_line_number(node)
    assert get_last_line_number_slow(node) == last_lineno
    return last_lineno - lines.get_first_line_number(node) + 1