Open
Description
Summary
Based on recent discussions, we think it makes more sense to separate the semantics of available
from whether a license can be used at that time. Here are my suggestions:
- Remove
FullLicense
andLimitedLicense
from theAvailability
enum and addInstalled
or something similar with a value > 0.Availability.__bool__
should return True for the newInstalled
member ofAvailability
. - Add
acquire_license
andrelease_license
functions or methods.acquire_license
should optionally wait a specified amount of time for a license to be available. Right now, I'm thinking these should be separate from any class/instance. - Remove the
__del__
logic that releases licenses. This should be done explicitly withrelease_license
. - These changes may impact how we test solvers. Checking
available
may not be sufficient.
There are a lot of subtleties here with different types of licenses and different solvers. I'm sure I have not thought through everything yet.