A DSL for describing questionnaires

textX;, language;, DSL
pip install textx-lang-questionnaire==0.2.0


Questionnaire DSL

A DSL for describing questionnaires with a simple terminal interpreter.


Q: Project type
1[lang]. Language project
2[gen]. Generator project

Q[package]: Package name
___ /[a-z][a-z0-9_]*$/

Q: Author name

Q: Author email

Q: This question is to
   test multiline feature and indenting.
   1. Working
   2. Not working.
      This is also to test multiline in choices.

Each question begins with Q: or Q[<question ID>]. The type of the question is either free-form (specified by ___) or choice if enumerated options are given.

Both question and option can span multiple lines (like in the last question).

For free-form question an optional regular expression can be given inside // (see Package name above). This regex is an input validator.

This package provides an interpreter of the questionnaire txquestionnaire.questionnaire_interpreter(model, data=None) which accepts the model created by parsing of questionnaire description using this language and optionally a dictionary of default answers keyed by either question ID if given or question number. The interpreter will run the questionnaire on the console and return a dictionary of collected data. The values for options are ordinal numbers or IDs if given (like in Project type above -- lang, gen).

Please see tests for the detailed usage.