Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor the Gurobi.jl requirement #101

Closed
danielolsen opened this issue Jan 29, 2021 · 1 comment · Fixed by #106
Closed

Refactor the Gurobi.jl requirement #101

danielolsen opened this issue Jan 29, 2021 · 1 comment · Fixed by #106
Assignees

Comments

@danielolsen
Copy link
Contributor

As a follow-up to #99, now that other solvers can be used, it would be nice to remove the requirement that Gurobi.jl be installed as a part of REISE.jl. It will need to be installed at some point to be able to implement the shared-environment feature that's currently a part of run_scenario.

The first design idea that comes to mind is a 'wrapper' module, named something like REISE_Gurobi, that handles all Gurobi-specific code, with changes to REISE.jl to remove the Gurobi-specific code while still allowing the same functionality, and pyreisejl will import REISE_Gurobi instead of REISE directly. I'm open to other suggestions however.

@danielolsen danielolsen self-assigned this Jan 29, 2021
@danielolsen
Copy link
Contributor Author

Instead of a wrapper module, there may be another design pattern that we want to use, leveraging Requires.jl. This would let us include code within the src/REISE.jl file, as part of the REISE module, that only executes if the Gurobi package has already been loaded (which could be done within pyreise.call.launch_scenario). That way, we can avoid calling import Gurobi within the main body of src/REISE.jl.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant