<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def chunk_by(n, iterable, fillvalue=None):
 """ Iterate over a given ``iterable`` by ``n`` elements at a time. :param n: (int) a chunk size number :param iterable: (iterator) an input iterator :param fillvalue: (any) a value to be used to fit chunk size if there not enough values in input iterator :returns: (iterator) an output iterator that iterates over the input one by chunks of size ``n`` """

    args = [iter(iterable)] * n
    return zip_longest(*args, fillvalue=fillvalue)