class_docstr: Historical restrictions stored in memory with effective dates for each
  asset.
  
  Parameters
  ----------
  restrictions : iterable of namedtuple Restriction
      The restrictions, each defined by an asset, effective date and state
class_docstr_tok: ["Historical","restrictions","stored","in","memory","with","effective","dates","for","each","asset",".","Parameters","--","--","--","--","--","restrictions",":","iterable","of","namedtuple","Restriction","The","restrictions",",","each","defined","by","an","asset",",","effective","date","and","state"]
code: def _is_restricted_for_asset(self, asset, dt):
      state = RESTRICTION_STATES.ALLOWED
      for r in self._restrictions_by_asset.get(asset, ()):
          if r.effective_date > dt:
              break
          state = r.state
      return state == RESTRICTION_STATES.FROZEN
  
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 HistoricalRestrictions obj's underlying member method code with example usage: obj._is_restricted_for_asset(asset, dt) and returns: unknown