# Path: generators/window.py
# @strict_globals(deque=deque, islice=islice)
# def window(iterable, size=2):
#     ''' yields wondows of a given size '''
#     iterable = iter(iterable)
#     d = deque(islice(iterable, size-1), maxlen=size)
#     for _ in map(d.append, iterable):
#         yield tuple(d)


from .window import window
from strict_functions import strict_globals
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: Cody Kochmann
# @Date:   2017-09-09
# @Last Modified by:   Cody Kochmann



@strict_globals(window=window)
def all_substrings(s):
    ''' yields all substrings of a string '''
    join = ''.join
    for i in range(1, len(s) + 1):

# Path: generators/window.py
# @strict_globals(deque=deque, islice=islice)
# def window(iterable, size=2):
#     ''' yields wondows of a given size '''
#     iterable = iter(iterable)
#     d = deque(islice(iterable, size-1), maxlen=size)
#     for _ in map(d.append, iterable):
#         yield tuple(d)


# Path: generators/all_substrings.py
from .window import window
from strict_functions import strict_globals

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: Cody Kochmann
# @Date:   2017-09-09
# @Last Modified by:   Cody Kochmann



@strict_globals(window=window)
def all_substrings(s):
    ''' yields all substrings of a string '''
    join = ''.join
    for i in range(1, len(s) + 1):

        for sub in window(s, i):