RAVEN is a flexible and multi-purpose probabilistic risk analysis, validation and uncertainty quantification, parameter optimization, model reduction and data knowledge-discovering framework.
Is your feature request related to a problem? Please describe.
The RAVEN user manual implies that the <Models>.<Code>.<clargs> node can be used to specify information to the code interface. In the RAVENInterface, however, these clargs are not supported. A consequence of this is that the RAVEN inner script cannot be run with any python command other than python.
The use case that requires this modification is that of checking code coverage in HERON. To check coverage, all calls within RAVEN to scripts in HERON (for example the HERON DispatchManager) must be tracked by coverage.py. This requires that all command line calls must use the correct coverage command. This includes the call to run RAVEN on the inner script in a RAVEN-runs-RAVEN setup. As stated previously, the only python command with which this run can currently be executed is python.
Describe the solution you'd like
The <clargs> input in the <Models>.<Code> block is currently passed uncorrupted all the way through RAVEN until it is given as an argument to the RAVEN.generateCommand() method in the RAVENInterface.py file. This argument should be checked for a clarg of type prepend, which, if it exists, should be prepended to the command for running the inner RAVEN xml in place of the default python command.
Describe alternatives you've considered
The %RAVENEXECUTABLE% variable, when put in the <Models>.<Code>.<executable> block, represents the RAVEN executable used to run the RAVEN outer xml. Thus, it runs the inner RAVEN script with the same executable as the outer RAVEN script. Unfortunately, this does not translate easily (if at all) to running the inner RAVEN with the same python command as the outer.
For Change Control Board: Issue Review
This review should occur before any development is performed as a response to this issue.
[x] 1. Is it tagged with a type: defect or task?
[x] 2. Is it tagged with a priority: critical, normal or minor?
[x] 3. If it will impact requirements or requirements tests, is it tagged with requirements?
[x] 4. If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users.
[x] 5. Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.)
For Change Control Board: Issue Closure
This review should occur when the issue is imminently going to be closed.
[x] 1. If the issue is a defect, is the defect fixed?
[x] 2. If the issue is a defect, is the defect tested for in the regression test system? (If not explain why not.)
[x] 3. If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)?
[x] 4. If the issue is a defect, does it impact the latest release branch? If yes, is there any issue tagged with release (create if needed)?
[x] 5. If the issue is being closed without a pull request, has an explanation of why it is being closed been provided?
Issue Description
Is your feature request related to a problem? Please describe. The RAVEN user manual implies that the
<Models>.<Code>.<clargs>
node can be used to specify information to the code interface. In theRAVENInterface
, however, theseclargs
are not supported. A consequence of this is that the RAVEN inner script cannot be run with any python command other thanpython
.The use case that requires this modification is that of checking code coverage in HERON. To check coverage, all calls within RAVEN to scripts in HERON (for example the HERON
DispatchManager
) must be tracked bycoverage.py
. This requires that all command line calls must use the correct coverage command. This includes the call to run RAVEN on the inner script in a RAVEN-runs-RAVEN setup. As stated previously, the only python command with which this run can currently be executed ispython
.Describe the solution you'd like The
<clargs>
input in the<Models>.<Code>
block is currently passed uncorrupted all the way through RAVEN until it is given as an argument to theRAVEN.generateCommand()
method in theRAVENInterface.py
file. This argument should be checked for aclarg
of typeprepend
, which, if it exists, should be prepended to the command for running the inner RAVEN xml in place of the defaultpython
command.Describe alternatives you've considered The
%RAVENEXECUTABLE%
variable, when put in the<Models>.<Code>.<executable>
block, represents the RAVEN executable used to run the RAVEN outer xml. Thus, it runs the inner RAVEN script with the same executable as the outer RAVEN script. Unfortunately, this does not translate easily (if at all) to running the inner RAVEN with the same python command as the outer.For Change Control Board: Issue Review
This review should occur before any development is performed as a response to this issue.
For Change Control Board: Issue Closure
This review should occur when the issue is imminently going to be closed.