text: 
  from operator import attrgetter
  import pyangbind.lib.xpathhelper as xpathhelper
  from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType, RestrictedClassType, TypedListType
  from pyangbind.lib.yangtypes import YANGBool, YANGListType, YANGDynClass, ReferenceType
  from pyangbind.lib.base import PybindBase
  from decimal import Decimal
  from bitarray import bitarray
  import __builtin__
  import querier
  import mrouter
  class snooping(PybindBase):
    """
    This class was auto-generated by the PythonClass plugin for PYANG
    from YANG module brocade-interface - based on the path /interface-vlan/interface/vlan/ipv6/mldVlan/snooping. Each member element of
    the container is represented as a class variable - with a specific
    YANG type.
    """
    __slots__ = ('_pybind_generated_by', '_path_helper', '_yang_name', '_rest_name', '_extmethods', '__enable','__fast_leave','__restrict_unknown_multicast_vlan','__robustness_variable','__querier','__mrouter',)
  
    _yang_name = 'snooping'
    _rest_name = 'snooping'
  
    _pybind_generated_by = 'container'
  
    def __init__(self, *args, **kwargs):
  
      path_helper_ = kwargs.pop("path_helper", None)
      if path_helper_ is False:
        self._path_helper = False
      elif path_helper_ is not None and isinstance(path_helper_, xpathhelper.YANGPathHelper):
        self._path_helper = path_helper_
      elif hasattr(self, "_parent"):
        path_helper_ = getattr(self._parent, "_path_helper", False)
        self._path_helper = path_helper_
      else:
        self._path_helper = False
  
      extmethods = kwargs.pop("extmethods", None)
      if extmethods is False:
        self._extmethods = False
      elif extmethods is not None and isinstance(extmethods, dict):
        self._extmethods = extmethods
      elif hasattr(self, "_parent"):
        extmethods = getattr(self._parent, "_extmethods", None)
        self._extmethods = extmethods
      else:
        self._extmethods = False
      self.__enable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable", rest_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'MLDS Enable', u'cli-full-command': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='empty', is_config=True)
      self.__restrict_unknown_multicast_vlan = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="restrict-unknown-multicast-vlan", rest_name="restrict-unknown-multicast", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Restrict Unknown Multicast traffic', u'cli-full-command': None, u'alt-name': u'restrict-unknown-multicast'}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='empty', is_config=True)
      self.__mrouter = YANGDynClass(base=mrouter.mrouter, is_container='container', presence=False, yang_name="mrouter", rest_name="mrouter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Multicast Router', u'callpoint': u'MldsMrtrVlan', u'cli-incomplete-no': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='container', is_config=True)
      self.__robustness_variable = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': [u'2..10']}), is_leaf=True, yang_name="robustness-variable", rest_name="robustness-variable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Robustness Variable', u'cli-full-command': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='rob-type', is_config=True)
      self.__querier = YANGDynClass(base=querier.querier, is_container='container', presence=False, yang_name="querier", rest_name="querier", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Querier', u'cli-incomplete-no': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='container', is_config=True)
      self.__fast_leave = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="fast-leave", rest_name="fast-leave", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Fast Leave Processing', u'cli-full-command': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='empty', is_config=True)
  
      load = kwargs.pop("load", None)
      if args:
        if len(args) > 1:
          raise TypeError("cannot create a YANG container with >1 argument")
        all_attr = True
        for e in self._pyangbind_elements:
          if not hasattr(args[0], e):
            all_attr = False
            break
        if not all_attr:
          raise ValueError("Supplied object did not have the correct attributes")
        for e in self._pyangbind_elements:
          nobj = getattr(args[0], e)
          if nobj._changed() is False:
            continue
          setmethod = getattr(self, "_set_%s" % e)
          if load is None:
            setmethod(getattr(args[0], e))
          else:
            setmethod(getattr(args[0], e), load=load)
  
    def _path(self):
      if hasattr(self, "_parent"):
        return self._parent._path()+[self._yang_name]
      else:
        return [u'interface-vlan', u'interface', u'vlan', u'ipv6', u'mldVlan', u'snooping']
  
    def _rest_path(self):
      if hasattr(self, "_parent"):
        if self._rest_name:
          return self._parent._rest_path()+[self._rest_name]
        else:
          return self._parent._rest_path()
      else:
        return [u'interface', u'Vlan', u'ipv6', u'mld', u'snooping']
  
    def _get_enable(self):
      """
      Getter method for enable, mapped from YANG variable /interface_vlan/interface/vlan/ipv6/mldVlan/snooping/enable (empty)
      """
      return self.__enable
        
    def _set_enable(self, v, load=False):
      """
      Setter method for enable, mapped from YANG variable /interface_vlan/interface/vlan/ipv6/mldVlan/snooping/enable (empty)
      If this variable is read-only (config: false) in the
      source YANG file, then _set_enable is considered as a private
      method. Backends looking to populate this variable should
      do so via calling thisObj._set_enable() directly.
      """
      if hasattr(v, "_utype"):
        v = v._utype(v)
      try:
        t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="enable", rest_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'MLDS Enable', u'cli-full-command': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='empty', is_config=True)
      except (TypeError, ValueError):
        raise ValueError({
            'error-string': """enable must be of a type compatible with empty""",
            'defined-type': "empty",
            'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable", rest_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'MLDS Enable', u'cli-full-command': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='empty', is_config=True)""",
          })
  
      self.__enable = t
      if hasattr(self, '_set'):
        self._set()
  
    def _unset_enable(self):
      self.__enable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="enable", rest_name="enable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'MLDS Enable', u'cli-full-command': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='empty', is_config=True)
  
  
    def _get_fast_leave(self):
      """
      Getter method for fast_leave, mapped from YANG variable /interface_vlan/interface/vlan/ipv6/mldVlan/snooping/fast_leave (empty)
      """
      return self.__fast_leave
        
    def _set_fast_leave(self, v, load=False):
      """
      Setter method for fast_leave, mapped from YANG variable /interface_vlan/interface/vlan/ipv6/mldVlan/snooping/fast_leave (empty)
      If this variable is read-only (config: false) in the
      source YANG file, then _set_fast_leave is considered as a private
      method. Backends looking to populate this variable should
      do so via calling thisObj._set_fast_leave() directly.
      """
      if hasattr(v, "_utype"):
        v = v._utype(v)
      try:
        t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="fast-leave", rest_name="fast-leave", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Fast Leave Processing', u'cli-full-command': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='empty', is_config=True)
      except (TypeError, ValueError):
        raise ValueError({
            'error-string': """fast_leave must be of a type compatible with empty""",
            'defined-type': "empty",
            'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="fast-leave", rest_name="fast-leave", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Fast Leave Processing', u'cli-full-command': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='empty', is_config=True)""",
          })
  
      self.__fast_leave = t
      if hasattr(self, '_set'):
        self._set()
  
    def _unset_fast_leave(self):
      self.__fast_leave = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="fast-leave", rest_name="fast-leave", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Fast Leave Processing', u'cli-full-command': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='empty', is_config=True)
  
  
    def _get_restrict_unknown_multicast_vlan(self):
      """
      Getter method for restrict_unknown_multicast_vlan, mapped from YANG variable /interface_vlan/interface/vlan/ipv6/mldVlan/snooping/restrict_unknown_multicast_vlan (empty)
      """
      return self.__restrict_unknown_multicast_vlan
        
    def _set_restrict_unknown_multicast_vlan(self, v, load=False):
      """
      Setter method for restrict_unknown_multicast_vlan, mapped from YANG variable /interface_vlan/interface/vlan/ipv6/mldVlan/snooping/restrict_unknown_multicast_vlan (empty)
      If this variable is read-only (config: false) in the
      source YANG file, then _set_restrict_unknown_multicast_vlan is considered as a private
      method. Backends looking to populate this variable should
      do so via calling thisObj._set_restrict_unknown_multicast_vlan() directly.
      """
      if hasattr(v, "_utype"):
        v = v._utype(v)
      try:
        t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="restrict-unknown-multicast-vlan", rest_name="restrict-unknown-multicast", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Restrict Unknown Multicast traffic', u'cli-full-command': None, u'alt-name': u'restrict-unknown-multicast'}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='empty', is_config=True)
      except (TypeError, ValueError):
        raise ValueError({
            'error-string': """restrict_unknown_multicast_vlan must be of a type compatible with empty""",
            'defined-type': "empty",
            'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="restrict-unknown-multicast-vlan", rest_name="restrict-unknown-multicast", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Restrict Unknown Multicast traffic', u'cli-full-command': None, u'alt-name': u'restrict-unknown-multicast'}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='empty', is_config=True)""",
          })
  
      self.__restrict_unknown_multicast_vlan = t
      if hasattr(self, '_set'):
        self._set()
  
    def _unset_restrict_unknown_multicast_vlan(self):
      self.__restrict_unknown_multicast_vlan = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="restrict-unknown-multicast-vlan", rest_name="restrict-unknown-multicast", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Restrict Unknown Multicast traffic', u'cli-full-command': None, u'alt-name': u'restrict-unknown-multicast'}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='empty', is_config=True)
  
  
    def _get_robustness_variable(self):
      """
      Getter method for robustness_variable, mapped from YANG variable /interface_vlan/interface/vlan/ipv6/mldVlan/snooping/robustness_variable (rob-type)
      """
      return self.__robustness_variable
        
    def _set_robustness_variable(self, v, load=False):
      """
      Setter method for robustness_variable, mapped from YANG variable /interface_vlan/interface/vlan/ipv6/mldVlan/snooping/robustness_variable (rob-type)
      If this variable is read-only (config: false) in the
      source YANG file, then _set_robustness_variable is considered as a private
      method. Backends looking to populate this variable should
      do so via calling thisObj._set_robustness_variable() directly.
      """
      if hasattr(v, "_utype"):
        v = v._utype(v)
      try:
        t = YANGDynClass(v,base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': [u'2..10']}), is_leaf=True, yang_name="robustness-variable", rest_name="robustness-variable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Robustness Variable', u'cli-full-command': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='rob-type', is_config=True)
      except (TypeError, ValueError):
        raise ValueError({
            'error-string': """robustness_variable must be of a type compatible with rob-type""",
            'defined-type': "brocade-mld-snooping:rob-type",
            'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': [u'2..10']}), is_leaf=True, yang_name="robustness-variable", rest_name="robustness-variable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Robustness Variable', u'cli-full-command': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='rob-type', is_config=True)""",
          })
  
      self.__robustness_variable = t
      if hasattr(self, '_set'):
        self._set()
  
    def _unset_robustness_variable(self):
      self.__robustness_variable = YANGDynClass(base=RestrictedClassType(base_type=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), restriction_dict={'range': [u'2..10']}), is_leaf=True, yang_name="robustness-variable", rest_name="robustness-variable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Robustness Variable', u'cli-full-command': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='rob-type', is_config=True)
  
  
    def _get_querier(self):
      """
      Getter method for querier, mapped from YANG variable /interface_vlan/interface/vlan/ipv6/mldVlan/snooping/querier (container)
      """
      return self.__querier
        
    def _set_querier(self, v, load=False):
      """
      Setter method for querier, mapped from YANG variable /interface_vlan/interface/vlan/ipv6/mldVlan/snooping/querier (container)
      If this variable is read-only (config: false) in the
      source YANG file, then _set_querier is considered as a private
      method. Backends looking to populate this variable should
      do so via calling thisObj._set_querier() directly.
      """
      if hasattr(v, "_utype"):
        v = v._utype(v)
      try:
        t = YANGDynClass(v,base=querier.querier, is_container='container', presence=False, yang_name="querier", rest_name="querier", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Querier', u'cli-incomplete-no': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='container', is_config=True)
      except (TypeError, ValueError):
        raise ValueError({
            'error-string': """querier must be of a type compatible with container""",
            'defined-type': "container",
            'generated-type': """YANGDynClass(base=querier.querier, is_container='container', presence=False, yang_name="querier", rest_name="querier", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Querier', u'cli-incomplete-no': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='container', is_config=True)""",
          })
  
      self.__querier = t
      if hasattr(self, '_set'):
        self._set()
  
    def _unset_querier(self):
      self.__querier = YANGDynClass(base=querier.querier, is_container='container', presence=False, yang_name="querier", rest_name="querier", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Querier', u'cli-incomplete-no': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='container', is_config=True)
  
  
    def _get_mrouter(self):
      """
      Getter method for mrouter, mapped from YANG variable /interface_vlan/interface/vlan/ipv6/mldVlan/snooping/mrouter (container)
      """
      return self.__mrouter
        
    def _set_mrouter(self, v, load=False):
      """
      Setter method for mrouter, mapped from YANG variable /interface_vlan/interface/vlan/ipv6/mldVlan/snooping/mrouter (container)
      If this variable is read-only (config: false) in the
      source YANG file, then _set_mrouter is considered as a private
      method. Backends looking to populate this variable should
      do so via calling thisObj._set_mrouter() directly.
      """
      if hasattr(v, "_utype"):
        v = v._utype(v)
      try:
        t = YANGDynClass(v,base=mrouter.mrouter, is_container='container', presence=False, yang_name="mrouter", rest_name="mrouter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Multicast Router', u'callpoint': u'MldsMrtrVlan', u'cli-incomplete-no': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='container', is_config=True)
      except (TypeError, ValueError):
        raise ValueError({
            'error-string': """mrouter must be of a type compatible with container""",
            'defined-type': "container",
            'generated-type': """YANGDynClass(base=mrouter.mrouter, is_container='container', presence=False, yang_name="mrouter", rest_name="mrouter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Multicast Router', u'callpoint': u'MldsMrtrVlan', u'cli-incomplete-no': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='container', is_config=True)""",
          })
  
      self.__mrouter = t
      if hasattr(self, '_set'):
        self._set()
  
    def _unset_mrouter(self):
      self.__mrouter = YANGDynClass(base=mrouter.mrouter, is_container='container', presence=False, yang_name="mrouter", rest_name="mrouter", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions={u'tailf-common': {u'info': u'Multicast Router', u'callpoint': u'MldsMrtrVlan', u'cli-incomplete-no': None}}, namespace='urn:brocade.com:mgmt:brocade-mld-snooping', defining_module='brocade-mld-snooping', yang_type='container', is_config=True)
  
    enable = __builtin__.property(_get_enable, _set_enable)
    fast_leave = __builtin__.property(_get_fast_leave, _set_fast_leave)
    restrict_unknown_multicast_vlan = __builtin__.property(_get_restrict_unknown_multicast_vlan, _set_restrict_unknown_multicast_vlan)
    robustness_variable = __builtin__.property(_get_robustness_variable, _set_robustness_variable)
    querier = __builtin__.property(_get_querier, _set_querier)
    mrouter = __builtin__.property(_get_mrouter, _set_mrouter)
  
  
    _pyangbind_elements = {'enable': enable, 'fast_leave': fast_leave, 'restrict_unknown_multicast_vlan': restrict_unknown_multicast_vlan, 'robustness_variable': robustness_variable, 'querier': querier, 'mrouter': mrouter, }
  
  
  