Skip to content
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

Merged
merged 6 commits into from
Sep 3, 2024

Conversation

user202729
Copy link
Contributor

@user202729 user202729 commented Jul 14, 2024

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

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion. (not aware of one)
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

None.

@user202729
Copy link
Contributor Author

Thanks for the review, I will fix these soon. (By the way, can I get permission to run tests on GitHub Actions CI?)

Copy link

github-actions bot commented Jul 17, 2024

Documentation preview for this PR (built with commit eae2120; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@user202729
Copy link
Contributor Author

The data are invalid for elliptic curves not over ℚ anyway, so I check at construction time and delete them. The names looks legal enough.

sage: EllipticCurve("15a").rank()
0
sage: K.<a> = NumberField(x^2 + 7)
sage: EllipticCurve("15a").change_ring(K).rank()
1
sage: EllipticCurve(GF(7), "15a")
Elliptic Curve defined by y^2 + x*y + y = x^3 + x^2 + 4*x + 4 over Finite Field of size 7

@kwankyu
Copy link
Collaborator

kwankyu commented Aug 1, 2024

@yyyyx4

Copy link
Member

@yyyyx4 yyyyx4 left a 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!

vbraun pushed a commit to vbraun/sage that referenced this pull request Aug 27, 2024
…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
@vbraun vbraun merged commit 4c8fdb7 into sagemath:develop Sep 3, 2024
20 checks passed
@mkoeppe mkoeppe added this to the sage-10.5 milestone Sep 3, 2024
vbraun added a commit to vbraun/sage that referenced this pull request Nov 3, 2024
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
@vbraun
Copy link
Member

vbraun commented Nov 3, 2024

Followup at #38917

vbraun pushed a commit to vbraun/sage that referenced this pull request Nov 8, 2024
…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
vbraun pushed a commit to vbraun/sage that referenced this pull request Nov 9, 2024
…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
vbraun pushed a commit to vbraun/sage that referenced this pull request Nov 13, 2024
…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
vbraun pushed a commit to vbraun/sage that referenced this pull request Nov 14, 2024
…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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants