class_docstr: A union of a number of sub restrictions.
  
  Parameters
  ----------
  sub_restrictions : iterable of Restrictions (but not _UnionRestrictions)
      The Restrictions to be added together
  
  Notes
  -----
  - Consumers should not construct instances of this class directly, but
    instead use the `|` operator to combine restrictions
class_docstr_tok: ["A","union","of","a","number","of","sub","restrictions",".","Parameters","--","--","--","--","--","sub_restrictions",":","iterable","of","Restrictions","(","but","not","_UnionRestrictions",")","The","Restrictions","to","be","added","together","Notes","--","--","-","-","Consumers","should","not","construct","instances","of","this","class","directly",",","but","instead","use","the","`","|","`","operator","to","combine","restrictions"]
code: def is_restricted(self, assets, dt):
      if isinstance(assets, Asset):
          return any(
              r.is_restricted(assets, dt) for r in self.sub_restrictions
          )
  
      return reduce(
          operator.or_,
          (r.is_restricted(assets, dt) for r in self.sub_restrictions),
      )
  
imports: import abc
  from numpy import vectorize
  from functools import partial, reduce
  import operator
  import pandas
  from six import with_metaclass, iteritems
  from collections import namedtuple
  from toolz import groupby
  from catalyst.utils.enum import enum
  from catalyst.utils.numpy_utils import vectorized_is_element
  from catalyst.assets import Asset
label_desc: Use image node_id 3 for calling the _UnionRestrictions obj's underlying member method code with example usage: obj.is_restricted(assets, dt) and returns: reduce, any