<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def walk_dirs(path, include=None, include_ext=None, exclude=None, exclude_ext=None, recursion=True, file_only=False, use_default_pattern=True, patterns=None):
 """ path directory path resursion True will extract all sub module of mod """

    default_exclude = ['.svn', '_svn', '.git']
    default_exclude_ext = ['.pyc', '.pyo', '.bak', '.tmp']
    exclude = exclude or []
    exclude_ext = exclude_ext or []
    include_ext = include_ext or []
    include = include or []

    if not os.path.exists(path):
        raise StopIteration

    for r in os.listdir(path):
        if match(r, exclude) or (use_default_pattern and r in default_exclude):
            continue
        if include and r not in include:
            continue
        fpath = os.path.join(path, r)
        if os.path.isdir(fpath):
            if not file_only:
                if patterns and match(r, patterns):
                    yield os.path.normpath(fpath).replace('\\', '/')
            if recursion:
                for f in walk_dirs(fpath, include, include_ext, exclude,
                    exclude_ext, recursion, file_only, use_default_pattern, patterns):
                    yield os.path.normpath(f).replace('\\', '/')
        else:
            ext = os.path.splitext(fpath)[1]
            if ext in exclude_ext or (use_default_pattern and ext in default_exclude_ext):
                continue
            if include_ext and ext not in include_ext:
                continue
            if patterns:
                if not match(r, patterns):
                    continue
            yield os.path.normpath(fpath).replace('\\', '/')