# 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

        '''
        if docstring:
            if '"""' in ast.literal_eval(docstring):
                # Allow ''' quotes if docstring contains """, because
                # otherwise """ quotes could not be expressed inside
                # docstring. Not in PEP 257.
                regex = re(r"[uU]?[rR]?'''[^'].*")
            else:
                regex = re(r'[uU]?[rR]?"""[^"].*')

            if not regex.match(docstring):
                illegal_matcher = re(r"""[uU]?[rR]?("+|'+).*""")
                illegal_quotes = illegal_matcher.match(docstring).group(1)
                return violations.D300(illegal_quotes)

    @check_for(Definition)
    def check_backslashes(self, definition, docstring):
        r'''D301: Use r""" if any backslashes in a docstring.

        Use r"""raw triple double quotes""" if you use any backslashes
        (\) in your docstrings.

        '''
        # Just check that docstring is raw, check_triple_double_quotes
        # ensures the correct quotes.
        if docstring and '\\' in docstring and not docstring.startswith(
                ('r', 'ur')):
            return violations.D301()


# 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


        '''
        if docstring:
            if '"""' in ast.literal_eval(docstring):
                # Allow ''' quotes if docstring contains """, because
                # otherwise """ quotes could not be expressed inside
                # docstring. Not in PEP 257.
                regex = re(r"[uU]?[rR]?'''[^'].*")
            else:
                regex = re(r'[uU]?[rR]?"""[^"].*')

            if not regex.match(docstring):
                illegal_matcher = re(r"""[uU]?[rR]?("+|'+).*""")
                illegal_quotes = illegal_matcher.match(docstring).group(1)
                return violations.D300(illegal_quotes)

    @check_for(Definition)
    def check_backslashes(self, definition, docstring):
        r'''D301: Use r""" if any backslashes in a docstring.

        Use r"""raw triple double quotes""" if you use any backslashes
        (\) in your docstrings.

        '''
        # Just check that docstring is raw, check_triple_double_quotes
        # ensures the correct quotes.
        if docstring and '\\' in docstring and not docstring.startswith(
                ('r', 'ur')):
            return violations.D301()


    @check_for(Definition)