code: def check_docstring_missing(self, definition, docstring):
          
          if (not docstring and definition.is_public or
                  docstring and is_blank(ast.literal_eval(docstring))):
              codes = {Module: violations.D100,
                       Class: violations.D101,
                       NestedClass: violations.D106,
                       Method: (lambda: violations.D105() if definition.is_magic
                                else (violations.D107() if definition.is_init
                                else violations.D102())),
                       Function: violations.D103,
                       NestedFunction: violations.D103,
                       Package: violations.D104}
              return codes[type(definition)]()
docs: 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.