#NEWLINE# def Question( order , option = None ) : #NEWLINE# #INDENT# 'Decorator for Builder methods that represent questions.\n  \n  Args:\n    order: Unique id for this question which will be used to order it when\n      presented to the user. Most commonly an int, but any comparable should\n      work.\n    option: The parent option (default None). Providing this marks the question\n      as a subquestion: it will only be applied (and, in a future version, \n      shown) if the parent option is selected.\n    ' #NEWLINE# def decorate( func ) : #NEWLINE# #INDENT# func . order = order #NEWLINE# if option : #NEWLINE# #INDENT# option . subquestions [ order ] = func #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# func . is_question = True #NEWLINE# #UNINDENT# return func #NEWLINE# #UNINDENT# return decorate