-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
pydrake lost reset_integrator #12873
Comments
(2) The reason we lost the warning -> error promotion is because python3 unittest added the following new semantics: if warnings is None and not sys.warnoptions:
# even if DeprecationWarnings are ignored by default
# print them anyway unless other warnings settings are
# specified by the warnings arg or the -W python flag
self.warnings = 'default' Because we apply our warning filters prior to calling |
(1) I think the best answer is to re-implement simulator.reset_integrator(RungeKutta2Integrator, 0.1)
simulator.reset_integrator(RungeKutta3Integrator) So we pass the class (not instance!) and optionally |
The best / simplest answer by far (assuming minimal performance + API impact) is to use I think after that, perhaps trying to fix the |
I don't understand. (Did you post in the wrong issue?) The Simulator <-> IntegratorBase is a cyclic relationship that requires careful construction. It seems like we need to keep the construction process sealed to ensure it happens correctly, which means passing the classname to a helper, instead of an already-constructed IntegratorBase. |
Oh... yup, I misunderstood. I was thinking of the old implementation of |
First problem
PR #12520 deprecated the ability to change integrators from pydrake, while printing a misleading message in the meantime:
It asks me to use a method that does not exist within pydrake. The only bound one is taking a
unique_ptr
(i.e., the one the test is already calling but receiving a warning about).\CC @edrumwri @SeanCurtis-TRI @EricCousineau-TRI as author / reviewers of that PR.
In fact, I don't even know how a method that requires a non-inferrable template argument is supposed to work in pydrake? I don't think the current non-deprecated methods are a sufficient API for pydrake.
Second problem
Why is the unit test still passing? I thought that deprecation messages were supposed to be errors by default, unless guarded by
catch_drake_warnings
.The text was updated successfully, but these errors were encountered: