-
Notifications
You must be signed in to change notification settings - Fork 241
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
Remove numpy from default PythonInterpreter and potentially introduce PythonNumpyInterpreter #115
Comments
Ooops! I just typed my comment practically about the same as stated in this issue! I definitely should use I would like to introduce option 3: It will unify the dependence policy for all languages. |
Having it as a parameter would require users to see possible values in documentation, whereas having it as a separate method is self-explanatory. Moreover if If it's not boolean, we again have 2 options:
Having dependency-specific methods still seems like a more clear and better API to me which doesn't require reading documentation or validating any parameters, |
My intuition was that one third-party library for linear algebra will be enough in any language. In that case using I think that your approach with separate methods seems to be more general and I like it now. Also, it can benefit from class inheritance and allow to build different combinations of dependencies easier. And class naming schema |
This is how assumptions work. They always seem to make sense until they don't :) In general I always try to make as few assumptions as possible, as every assumption creates a dependency. In this case we would create an artificial dependency "Every language will have only one implementation with linear algebra library". It seems like it makes sense (and it probably does), but why would we bring this unnecessary limitation? Especially given that we are talking about our API, which should arguably be the most though-out component as that is exactly what users depend on and making backward incompatible changes in a well established API has never been an easy problem. |
Hi guys @krinart @izeigerman ! Have you come to any agreement? I can work on this issue. |
Seems that two first steps have been done. I wonder do we really need to implement the third one, namely
? |
@StrikerRUS |
Right now only Python uses third party library (specifically
numpy
) for linear algebra. This is inconsistent with:The first step was to drop
numpy
from cases without vectors, implemented in PR #111 .As the second step I want to suggest dropping
numpy
altogether fromPythonInterpreter
and potentially implementPythonNumpyInterpreter
to use in cases where it would be beneficial.As for the user API I see 2 options:
export_to_python_with_numpy
with_numpy
to an existingexport_to_python
method which would beFalse
by default.I personally think first option is better as users would have higher chances of noticing extra method than extra parameter with a default value.
The text was updated successfully, but these errors were encountered: