「view this page in B3 βῆτα server」

Revisions №58675

branch: master 「№58675」
Commited by: Vikram K. Mulligan
GitHub commit link: 「aaaca21077d8c8b9」 「№1318」
Difference from previous tested commit:  code diff
Commit date: 2016-05-06 18:51:50

Merge pull request #1318 from RosettaCommons/vmullig/rosettascripts_include Add inclusion to RosettaScipts Users want to be able to do something like the following: <ROSETTASCRIPTS> <xi:include href="my_common_residueselectors.xml" /> <xi:include href="my_common_taskoperations.xml" /> <xi:include href="my_common_filters_and_movers.xml" /> <PROTOCOLS> <Add mover="fastrelax" /> </PROTOCOLS> </ROSETTASCRIPTS> Where the included files might be something like: <RESIDUE_SELECTORS> <... selector definition 1 ... /> <... selector definition 2 ... /> <... selector definition 3 ... /> </RESIDUE_SELECTORS> <TASKOPERATIONS> <... taskoperation definition 1 ... /> </TASKOPERATIONS> <FILTERS> <... filter definition 1 ... /> <... filter definition 2 ... /> </FILTERS> <MOVERS> <... mover definition 1 ... /> <... mover definition 2 ... /> </MOVERS> All of this would automatically and naïvely (i.e. saving error-checking and interpretation for later) be concatenated, with the included files inserted in place of the INCLUDE statements, to give: <ROSETTASCRIPTS> <RESIDUE_SELECTORS> <... selector definition 1 ... /> <... selector definition 2 ... /> <... selector definition 3 ... /> </RESIDUE_SELECTORS> <TASKOPERATIONS> <... taskoperation definition 1 ... /> </TASKOPERATIONS> <FILTERS> <... filter definition 1 ... /> <... filter definition 2 ... /> </FILTERS> <MOVERS> <... mover definition 1 ... /> <... mover definition 2 ... /> </MOVERS> <PROTOCOLS> <Add mover="fastrelax" /> </PROTOCOLS> </ROSETTASCRIPTS> This pull request aims to implement this. Note that there is existing <INCLUDES> block functionality, but this only allows users to append XML to a script, which isn't very useful -- it doesn't let them insert XML at the point of inclusion, which would be far more useful. Tasks: - Add <xi:include href="" /> parsing prior to the rest of script interpretation. - Debug. - Unit test. - Improve circular inclusion detection logic. - Unit test for detecting circular inclusion. - Integration test. - DOCUMENTATION. - Beauty.

...