docs: def _find_source(method):
          ''' find source code of a given method
          
          Find and extract the source code of a given method in a module.
          Uses inspect.findsource to get all source code and performs some
          selection magic to identify method source code.  Doing it this way
          because inspect.getsource returns wrong method.
  
          Parameters:
              method (obj):
                  A method object
          
          Returns:
              A string containing the source code of a given method
          
          Example:
              >>> from sdss_access.path import Path
              >>> path = Path()
              >>> path._find_source(path.full)
          '''
          
          # get source code lines of entire module method is in
          source = inspect.findsource(method)
          is_method = inspect.ismethod(method)
          # create single source code string
          source_str = '\n'.join(source[0])
          # define search pattern
          if is_method:
              pattern = r'def\s{0}\(self'.format(method.__name__)
          # search for pattern within the string
          start = re.search(pattern, source_str)
          if start:
              # find start and end positions of source code
              startpos = start.start()
              endpos = source_str.find('def ', startpos + 1)
              code = source_str[startpos:endpos]
          else:
              code = None
          return code