Ticket #111 (closed enhancement: fixed)
[with patch, positive review] def copy -- they should all be def __copy__
| Reported by: | was | Owned by: | AlexGhitza |
|---|---|---|---|
| Priority: | minor | Milestone: | sage-4.1.1 |
| Component: | user interface | Keywords: | |
| Cc: | robertwb, mhansen | Work issues: | |
| Report Upstream: | Reviewers: | David Loeffler | |
| Authors: | Alex Ghitza | Merged in: | sage-4.1.1.alpha0 |
| Dependencies: | Stopgaps: |
Description
There are many instances of copy methods in SAGE. They should all be copy, which is what gets called by the standard copy module (part of the standard Python library).
sage: search_sage('def copy')
matrix/sparse_matrix.py: def copy(self):
modules/free_module_element.py: def copy(self):
plot/graph.py: def copy(self, name):
rings/finite_field_element.py: def copy(self):
rings/fraction_field_element.py: def copy(self):
rings/laurent_series_ring_element.py: def copy(self):
rings/padic.py: def copy(self):
rings/polynomial_element.py: def copy(self):
rings/polynomial_element.py: def copy(self):
rings/polynomial_element.py: def copy(self):
rings/polynomial_element.py: def copy(self):
rings/power_series_ring_element.py: def copy(self):
rings/power_series_ring_element.py: def copy(self):
rings/quotient_ring_element.py: def copy(self):
libs/pari/functional.py:def copy(self): return pari(self).copy()
modular/modsym/manin_symbols.py: def copy(self):
server/server1/server1.py: def copyfile(self, source, outputfile):
matrix/dense_matrix_pyx.pyx: def copy(self):
matrix/matrix_generic.pyx: def copy(self):
matrix/matrix_integer_dense.pyx: def copy(self):
matrix/matrix_modn_dense.pyx: def copy(Matrix_modn_dense self):
matrix/matrix_modn_sparse.pyx: def copy(self):
matrix/matrix_rational_dense.pyx: def copy(self):
matrix/sparse_matrix_pyx.pyx: def copy(self):
matrix/sparse_matrix_pyx.pyx: def copy(self):
matrix/sparse_matrix_pyx.pyx: def copy(self):
rings/integer.pyx: def copy(self):
rings/integer_mod.pyx: def copy(IntegerMod_gmp self):
rings/integer_mod.pyx: def copy(IntegerMod_int self):
rings/integer_mod.pyx: def copy(IntegerMod_int64 self):
rings/mpc.pyx: def copy(self):
rings/polynomial_pyx.pyx: def copy(self):
rings/polynomial_pyx.pyx: def copy(self):
rings/rational.pyx: def copy(self):
rings/real_double.pyx: def copy(self):
rings/real_mpfr.pyx: def copy(self):
rings/sparse_poly.pyx: def copy(self):
rings/sparse_poly.pyx: def copy(self):
libs/linbox/finite_field_givaro.pyx: def copy(self):
libs/ntl/ntl.pyx: def copy(self):
libs/ntl/ntl.pyx: def copy(self):
libs/ntl/ntl.pyx: def copy(ntl_GF2E self):
libs/pari/_py_pari_orig.pyx: def copy(gen self):
libs/pari/gen.pyx: def copy(gen self):
Attachments
Change History
comment:2 Changed 7 years ago by was
- Status changed from closed to reopened
- Resolution fixed deleted
I reverted my changes in my local copy -- there were some nontrivial issues with make such a global change.
comment:5 Changed 5 years ago by mabshoff
- Cc robertwb, mhansen added
The number has decreased significantly:
libs/ntl/ntl_ZZX.pyx: def copy(self): libs/ntl/ntl_ZZ_pEX.pyx: def copy(self): libs/ntl/ntl_ZZ_pX.pyx: def copy(self): libs/pari/gen.pyx: def copy(gen self): matrix/matrix0.pyx: def copy(self): modules/free_module_element.pyx: def copy(self): rings/padics/padic_ZZ_pX_CA_element.pyx: def copy(self): rings/padics/padic_ZZ_pX_CR_element.pyx: def copy(self): rings/padics/padic_ZZ_pX_FM_element.pyx: def copy(self): rings/padics/padic_capped_absolute_element.pyx: def copy(pAdicCappedAbsoluteElement self): rings/padics/padic_capped_relative_element.pyx: def copy(self): rings/padics/padic_fixed_mod_element.pyx: def copy(self): rings/polynomial/polynomial_pyx.pyx: def copy(self): rings/polynomial/polynomial_pyx.pyx: def copy(self): rings/laurent_series_ring_element.pyx: def copy(self): rings/power_series_poly.pyx: def copy(self): rings/rational.pyx: def copy(self): rings/sparse_poly.pyx: def copy(self): rings/sparse_poly.pyx: def copy(self):
It would be nice if someone could take an axe to the remaining ones.
Cheers,
Michael
comment:6 Changed 4 years ago by AlexGhitza
In sage-4.1, I am seeing
libs/pari/gen.pyx:1051: def copy(gen self): libs/ntl/ntl_ZZ_pEX.pyx:197: def copy(self): libs/ntl/ntl_ZZ_pX.pyx:189: def copy(self): libs/ntl/ntl_ZZX.pyx:152: def copy(self): graphs/graph.py:780: def copy(self, implementation='networkx', sparse=None): combinat/matrices/latin.py:321: def copy(self): matrix/matrix0.pyx:115: def copy(self): modular/modsym/manin_symbols.py:1667: def copy(self): rings/laurent_series_ring_element.pyx:943: def copy(self): rings/finite_field_givaro.pyx:1118: cdef FiniteField_givaro copy rings/finite_field_element.py:396: def copy(self): rings/fraction_field_element.pyx:179: def copy(self): rings/power_series_poly.pyx:575: def copy(self): rings/rational.pyx:558: def copy(self): rings/padics/padic_fixed_mod_element.pyx:661: def copy(self): rings/padics/padic_ZZ_pX_CA_element.pyx:1567: def copy(self): rings/padics/padic_ZZ_pX_CR_element.pyx:2193: def copy(self): rings/padics/padic_ZZ_pX_FM_element.pyx:840: def copy(self): rings/padics/padic_capped_relative_element.pyx:1453: def copy(self): rings/padics/padic_capped_absolute_element.pyx:810: def copy(pAdicCappedAbsoluteElement self): rings/polynomial/polynomial_element_generic.py:866: def copy(self): rings/polynomial/padics/polynomial_padic_capped_relative_dense.py:726: def copy(self): groups/perm_gps/partn_ref/refinement_python.pyx:145: def copy(self): modules/free_module_element.pyx:513: def copy(self): databases/database.py:575: def copy(self): databases/database.py:1003: def copy(self): databases/database.py:1546: def copy(self):
comment:7 Changed 4 years ago by AlexGhitza
- Owner changed from was to AlexGhitza
- Status changed from reopened to new
comment:8 Changed 4 years ago by AlexGhitza
- Summary changed from def copy -- they should all be def __copy__ to [with patch, needs review] def copy -- they should all be def __copy__
comment:11 Changed 4 years ago by davidloeffler
Patch looks fine to me -- I am running doctests at the moment -- but it looks like you missed one in sage/rings/polynomial/polynomial_element_generic.py. I'll do a mini-patch and see if that breaks anything :-)
Changed 4 years ago by davidloeffler
-
attachment
trac_111-reviewer.patch
added
apply over previous patch
comment:12 Changed 4 years ago by davidloeffler
- Reviewers set to David Loeffler
- Summary changed from [with patch, needs review] def copy -- they should all be def __copy__ to [with patch, positive review] def copy -- they should all be def __copy__
I have uploaded a one-liner patch to deal with the def copy in polynomial_element_generic that got missed out. All doctests pass, both on sage.math and on my machine, so let's get this one in.
comment:13 Changed 4 years ago by mvngu
- Status changed from assigned to closed
- Resolution set to fixed
- Merged in set to sage-4.1.1.alpha0
Merged both patches.
comment:14 Changed 4 years ago by kcrisman
Just an FYI to those involved on this ticket: there may be a new ticket coming to put in deprecation warnings for these. See the discussion at #6521.

Fixed for sage-1.4