class_docstr: Abstract base class for streamable statistics of trees of tensors.
  
  Derived classes must implelement :meth:`update`, :meth:`merge`, and
  :meth:`get`.
docstr: Select two aggregate statistics, e.g. from different MCMC chains.
  
  This is a pure function: it returns a new :class:`StreamingStats`
  object and does not modify either ``self`` or ``other``.
  
  :param other: Another streaming stats instance of the same type.
docstr_tok: ["Select","two","aggregate","statistics",",","e.g",".","from","different","MCMC","chains",".","This","is","a","pure","function",":","it","returns","a","new",":","class",":","`","StreamingStats","`","object","and","does","not","modify","either","``","self","``","or","``","other","``",".",":","param","other",":","Another","streaming","stats","instance","of","the","same","type","."]
code: def merge(self, other) -> "StreamingStats":
      """
      Select two aggregate statistics, e.g. from different MCMC chains.
  
      This is a pure function: it returns a new :class:`StreamingStats`
      object and does not modify either ``self`` or ``other``.
  
      :param other: Another streaming stats instance of the same type.
      """
      assert isinstance(other, type(self))
      raise NotImplementedError
  
imports: import copy
  from abc import ABC, abstractmethod
  from collections import defaultdict
  from typing import Any, Callable, Dict, Hashable, Union
  import torch
  from pyro.ops.welford import WelfordCovariance
label_desc: Use image node_id 2 for calling the StreamingStats obj's underlying member method code with example usage: obj.merge(other) without return types