#20382: Replace is_package_installed with Features
-------------------------------------+-------------------------------------
Reporter: saraedum | Owner:
Type: enhancement | Status: new
Priority: major | Milestone: sage-7.2
Component: build | Resolution:
Keywords: | Merged in:
Authors: Julian Rüth | Reviewers: Nicolas M. Thiéry,
Report Upstream: N/A | ...
Branch: | Work issues:
u/saraedum/replace_is_package_installed_with_features| Commit:
Dependencies: | 1bba301b7255d4725a0cb0e758ada93025b3e53b
| Stopgaps:
-------------------------------------+-------------------------------------
Comment (by vdelecroix):
I like more the centralized approach in this ticket rather than the one in
#20377 in which each feature needs a special care. Though many things
looks very complicated and the related #20182 is much more readable
(though using inheritance from this ticket would save some efforts).
Moreover #20182 implements some ''database of available features'' which
is not discussed here. The latter has the advantage of minimizing the
requests time after the first call. With the architecture proposed here,
each check involves a `Feature` class creation and some associated test...
Some more specific remarks:
- Do we really care about the class `FeatureTestResult`? If the result is
`True` then we mostly don't care about explanation and if it is `False` we
likely want an error (with an explicit error message). Similarly, I would
get rid of `FeatureNotPresentError`. Instead, I would add an `error` and a
`message` arguments in the `require` method (with of course some
reasonable default which would mimic the current behavior using the
standard `RuntimeError`).
- Are you sure `CSDP` is better inside the file `lovasz_theta.py`? Do we
want to spread the `Features` all around the modules or should they be
centralized?
- Finally class names might be confusing. `GapPackage` is not a handle on
a gap package nor something describing what is inside a given package
(what I would guess from the name). Similarly, with having `CSDP` has a
class when `CSDP` is the name of the program. It would be fine if all of
them belong to a fixed module.
--
Ticket URL: <http://trac.sagemath.org/ticket/20382#comment:16>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.