def set_possible(self):
possible = []<EOL>name = self.name<EOL>logger.debug('<STR_LIT>'.format(name))<EOL>name_f = self.name.lower()<EOL>filepath = "<STR_LIT>"<EOL>if name_f.endswith("<STR_LIT>") or "<STR_LIT>" in name_f:<EOL><INDENT>bits = name.split("<STR_LIT::>", <NUM_LIT:1>)<EOL>filepath = bits[<NUM_LIT:0>]<EOL>logger.debug('<STR_LIT>'.format(filepath))<EOL>name = bits[<NUM_LIT:1>] if len(bits) > <NUM_LIT:1> else "<STR_LIT>"<EOL>if name:<EOL><INDENT>logger.debug('<STR_LIT>'.format(name, filepath))<EOL><DEDENT><DEDENT>bits = name.split('<STR_LIT:.>')<EOL>basedir = self.basedir<EOL>method_prefix = self.method_prefix<EOL>if re.search(r'<STR_LIT>', bits[-<NUM_LIT:1>]):<EOL><INDENT>logger.debug('<STR_LIT>'.format(bits[-<NUM_LIT:1>]))<EOL>possible.append(PathFinder(basedir, method_prefix, **{<EOL>'<STR_LIT>': bits[-<NUM_LIT:1>],<EOL>'<STR_LIT>': bits[-<NUM_LIT:2>] if len(bits) > <NUM_LIT:1> else '<STR_LIT>',<EOL>'<STR_LIT>': os.sep.join(bits[<NUM_LIT:0>:-<NUM_LIT:2>]),<EOL>'<STR_LIT>': filepath,<EOL>}))<EOL><DEDENT>elif len(bits) > <NUM_LIT:1> and re.search(r'<STR_LIT>', bits[-<NUM_LIT:2>]):<EOL><INDENT>logger.debug('<STR_LIT>'.format(bits[-<NUM_LIT:2>]))<EOL>possible.append(PathFinder(basedir, method_prefix, **{<EOL>'<STR_LIT>': bits[-<NUM_LIT:2>],<EOL>'<STR_LIT>': bits[-<NUM_LIT:1>],<EOL>'<STR_LIT>': bits[-<NUM_LIT:3>] if len(bits) > <NUM_LIT:2> else '<STR_LIT>',<EOL>'<STR_LIT>': os.sep.join(bits[<NUM_LIT:0>:-<NUM_LIT:3>]),<EOL>'<STR_LIT>': filepath,<EOL>}))<EOL><DEDENT>else:<EOL><INDENT>if self.name:<EOL><INDENT>if filepath:<EOL><INDENT>if len(bits):<EOL><INDENT>possible.append(PathFinder(basedir, method_prefix, **{<EOL>'<STR_LIT>': filepath,<EOL>'<STR_LIT>': bits[<NUM_LIT:0>],<EOL>}))<EOL><DEDENT>else:<EOL><INDENT>possible.append(PathFinder(basedir, method_prefix, **{<EOL>'<STR_LIT>': filepath,<EOL>}))<EOL><DEDENT><DEDENT>else:<EOL><INDENT>logger.debug('<STR_LIT>')<EOL>possible.append(PathFinder(basedir, method_prefix, **{<EOL>'<STR_LIT>': bits[-<NUM_LIT:1>],<EOL>'<STR_LIT>': os.sep.join(bits[<NUM_LIT:0>:-<NUM_LIT:1>]),<EOL>'<STR_LIT>': filepath,<EOL>}))<EOL>possible.append(PathFinder(basedir, method_prefix, **{<EOL>'<STR_LIT>': bits[-<NUM_LIT:1>],<EOL>'<STR_LIT>': bits[-<NUM_LIT:2>] if len(bits) > <NUM_LIT:1> else '<STR_LIT>',<EOL>'<STR_LIT>': os.sep.join(bits[<NUM_LIT:0>:-<NUM_LIT:2>]),<EOL>'<STR_LIT>': filepath,<EOL>}))<EOL>possible.append(PathFinder(basedir, method_prefix, **{<EOL>'<STR_LIT>': os.sep.join(bits),<EOL>'<STR_LIT>': filepath,<EOL>}))<EOL><DEDENT><DEDENT>else:<EOL><INDENT>possible.append(PathFinder(basedir, method_prefix, filepath=filepath))<EOL><DEDENT><DEDENT>logger.debug("<STR_LIT>".format(len(possible)))<EOL>self.possible = possible<EOL>
break up a module path to its various parts (prefix, module, class, method)

this uses PEP 8 conventions, so foo.Bar would be foo module with class Bar

return -- list -- a list of possible interpretations of the module path
    (eg, foo.bar can be bar module in foo module, or bar method in foo module)