This is a fix to make the argument's parsers (both train and test) members of their respective classes.
The bug arises when several modules are present at the same time. If the parsers are not members of their class, they are are overwritten by the parser of the last loaded module due to the for loop structure of the module loading.
The bug was hard to find because it was only noticeable once the method was called: that is, the parameters for each module where correctly displayed in the API interface (with @api.expect()) but the parsing was done on the overwritten parser (args = parser.parse_args()).
Type of change
Bug fix (non-breaking change which fixes an issue)
How Has This Been Tested?
Tested for both train and predict methods with three different modules simultaneously installed.
Description
This is a fix to make the argument's parsers (both
train
andtest
) members of their respective classes.The bug arises when several modules are present at the same time. If the parsers are not members of their class, they are are overwritten by the parser of the last loaded module due to the
for
loop structure of the module loading.The bug was hard to find because it was only noticeable once the method was called: that is, the parameters for each module where correctly displayed in the API interface (with
@api.expect()
) but the parsing was done on the overwritten parser (args = parser.parse_args()
).Type of change
Bug fix (non-breaking change which fixes an issue)
How Has This Been Tested?
Tested for both
train
andpredict
methods with three different modules simultaneously installed.