-
-
Notifications
You must be signed in to change notification settings - Fork 487
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
EllipticCurve: Raise error on unexpected keyword argument #38361
Conversation
Thanks for the review, I will fix these soon. (By the way, can I get permission to run tests on GitHub Actions CI?) |
Documentation preview for this PR (built with commit eae2120; changes) is ready! 🎉 |
The data are invalid for elliptic curves not over ℚ anyway, so I check at construction time and delete them. The
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, thanks!
…gument As described in the title. Currently the constructor just silently ignores the arguments it doesn't recognize, which can be confusing if the user pass in `ring=R` and see it has no effect. ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. (not aware of one) - [x] I have created tests covering the changes. - [x] I have updated the documentation and checked the documentation preview. ### ⌛ Dependencies None. URL: sagemath#38361 Reported by: user202729 Reviewer(s): Kwankyu Lee, Lorenz Panny, user202729
If the optional db in istalled, then extra data is passed to the elliptic curve constructor. Recently unexpected keyword arguments were changed to an exception, without taking the optional package into account. Caused by sagemath#38361
Followup at #38917 |
…emona_ellcurve If the optional db in istalled, then extra data is passed to the elliptic curve constructor. Recently unexpected keyword arguments were changed to an exception, without taking the optional package into account. Caused by sagemath#38361 Without the patch tests fail with ``` $ sage -i database_cremona_ellcurve $ sage -t src/sage/schemes/elliptic_curves/period_lattice.py [...] ********************************************************************** File "src/sage/schemes/elliptic_curves/period_lattice.py", line 77, in sage.schemes.elliptic_curves.period_lattice Failed example: E = EllipticCurve('37a') Exception raised: Traceback (most recent call last): File "/var/lib/buildbot/worker/sage_git/build/src/sage/doctest/forker.py", line 715, in _run self.compile_and_execute(example, compiler, test.globs) File "/var/lib/buildbot/worker/sage_git/build/src/sage/doctest/forker.py", line 1136, in compile_and_execute exec(compiled, globs) File "<doctest sage.schemes.elliptic_curves.period_lattice[14]>", line 1, in <module> E = EllipticCurve('37a') ^^^^^^^^^^^^^^^^^^^^ File "sage/structure/factory.pyx", line 373, in sage.structure.factory.UniqueFactory.__call__ return self.get_object(version, key, kwds) File "sage/structure/factory.pyx", line 416, in sage.structure.factory.UniqueFactory.get_object obj = self.create_object(version, key, **extra_args) File "/var/lib/buildbot/worker/sage_git/build/src/sage/schemes/ell iptic_curves/constructor.py", line 508, in create_object return EllipticCurve_rational_field(x, **kwds) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/lib/buildbot/worker/sage_git/build/src/sage/schemes/ell iptic_curves/ell_rational_field.py", line 207, in __init__ raise TypeError(f"unexpected keyword arguments: {kwds}") TypeError: unexpected keyword arguments: {'db_extra': [1, 5.98691729246392, 0.305999773834052, 0.0511114082399688, 1.0]} ********************************************************************** ``` URL: sagemath#38917 Reported by: Volker Braun Reviewer(s): Travis Scrimshaw
…emona_ellcurve If the optional db in istalled, then extra data is passed to the elliptic curve constructor. Recently unexpected keyword arguments were changed to an exception, without taking the optional package into account. Caused by sagemath#38361 Without the patch tests fail with ``` $ sage -i database_cremona_ellcurve $ sage -t src/sage/schemes/elliptic_curves/period_lattice.py [...] ********************************************************************** File "src/sage/schemes/elliptic_curves/period_lattice.py", line 77, in sage.schemes.elliptic_curves.period_lattice Failed example: E = EllipticCurve('37a') Exception raised: Traceback (most recent call last): File "/var/lib/buildbot/worker/sage_git/build/src/sage/doctest/forker.py", line 715, in _run self.compile_and_execute(example, compiler, test.globs) File "/var/lib/buildbot/worker/sage_git/build/src/sage/doctest/forker.py", line 1136, in compile_and_execute exec(compiled, globs) File "<doctest sage.schemes.elliptic_curves.period_lattice[14]>", line 1, in <module> E = EllipticCurve('37a') ^^^^^^^^^^^^^^^^^^^^ File "sage/structure/factory.pyx", line 373, in sage.structure.factory.UniqueFactory.__call__ return self.get_object(version, key, kwds) File "sage/structure/factory.pyx", line 416, in sage.structure.factory.UniqueFactory.get_object obj = self.create_object(version, key, **extra_args) File "/var/lib/buildbot/worker/sage_git/build/src/sage/schemes/ell iptic_curves/constructor.py", line 508, in create_object return EllipticCurve_rational_field(x, **kwds) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/lib/buildbot/worker/sage_git/build/src/sage/schemes/ell iptic_curves/ell_rational_field.py", line 207, in __init__ raise TypeError(f"unexpected keyword arguments: {kwds}") TypeError: unexpected keyword arguments: {'db_extra': [1, 5.98691729246392, 0.305999773834052, 0.0511114082399688, 1.0]} ********************************************************************** ``` URL: sagemath#38917 Reported by: Volker Braun Reviewer(s): Travis Scrimshaw
…emona_ellcurve If the optional db in istalled, then extra data is passed to the elliptic curve constructor. Recently unexpected keyword arguments were changed to an exception, without taking the optional package into account. Caused by sagemath#38361 Without the patch tests fail with ``` $ sage -i database_cremona_ellcurve $ sage -t src/sage/schemes/elliptic_curves/period_lattice.py [...] ********************************************************************** File "src/sage/schemes/elliptic_curves/period_lattice.py", line 77, in sage.schemes.elliptic_curves.period_lattice Failed example: E = EllipticCurve('37a') Exception raised: Traceback (most recent call last): File "/var/lib/buildbot/worker/sage_git/build/src/sage/doctest/forker.py", line 715, in _run self.compile_and_execute(example, compiler, test.globs) File "/var/lib/buildbot/worker/sage_git/build/src/sage/doctest/forker.py", line 1136, in compile_and_execute exec(compiled, globs) File "<doctest sage.schemes.elliptic_curves.period_lattice[14]>", line 1, in <module> E = EllipticCurve('37a') ^^^^^^^^^^^^^^^^^^^^ File "sage/structure/factory.pyx", line 373, in sage.structure.factory.UniqueFactory.__call__ return self.get_object(version, key, kwds) File "sage/structure/factory.pyx", line 416, in sage.structure.factory.UniqueFactory.get_object obj = self.create_object(version, key, **extra_args) File "/var/lib/buildbot/worker/sage_git/build/src/sage/schemes/ell iptic_curves/constructor.py", line 508, in create_object return EllipticCurve_rational_field(x, **kwds) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/lib/buildbot/worker/sage_git/build/src/sage/schemes/ell iptic_curves/ell_rational_field.py", line 207, in __init__ raise TypeError(f"unexpected keyword arguments: {kwds}") TypeError: unexpected keyword arguments: {'db_extra': [1, 5.98691729246392, 0.305999773834052, 0.0511114082399688, 1.0]} ********************************************************************** ``` URL: sagemath#38917 Reported by: Volker Braun Reviewer(s): Travis Scrimshaw
…emona_ellcurve If the optional db in istalled, then extra data is passed to the elliptic curve constructor. Recently unexpected keyword arguments were changed to an exception, without taking the optional package into account. Caused by sagemath#38361 Without the patch tests fail with ``` $ sage -i database_cremona_ellcurve $ sage -t src/sage/schemes/elliptic_curves/period_lattice.py [...] ********************************************************************** File "src/sage/schemes/elliptic_curves/period_lattice.py", line 77, in sage.schemes.elliptic_curves.period_lattice Failed example: E = EllipticCurve('37a') Exception raised: Traceback (most recent call last): File "/var/lib/buildbot/worker/sage_git/build/src/sage/doctest/forker.py", line 715, in _run self.compile_and_execute(example, compiler, test.globs) File "/var/lib/buildbot/worker/sage_git/build/src/sage/doctest/forker.py", line 1136, in compile_and_execute exec(compiled, globs) File "<doctest sage.schemes.elliptic_curves.period_lattice[14]>", line 1, in <module> E = EllipticCurve('37a') ^^^^^^^^^^^^^^^^^^^^ File "sage/structure/factory.pyx", line 373, in sage.structure.factory.UniqueFactory.__call__ return self.get_object(version, key, kwds) File "sage/structure/factory.pyx", line 416, in sage.structure.factory.UniqueFactory.get_object obj = self.create_object(version, key, **extra_args) File "/var/lib/buildbot/worker/sage_git/build/src/sage/schemes/ell iptic_curves/constructor.py", line 508, in create_object return EllipticCurve_rational_field(x, **kwds) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/lib/buildbot/worker/sage_git/build/src/sage/schemes/ell iptic_curves/ell_rational_field.py", line 207, in __init__ raise TypeError(f"unexpected keyword arguments: {kwds}") TypeError: unexpected keyword arguments: {'db_extra': [1, 5.98691729246392, 0.305999773834052, 0.0511114082399688, 1.0]} ********************************************************************** ``` URL: sagemath#38917 Reported by: Volker Braun Reviewer(s): Travis Scrimshaw
As described in the title. Currently the constructor just silently ignores the arguments it doesn't recognize, which can be confusing if the user pass in
ring=R
and see it has no effect.📝 Checklist
⌛ Dependencies
None.