sagemath/sage

Deprecate is_RealField, is_ComplexField, is_RealDoubleField, is_ComplexDoubleField

mkoeppe opened this issue · 33 comments

Follow up from #32566, which introduced the new pattern isinstance(..., sage.rings.abc.RealField)

Depends on #32566
Depends on #32606

Component: refactoring

Author: Matthias Koeppe

Branch/Commit: 8cc3500

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/32610

Dependencies: #32566

comment:3

Setting to "needs_review" to get the patchbot to run


New commits:

6081489git grep -l -E 'is_(Real|Complex)(Double)?Field' | xargs sed -E -i.bak 's/^from sage[.]rings.*import is_((Real|Complex)(Double)?Field) *$/import sage.rings.abc/;s/is_((Real|Complex)(Double)?Field)[(]([^)]*)[)]/isinstance(\4, sage.rings.abc.\1)/g;'
28e328aRemove repeated imports of sage.rings.abc
45cc21ais_Real[Double]Field, is_Complex[Double]Field: Undo automatic edits, deprecate
e003603sage.dynamics: Fix up replacement of is_{Real,Complex}[Double]Field
4adc553sage.functions: Fix up replacement of is_{Real,Complex}[Double]Field
5b988c6sage.schemes: Fix up replacement of is_{Real,Complex}[Double]Field
402dbecsage.rings.number_field: Fix up replacement of is_{Real,Complex}[Double]Field
e82709csage.rings.polynomial: Fix up replacement of is_{Real,Complex}[Double]Field
1d29569sage.{modular,quadratic_forms}: Fix up replacement of is_{Real,Complex}[Double]Field
a4ad3d4sage.matrix: Fix up replacement of is_{Real,Complex}[Double]Field

Commit: a4ad3d4

Author: Matthias Koeppe

Changed commit from a4ad3d4 to 49e75d1

Branch pushed to git repo; I updated commit sha1. New commits:

cee081asage.rings.real_mpfr.RealField_class: Inherit through a new class sage.rings.abc.RealField
99f4f10sage.rings.real_double.RealDoubleField_class: Inherit through a new class sage.rings.abc.RealDoubleField
29871d0ComplexField_class, ComplexDoubleField: Inherit through new classes sage.rings.abc.*
e1bb944src/sage/rings/polynomial/polynomial_element.pyx: Replace use of is_RealField by isinstance(sage.rings.abc.RealField) etc.
6e2c3c4src/sage/rings/abc.pyx: Add class docstrings
49e75d1Merge #32566

Branch pushed to git repo; I updated commit sha1. New commits:

c7aa947sage.probability: Fix up replacement of is_{Real,Complex}[Double]Field
b8691ccsrc/sage/rings/number_field/number_field_element.pyx: Remove unused import
abbe26dsrc/sage/modules/free_module.py: Remove another use of is_... functions

Changed commit from 49e75d1 to abbe26d

Changed commit from abbe26d to 65e9b98

Branch pushed to git repo; I updated commit sha1. New commits:

65e9b98src/sage/rings/polynomial/polynomial_singular_interface.py: Fixup

Changed commit from 65e9b98 to a00d97a

Branch pushed to git repo; I updated commit sha1. New commits:

a00d97asrc/sage/rings/number_field/number_field.py: Fixup
comment:8

Patchbot reports

sage -t --long --random-seed=0 src/sage/probability/random_variable.py  # 9 doctests failed
sage -t --long --random-seed=0 src/sage/monoids/string_monoid.py  # 2 doctests failed
sage -t --long --random-seed=0 src/sage/monoids/string_monoid_element.py  # 8 doctests failed
sage -t --long --random-seed=0 src/sage/monoids/string_ops.py  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/functions/special.py  # 9 doctests failed
sage -t --long --random-seed=0 src/sage/crypto/classical.py  # 18 doctests failed
sage -t --long --random-seed=0 src/sage/schemes/elliptic_curves/cm.py  # 2 doctests failed
sage -t --long --random-seed=0 src/sage/schemes/elliptic_curves/ell_number_field.py  # 2 doctests failed
sage -t --long --random-seed=0 src/sage/rings/complex_mpfr.pyx  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/rings/complex_double.pyx  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/rings/real_mpfr.pyx  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/rings/real_double.pyx  # 1 doctest failed

Changed commit from a00d97a to 94fd9c5

Branch pushed to git repo; I updated commit sha1. New commits:

fa79b10Add missing imports of sage.rings.abc
94fd9c5is_{Real,Complex}[Double]Field: In doctests, add deprecation warning to expected output
comment:10

Another round of patchbot testing...

Changed commit from 94fd9c5 to dd7e96c

Branch pushed to git repo; I updated commit sha1. New commits:

dd7e96csrc/sage/schemes/elliptic_curves/ell_number_field.py: Add missing import

Reviewer: Travis Scrimshaw

comment:12

Green bot => positive review.

Changed commit from dd7e96c to 13607cb

Branch pushed to git repo; I updated commit sha1. New commits:

13607cbsrc/sage/dynamics/arithmetic_dynamics/projective_ds.py: Remove unused import
comment:14

Thanks! It's green now

comment:15

Merge conflict

Changed dependencies from #32566 to #32566, #32606

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

9e74b6asage.rings.abc: Add IntegerModRing, Order; use them in sage.matrix, sage.modules
8ef2b35sage.structure, sage.rings, sage.matrix: Use sage.rings.abc for IntegerModRing
335cd3eReplace all uses of is_IntegerModRing by isinstance(..., sage.rings.abc.IntegerModRing)
f596395sage.rings.finite_rings.integer_mod_ring: Fixup
af06e5bis_IntegerModRing: Deprecate
1b0a5absrc/sage/modules/vector_space_morphism.py: Do not fail if sage.symbol is not present
83b5038src/sage/modules/free_module_element.pyx: Move import from sage.misc.derivative into method
acca6c2src/sage/matrix/matrix2.pyx: Move import from sage.misc.derivative into method
907b57cMerge #32593
b1efd57Merge #32606

Changed commit from 13607cb to b1efd57

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

355dbcbMerge #32606

Changed commit from b1efd57 to 355dbcb

Changed commit from 355dbcb to 8cc3500

Branch pushed to git repo; I updated commit sha1. New commits:

fb56937Merge tag '9.5.beta3' into t/32610/deprecate_is_realfield__is_complexfield__is_realdoublefield__is_complexdoublefield
8cc3500src/sage/rings/polynomial/polynomial_singular_interface.py: Fixup merge