Source code for rsopt.libe_tools.interface
import importlib
[docs]def get_local_optimizer_method(method, package_name):
if package_name == 'nlopt':
package = importlib.import_module(package_name)
assert hasattr(package, method), f'{method} is not a valid optimization method in {package_name}'
return method
elif package_name == 'dfols':
assert method == 'dfols' or not method, f'Method, {method}, is not valid for dfols. Only method: dfols is allowed'
return method
elif package_name == 'scipy':
software_options = ('Nelder-Mead', 'COBYLA', 'BFGS')
message = f"Method, {method} is not an available option from scipy in rsopt. Please use one of:"
message += ', '.join(software_options)
assert method in software_options, message
return 'scipy_' + method
else:
raise ValueError(f'software option, {package_name}, was not recognized')