code: def rule_variable(field_type, label=None, options=None):
      
      options = options or []
      def wrapper(func):
          if not (type(field_type) == type and issubclass(field_type, BaseType)):
              raise AssertionError("{0} is not instance of BaseType in"\
                      " rule_variable field_type".format(field_type))
          func.field_type = field_type
          func.is_rule_variable = True
          func.label = label \
                  or fn_name_to_pretty_label(func.__name__)
          func.options = options
          return func
      return wrapper
docs: Decorator to make a function into a rule variable