<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Incremental Assembly
Suppose you have a function that calculates some value for a given index, which we will think of as "days from the beginning of the year".
Step2:  On any given day, you may want to know not just the value on that day, but all of the historical values as well.  And it would be lovely to be able to get that in one data structure, especially if stored in cloud storage, rather than having to iterate over a channel each time.
flowz provides an incremental assembly facility that makes this relatively easy to do.
<ASSISTANT_TASK:>
Python Code:
random.seed(1)
chan = IterChannel((i, random.randint(100, 200)) for i in range(10))
print_chans(chan.tee())
Explanation: Incremental Assembly
Suppose you have a function that calculates some value for a given index, which we will think of as "days from the beginning of the year".
End of explanation
from flowz.util import incremental_assembly, NO_VALUE
# NO_VALUE is a special value defined for incremental_assembly() that indicates the start of assembly
def prepend_assembler(new, old):
    
    A simple assembler that prepends new data at the beginning of the tuple of old data.
    
    if old is NO_VALUE:
        return (new,)
    else:
        return (new,) + old
dest = IterChannel([])
out = incremental_assembly(chan.tee(), dest.tee(), prepend_assembler)
print_chans(out)
Explanation: On any given day, you may want to know not just the value on that day, but all of the historical values as well.  And it would be lovely to be able to get that in one data structure, especially if stored in cloud storage, rather than having to iterate over a channel each time.
flowz provides an incremental assembly facility that makes this relatively easy to do.
End of explanation
<END_TASK>