def align(self, other):
if isinstance(other, TimeSeries):<EOL><INDENT>aligned, other_aligned = {}, {}<EOL>i, other_i = self.iteritems_silent(), other.iteritems_silent()<EOL>item, other_item = i.next(), other_i.next()<EOL>while item and other_item:<EOL><INDENT>timestamp, value = item<EOL>other_timestamp, other_value = other_item<EOL>if timestamp == other_timestamp:<EOL><INDENT>aligned[timestamp] = value<EOL>other_aligned[other_timestamp] = other_value<EOL>item = i.next()<EOL>other_item = other_i.next()<EOL><DEDENT>elif timestamp < other_timestamp:<EOL><INDENT>aligned[timestamp] = value<EOL>other_aligned[timestamp] = other_value<EOL>item = i.next()<EOL><DEDENT>else:<EOL><INDENT>aligned[other_timestamp] = value<EOL>other_aligned[other_timestamp] = other_value<EOL>other_item = other_i.next()<EOL><DEDENT><DEDENT>while item:<EOL><INDENT>timestamp, value = item<EOL>aligned[timestamp] = value<EOL>other_aligned[timestamp] = other.values[-<NUM_LIT:1>]<EOL>item = i.next()<EOL><DEDENT>while other_item:<EOL><INDENT>other_timestamp, other_value = other_item<EOL>aligned[other_timestamp] = self.values[-<NUM_LIT:1>]<EOL>other_aligned[other_timestamp] = other_value<EOL>other_item = other_i.next()<EOL><DEDENT>return TimeSeries(aligned), TimeSeries(other_aligned)<EOL><DEDENT>
Align two time series so that len(self) == len(other) and self.timstamps == other.timestamps.

:return: :tuple:(`TimeSeries` object(the aligned self), `TimeSeries` object(the aligned other))