# Path: bin/deps/pydocstyle/config.py
# class IllegalConfiguration(Exception):
#     """An exception for illegal configurations."""
# 
#     pass
# 
# Path: bin/deps/pydocstyle/parser.py
#     def next(obj, default=nothing):
#     def __str__(self):
# def humanize(string):
#     def __init__(self, *args):
#     def __hash__(self):
#     def __eq__(self, other):
#     def __repr__(self):
#     def __iter__(self):
#     def _publicity(self):
#     def source(self):
#         def is_empty_or_comment(line):
#     def __str__(self):
#     def is_public(self):
#     def __str__(self):
#     def is_public(self):
#     def is_test(self):
#     def is_magic(self):
#     def is_init(self):
#     def is_public(self):
#     def is_public(self):
#     def __init__(self, message):
#     def __init__(self, filelike):
#     def move(self):
#     def _next_from_generator(self):
#     def __iter__(self):
#     def __repr__(self):
#     def __init__(self, *args):
#     def parse(self, filelike, filename):
#     def __call__(self, *args, **kwargs):
#     def consume(self, kind):
#     def leapfrog(self, kind, value=None):
#     def parse_docstring(self):
#     def parse_decorators(self):
#     def parse_definitions(self, class_, all=False):
#     def parse_all(self):
#     def parse_module(self):
#     def parse_definition(self, class_):
#     def parse_skip_comment(self):
#     def check_current(self, kind=None, value=None):
#     def parse_from_import_statement(self):
#     def _parse_from_import_source(self):
#     def _parse_from_import_names(self, is_future_import):
# class ParseError(Exception):
# class Value(object):
# class Definition(Value):
# class Module(Definition):
# class Package(Module):
# class Function(Definition):
# class NestedFunction(Function):
# class Method(Function):
# class Class(Definition):
# class NestedClass(Class):
# class Decorator(Value):
# class AllError(Exception):
# class TokenStream(object):
# class TokenKind(int):
# class Token(Value):
# class Parser(object):
# VARIADIC_MAGIC_METHODS = ('__init__', '__call__', '__new__')
#     LOGICAL_NEWLINES = {tk.NEWLINE, tk.INDENT, tk.DEDENT}
# 
# Path: bin/deps/pydocstyle/utils.py
# def is_blank(string):
# def pairwise(iterable, default_value):


import ast
import string
import sys
import tokenize as tk
from itertools import takewhile
from re import compile as re
from collections import namedtuple
from . import violations
from .config import IllegalConfiguration
from .parser import (Package, Module, Class, NestedClass, Definition, AllError,
                     Method, Function, NestedFunction, Parser, StringIO,
                     ParseError)
from .utils import log, is_blank, pairwise
from .wordlists import IMPERATIVE_VERBS, IMPERATIVE_BLACKLIST, stem
                                              definition=definition)
                            yield error
                            if this_check._terminal:
                                terminate = True
                                break
                if terminate:
                    break

    @property
    def checks(self):
        all = [this_check for this_check in vars(type(self)).values()
               if hasattr(this_check, '_check_for')]
        return sorted(all, key=lambda this_check: not this_check._terminal)

    @check_for(Definition, terminal=True)
    def check_docstring_missing(self, definition, docstring):
        """D10{0,1,2,3}: Public definitions should have docstrings.

        All modules should normally have docstrings.  [...] all functions and
        classes exported by a module should also have docstrings. Public
        methods (including the __init__ constructor) should also have
        docstrings.

        Note: Public (exported) definitions are either those with names listed
              in __all__ variable (if present), or those that do not start
              with a single underscore.

        """
        if (not docstring and definition.is_public or
                docstring and is_blank(ast.literal_eval(docstring))):

# Path: bin/deps/pydocstyle/config.py
# class IllegalConfiguration(Exception):
#     """An exception for illegal configurations."""
# 
#     pass
# 
# Path: bin/deps/pydocstyle/parser.py
#     def next(obj, default=nothing):
#     def __str__(self):
# def humanize(string):
#     def __init__(self, *args):
#     def __hash__(self):
#     def __eq__(self, other):
#     def __repr__(self):
#     def __iter__(self):
#     def _publicity(self):
#     def source(self):
#         def is_empty_or_comment(line):
#     def __str__(self):
#     def is_public(self):
#     def __str__(self):
#     def is_public(self):
#     def is_test(self):
#     def is_magic(self):
#     def is_init(self):
#     def is_public(self):
#     def is_public(self):
#     def __init__(self, message):
#     def __init__(self, filelike):
#     def move(self):
#     def _next_from_generator(self):
#     def __iter__(self):
#     def __repr__(self):
#     def __init__(self, *args):
#     def parse(self, filelike, filename):
#     def __call__(self, *args, **kwargs):
#     def consume(self, kind):
#     def leapfrog(self, kind, value=None):
#     def parse_docstring(self):
#     def parse_decorators(self):
#     def parse_definitions(self, class_, all=False):
#     def parse_all(self):
#     def parse_module(self):
#     def parse_definition(self, class_):
#     def parse_skip_comment(self):
#     def check_current(self, kind=None, value=None):
#     def parse_from_import_statement(self):
#     def _parse_from_import_source(self):
#     def _parse_from_import_names(self, is_future_import):
# class ParseError(Exception):
# class Value(object):
# class Definition(Value):
# class Module(Definition):
# class Package(Module):
# class Function(Definition):
# class NestedFunction(Function):
# class Method(Function):
# class Class(Definition):
# class NestedClass(Class):
# class Decorator(Value):
# class AllError(Exception):
# class TokenStream(object):
# class TokenKind(int):
# class Token(Value):
# class Parser(object):
# VARIADIC_MAGIC_METHODS = ('__init__', '__call__', '__new__')
#     LOGICAL_NEWLINES = {tk.NEWLINE, tk.INDENT, tk.DEDENT}
# 
# Path: bin/deps/pydocstyle/utils.py
# def is_blank(string):
# def pairwise(iterable, default_value):


# Path: bin/deps/pydocstyle/checker.py
import ast
import string
import sys
import tokenize as tk
from itertools import takewhile
from re import compile as re
from collections import namedtuple
from . import violations
from .config import IllegalConfiguration
from .parser import (Package, Module, Class, NestedClass, Definition, AllError,
                     Method, Function, NestedFunction, Parser, StringIO,
                     ParseError)
from .utils import log, is_blank, pairwise
from .wordlists import IMPERATIVE_VERBS, IMPERATIVE_BLACKLIST, stem

                                              definition=definition)
                            yield error
                            if this_check._terminal:
                                terminate = True
                                break
                if terminate:
                    break

    @property
    def checks(self):
        all = [this_check for this_check in vars(type(self)).values()
               if hasattr(this_check, '_check_for')]
        return sorted(all, key=lambda this_check: not this_check._terminal)

    @check_for(Definition, terminal=True)
    def check_docstring_missing(self, definition, docstring):
        """D10{0,1,2,3}: Public definitions should have docstrings.

        All modules should normally have docstrings.  [...] all functions and
        classes exported by a module should also have docstrings. Public
        methods (including the __init__ constructor) should also have
        docstrings.

        Note: Public (exported) definitions are either those with names listed
              in __all__ variable (if present), or those that do not start
              with a single underscore.

        """
        if (not docstring and definition.is_public or
                docstring and is_blank(ast.literal_eval(docstring))):

            codes = {Module: violations.D100,