def find(self, obj, name=None, module=None, globs=None,<EOL>extraglobs=None):
<EOL>if name is None:<EOL><INDENT>name = getattr(obj, '<STR_LIT>', None)<EOL>if name is None:<EOL><INDENT>raise ValueError("<STR_LIT>"<EOL>"<STR_LIT>" %<EOL>(type(obj),))<EOL><DEDENT><DEDENT>if module is False:<EOL><INDENT>module = None<EOL><DEDENT>elif module is None:<EOL><INDENT>module = inspect.getmodule(obj)<EOL><DEDENT>try:<EOL><INDENT>file = inspect.getsourcefile(obj) or inspect.getfile(obj)<EOL>source_lines = linecache.getlines(file)<EOL>if not source_lines:<EOL><INDENT>source_lines = None<EOL><DEDENT><DEDENT>except TypeError:<EOL><INDENT>source_lines = None<EOL><DEDENT>if globs is None:<EOL><INDENT>if module is None:<EOL><INDENT>globs = {}<EOL><DEDENT>else:<EOL><INDENT>globs = module.__dict__.copy()<EOL><DEDENT><DEDENT>else:<EOL><INDENT>globs = globs.copy()<EOL><DEDENT>if extraglobs is not None:<EOL><INDENT>globs.update(extraglobs)<EOL><DEDENT>tests = []<EOL>self._find(tests, obj, name, module, source_lines, globs, {})<EOL>tests.sort()<EOL>return tests<EOL>
Return a list of the DocTests that are defined by the given
object's docstring, or by any of its contained objects'
docstrings.

The optional parameter `module` is the module that contains
the given object.  If the module is not specified or is None, then
the test finder will attempt to automatically determine the
correct module.  The object's module is used:

    - As a default namespace, if `globs` is not specified.
    - To prevent the DocTestFinder from extracting DocTests
      from objects that are imported from other modules.
    - To find the name of the file containing the object.
    - To help find the line number of the object within its
      file.

Contained objects whose module does not match `module` are ignored.

If `module` is False, no attempt to find the module will be made.
This is obscure, of use mostly in tests:  if `module` is False, or
is None but cannot be found automatically, then all objects are
considered to belong to the (non-existent) module, so all contained
objects will (recursively) be searched for doctests.

The globals for each DocTest is formed by combining `globs`
and `extraglobs` (bindings in `extraglobs` override bindings
in `globs`).  A new copy of the globals dictionary is created
for each DocTest.  If `globs` is not specified, then it
defaults to the module's `__dict__`, if specified, or {}
otherwise.  If `extraglobs` is not specified, then it defaults
to {}.