code: def copy(self, zero=None):
      
      return Poly(OrderedDict((k, v.copy() if isinstance(v, Stream) else v)
                              for k, v in iteritems(self._data)),
                  zero=self.zero if zero is None else zero)
docs: Returns a Poly instance with the same terms, but as a "T" (tee) copy
      when they're Stream instances, allowing maths using a polynomial more
      than once.