parameters: (self, attr)
return_statement: return _get_primitive(property_value, property_type)
docstring: Gets a property of the underlying node and unwraps it.
docstring_summary: Gets a property of the underlying node and unwraps it.
docstring_tokens: Gets a property of the underlying node and unwraps it .
function: def get_property(self, attr) -> typing.Union[int, float, Text, None]:
      """Gets a property of the underlying node and unwraps it."""
      property_type = self._get_type().properties.get(attr)
      if property_type is None:
        raise ValueError("Type {} has no property {}.".format(
            self._get_type().name, attr))
      property_value = self._get_node().properties.get(attr)
      if property_value is None:
        return None
      return _get_primitive(property_value, property_type)
function_tokens: def get_property ( self , attr ) -> typing . Union [ int , float , Text , None ] : property_type = self . _get_type ( ) . properties . get ( attr ) if property_type is None : raise ValueError ( "Type {} has no property {}." . format ( self . _get_type ( ) . name , attr ) ) property_value = self . _get_node ( ) . properties . get ( attr ) if property_value is None : return None return _get_primitive ( property_value , property_type )