def find_end_of_attribute(block, offset):
 (block, boundary) = next_attr_boundary(block, offset)
 if ((block is None) or (boundary is None)):
  return (None, None)
 if ((boundary.type is not ATTR_VALUE) or (boundary.data is not ATTR_END)):
  return (None, None)
 return (block, boundary.offset)

def find_end_of_attribute ( block , offset ) : ( block , boundary ) = next_attr_boundary ( block , offset ) if ( ( block is None ) or ( boundary is None ) ) : return ( None , None ) if ( ( boundary . type is not ATTR_VALUE ) or ( boundary . data is not ATTR_END ) ) : return ( None , None ) return ( block , boundary . offset )
find the end of an attribute that occurs somewhere after the position specified by .