diff --git a/src/sage/combinat/designs/orthogonal_arrays_find_recursive.pyx b/src/sage/combinat/designs/orthogonal_arrays_find_recursive.pyx index 6d77408ab2a..31d138472cc 100644 --- a/src/sage/combinat/designs/orthogonal_arrays_find_recursive.pyx +++ b/src/sage/combinat/designs/orthogonal_arrays_find_recursive.pyx @@ -799,7 +799,7 @@ cpdef find_brouwer_separable_design(int k, int n): from sage.combinat.designs.database import QDM as __QDM cdef dict _QDM = __QDM cdef dict ioa_indexed_by_n_minus_x = {} -for x in _QDM.itervalues(): +for x in _QDM.values(): for (n, _, _, u), (k, _) in x.items(): if u > 1: if n not in ioa_indexed_by_n_minus_x: diff --git a/src/sage/graphs/base/boost_graph.pyx b/src/sage/graphs/base/boost_graph.pyx index 2ee2e5de86a..4b7d760eddb 100644 --- a/src/sage/graphs/base/boost_graph.pyx +++ b/src/sage/graphs/base/boost_graph.pyx @@ -273,7 +273,7 @@ cdef boost_clustering_coeff(BoostGenGraph *g, vertices): result_d = g[0].clustering_coeff(vi) sig_off() clust_of_v[v] = result_d - return ((sum(clust_of_v.itervalues()) / len(clust_of_v)), clust_of_v) + return ((sum(clust_of_v.values()) / len(clust_of_v)), clust_of_v) cpdef clustering_coeff(g, vertices=None): diff --git a/src/sage/groups/perm_gps/partn_ref/refinement_graphs.pyx b/src/sage/groups/perm_gps/partn_ref/refinement_graphs.pyx index 9fb067784ba..ab294c62e53 100644 --- a/src/sage/groups/perm_gps/partn_ref/refinement_graphs.pyx +++ b/src/sage/groups/perm_gps/partn_ref/refinement_graphs.pyx @@ -1054,7 +1054,7 @@ def get_orbits(list gens, int n): OP_dealloc(OP) sig_free(perm_ints) - return list(orbit_dict.itervalues()) + return list(orbit_dict.values()) # Canonical augmentation diff --git a/src/sage/libs/gap/element.pyx b/src/sage/libs/gap/element.pyx index 5b3a65ec5f2..bfa99df63ee 100644 --- a/src/sage/libs/gap/element.pyx +++ b/src/sage/libs/gap/element.pyx @@ -193,12 +193,13 @@ cdef Obj make_gap_record(sage_dict) except NULL: sage: libgap({'a': 1, 'b':123}) # indirect doctest rec( a := 1, b := 123 ) """ - data = [ (str(key), libgap(value)) for key, value in sage_dict.iteritems() ] - + cdef list data cdef Obj rec cdef GapElement val cdef UInt rnam + data = [(str(key), libgap(value)) for key, value in sage_dict.items()] + try: GAP_Enter() rec = GAP_NewPrecord(len(data)) diff --git a/src/sage/libs/singular/option.pyx b/src/sage/libs/singular/option.pyx index 747061ca66c..2d419f29cd8 100644 --- a/src/sage/libs/singular/option.pyx +++ b/src/sage/libs/singular/option.pyx @@ -166,7 +166,7 @@ cdef class LibSingularOptions_abstract: sage: opt['degBound'] 2 """ - for k,v in kwds.iteritems(): + for k, v in kwds.items(): self[k] = v def __getitem__(self, name): @@ -615,7 +615,7 @@ cdef class LibSingularOptionsContext: self.bck_degBound.append(Kstd1_deg) self.bck_multBound.append(Kstd1_mu) opt = self.opt.__class__() - for k,v in self.options.iteritems(): + for k, v in self.options.items(): opt[k] = v def __call__(self, **kwds): @@ -631,8 +631,7 @@ cdef class LibSingularOptionsContext: ....: opt['redTail'] False """ - new = self.__class__(self.opt, **kwds) - return new + return self.__class__(self.opt, **kwds) def __exit__(self, typ, value, tb): """ diff --git a/src/sage/matrix/matrix2.pyx b/src/sage/matrix/matrix2.pyx index 61b1f4a9881..ffb46aed0dd 100644 --- a/src/sage/matrix/matrix2.pyx +++ b/src/sage/matrix/matrix2.pyx @@ -3018,7 +3018,7 @@ cdef class Matrix(Matrix1): return self.dense_matrix() if self.is_sparse(): - values = {ij: phi(v) for ij, v in self.dict().iteritems()} + values = {ij: phi(v) for ij, v in self.dict().items()} if R is None: R = sage.structure.sequence.Sequence(values.values()).universe() else: diff --git a/src/sage/matrix/matrix_sparse.pyx b/src/sage/matrix/matrix_sparse.pyx index be8d3dff702..6ff46e91acc 100644 --- a/src/sage/matrix/matrix_sparse.pyx +++ b/src/sage/matrix/matrix_sparse.pyx @@ -156,7 +156,7 @@ cdef class Matrix_sparse(matrix.Matrix): cdef long h = 0, k, l cdef Py_ssize_t i, j - for ij, x in D.iteritems(): + for ij, x in D.items(): sig_check() i = (ij)[0] j = (ij)[1] @@ -362,7 +362,7 @@ cdef class Matrix_sparse(matrix.Matrix): def _unpickle_generic(self, data, int version): cdef Py_ssize_t i, j if version == -1: - for (i, j), x in data.iteritems(): + for (i, j), x in data.items(): self.set_unsafe(i, j, x) else: raise RuntimeError("unknown matrix version (=%s)" % version) @@ -643,7 +643,7 @@ cdef class Matrix_sparse(matrix.Matrix): R = phi.codomain() M = sage.matrix.matrix_space.MatrixSpace(R, self._nrows, self._ncols, sparse=True) - return M({ij: phi(z) for ij, z in self.dict().iteritems()}) + return M({ij: phi(z) for ij, z in self.dict().items()}) def apply_map(self, phi, R=None, sparse=True): r""" @@ -768,7 +768,7 @@ cdef class Matrix_sparse(matrix.Matrix): zero_res = phi(self.base_ring()(0)) else: zero_res = None - v = [(ij, phi(z)) for ij,z in self_dict.iteritems()] + v = [(ij, phi(z)) for ij,z in self_dict.items()] if R is None: w = [x for _, x in v] if zero_res is not None: @@ -826,7 +826,8 @@ cdef class Matrix_sparse(matrix.Matrix): if self._nrows==0 or self._ncols==0: return self.__copy__() - v = [(ij, sage.calculus.functional.derivative(z, var)) for ij, z in self.dict().iteritems()] + v = [(ij, sage.calculus.functional.derivative(z, var)) + for ij, z in self.dict().items()] if R is None: w = [x for _, x in v] w = sage.structure.sequence.Sequence(w) @@ -1154,7 +1155,7 @@ cdef class Matrix_sparse(matrix.Matrix): raise ArithmeticError("number of rows of matrix must equal degree of vector") parent = self.row_ambient_module(base_ring=None, sparse=v.is_sparse_c()) s = parent.zero_vector() - for (i, j), a in self._dict().iteritems(): + for (i, j), a in self._dict().items(): s[j] += v[i] * a return s @@ -1207,7 +1208,7 @@ cdef class Matrix_sparse(matrix.Matrix): raise ArithmeticError("number of columns of matrix must equal degree of vector") parent = self.column_ambient_module(base_ring=None, sparse=v.is_sparse_c()) s = parent.zero_vector() - for (i, j), a in self._dict().iteritems(): + for (i, j), a in self._dict().items(): s[i] += a * v[j] return s diff --git a/src/sage/matrix/matrix_symbolic_dense.pyx b/src/sage/matrix/matrix_symbolic_dense.pyx index 86e37186a23..bd2b0205859 100644 --- a/src/sage/matrix/matrix_symbolic_dense.pyx +++ b/src/sage/matrix/matrix_symbolic_dense.pyx @@ -977,7 +977,7 @@ cdef class Matrix_symbolic_dense(Matrix_generic_dense): if args: if len(args) == 1 and isinstance(args[0], dict): - kwargs = {repr(x): vx for x, vx in args[0].iteritems()} + kwargs = {repr(x): vx for x, vx in args[0].items()} else: raise ValueError('use named arguments, like EXPR(x=..., y=...)') diff --git a/src/sage/matrix/matrix_symbolic_sparse.pyx b/src/sage/matrix/matrix_symbolic_sparse.pyx index 0d975a0e732..04ee7f297f9 100644 --- a/src/sage/matrix/matrix_symbolic_sparse.pyx +++ b/src/sage/matrix/matrix_symbolic_sparse.pyx @@ -985,7 +985,7 @@ cdef class Matrix_symbolic_sparse(Matrix_generic_sparse): if args: if len(args) == 1 and isinstance(args[0], dict): - kwargs = {repr(x): vx for x, vx in args[0].iteritems()} + kwargs = {repr(x): vx for x, vx in args[0].items()} else: raise ValueError('use named arguments, like EXPR(x=..., y=...)') diff --git a/src/sage/matroids/linear_matroid.pyx b/src/sage/matroids/linear_matroid.pyx index f6723d78f02..09a20057888 100644 --- a/src/sage/matroids/linear_matroid.pyx +++ b/src/sage/matroids/linear_matroid.pyx @@ -2200,14 +2200,14 @@ cdef class LinearMatroid(BasisExchangeMatroid): while todo: r = todo.pop() cocirc = self.fundamental_cocycle(B, r) - for s, v in cocirc.iteritems(): + for s, v in cocirc.items(): if s != r and s not in mult2: mult2[s] = mult[r] * v todo2.add(s) while todo2: s = todo2.pop() circ = self.fundamental_cycle(B, s) - for t, w in circ.iteritems(): + for t, w in circ.items(): if t != s and t not in mult: mult[t] = mult2[s] / w if t not in T: @@ -2398,7 +2398,7 @@ cdef class LinearMatroid(BasisExchangeMatroid): parallel = True e = min(p) ratio = c[e] / p[e] - for f, w in p.iteritems(): + for f, w in p.items(): if c[f] / w != ratio: parallel = False break diff --git a/src/sage/matroids/matroid.pyx b/src/sage/matroids/matroid.pyx index 554f870bdb5..b2516a81cde 100644 --- a/src/sage/matroids/matroid.pyx +++ b/src/sage/matroids/matroid.pyx @@ -6160,7 +6160,7 @@ cdef class Matroid(SageObject): if not G.is_connected(): return False # Step 4: Apply algorithm recursively - for B, M in Y_components.iteritems(): + for B, M in Y_components.items(): N = M.simplify() new_basis = basis & (B | Y) # the set of fundamental cocircuit that might be separating for N @@ -7672,7 +7672,7 @@ cdef class Matroid(SageObject): dist += 1 X3 = X2.intersection(w) - for x, y in layers.iteritems(): + for x, y in layers.items(): for z in y: d[z] = x if not X3: # if no path from X1 to X2, then no augmenting set exists diff --git a/src/sage/matroids/union_matroid.pyx b/src/sage/matroids/union_matroid.pyx index 30d36ca1ae1..2b81547c502 100644 --- a/src/sage/matroids/union_matroid.pyx +++ b/src/sage/matroids/union_matroid.pyx @@ -226,7 +226,7 @@ cdef class MatroidSum(Matroid): partition[i] = set() partition[i].add(x) r = 0 - for (i, Xi) in partition.iteritems(): + for i, Xi in partition.items(): r += self.summands[i]._rank(frozenset(Xi)) return r diff --git a/src/sage/misc/reset.pyx b/src/sage/misc/reset.pyx index 50e6a15b4c7..572b297e7f9 100644 --- a/src/sage/misc/reset.pyx +++ b/src/sage/misc/reset.pyx @@ -147,7 +147,7 @@ def restore(vars=None): def _restore(G, D, vars): if vars is None: - for k, v in D.iteritems(): + for k, v in D.items(): G[k] = v else: if isinstance(vars, str): diff --git a/src/sage/misc/weak_dict.pyx b/src/sage/misc/weak_dict.pyx index c288d312bd9..2b16720ac10 100644 --- a/src/sage/misc/weak_dict.pyx +++ b/src/sage/misc/weak_dict.pyx @@ -813,24 +813,6 @@ cdef class WeakValueDictionary(dict): """ return list(iter(self)) - def itervalues(self): - """ - Deprecated. - - EXAMPLES:: - - sage: import sage.misc.weak_dict - sage: class Vals(): pass - sage: L = [Vals() for _ in range(10)] - sage: D = sage.misc.weak_dict.WeakValueDictionary(enumerate(L)) - sage: T = list(D.itervalues()) - doctest:warning...: - DeprecationWarning: use values instead - See https://github.com/sagemath/sage/issues/34488 for details. - """ - deprecation(34488, "use values instead") - return self.values() - def values(self): """ Iterate over the values of this dictionary. @@ -918,22 +900,6 @@ cdef class WeakValueDictionary(dict): """ return list(self.values()) - def iteritems(self): - """ - EXAMPLES:: - - sage: import sage.misc.weak_dict - sage: class Vals(): pass - sage: L = [Vals() for _ in range(10)] - sage: D = sage.misc.weak_dict.WeakValueDictionary(enumerate(L)) - sage: T = list(D.iteritems()) - doctest:warning...: - DeprecationWarning: use items instead - See https://github.com/sagemath/sage/issues/34488 for details. - """ - deprecation(34488, "use items instead") - return self.items() - def items(self): """ Iterate over the items of this dictionary. diff --git a/src/sage/numerical/backends/cvxopt_backend.pyx b/src/sage/numerical/backends/cvxopt_backend.pyx index 555c7510d7a..b3d2a58fd85 100644 --- a/src/sage/numerical/backends/cvxopt_backend.pyx +++ b/src/sage/numerical/backends/cvxopt_backend.pyx @@ -534,7 +534,7 @@ cdef class CVXOPTBackend(GenericBackend): G = matrix(G) - #cvxopt minimizes on default + # cvxopt minimizes on default if self.is_maximize: c = [-1 * float(e) for e in self.objective_function] else: @@ -544,12 +544,12 @@ cdef class CVXOPTBackend(GenericBackend): h = [float(e) for e in h] h = matrix(h) - #solvers comes from the cvxopt library - for k,v in self.param.iteritems(): + # solvers comes from the cvxopt library + for k, v in self.param.items(): solvers.options[k] = v - self.answer = solvers.lp(c,G,h) + self.answer = solvers.lp(c, G, h) - #possible outcomes + # possible outcomes if self.answer['status'] == 'optimized': pass elif self.answer['status'] == 'primal infeasible': diff --git a/src/sage/numerical/backends/cvxopt_sdp_backend.pyx b/src/sage/numerical/backends/cvxopt_sdp_backend.pyx index c6addca8996..8de2d550fee 100644 --- a/src/sage/numerical/backends/cvxopt_sdp_backend.pyx +++ b/src/sage/numerical/backends/cvxopt_sdp_backend.pyx @@ -138,15 +138,15 @@ cdef class CVXOPTSDPBackend(MatrixSDPBackend): G_temp.insert(j,[float(0) for t in range(self.matrices_dim[row_index]**2)]) G_matrix += [c_matrix(G_temp)] debug_g += [(G_temp)] - #raise Exception("G_matrix " + str(debug_g) + "\nh_matrix: " + str(debug_h) + "\nc_matrix: " + str(debug_c)) + # raise Exception("G_matrix " + str(debug_g) + "\nh_matrix: " + str(debug_h) + "\nc_matrix: " + str(debug_c)) - #solvers comes from the cvxopt library - for k,v in self.param.iteritems(): + # solvers comes from the cvxopt library + for k, v in self.param.items(): solvers.options[k] = v self.answer = solvers.sdp(c,Gs=G_matrix,hs=h_matrix) - #possible outcomes + # possible outcomes if self.answer['status'] == 'optimized': pass elif self.answer['status'] == 'primal infeasible': diff --git a/src/sage/numerical/backends/scip_backend.pyx b/src/sage/numerical/backends/scip_backend.pyx index 4cac8e171e0..545b4f6453b 100644 --- a/src/sage/numerical/backends/scip_backend.pyx +++ b/src/sage/numerical/backends/scip_backend.pyx @@ -263,11 +263,11 @@ cdef class SCIPBackend(GenericBackend): self.model.freeTransform() if coeff is None: return self.variables[variable].getObj() - else: - objexpr = self.model.getObjective() - var = self.variables[variable] - linfun = sum([e * c for e, c in objexpr.terms.iteritems() if e != var]) + var * coeff - self.model.setObjective(linfun, sense=self.model.getObjectiveSense()) + + objexpr = self.model.getObjective() + var = self.variables[variable] + linfun = sum([e * c for e, c in objexpr.terms.items() if e != var]) + var * coeff + self.model.setObjective(linfun, sense=self.model.getObjectiveSense()) cpdef problem_name(self, name=None): """ @@ -500,7 +500,7 @@ cdef class SCIPBackend(GenericBackend): valslinear = self.model.getValsLinear(self.get_constraints()[index]) cdef list indices = [] cdef list values = [] - for var, coeff in valslinear.iteritems(): + for var, coeff in valslinear.items(): indices.append(namedvars.index(var)) values.append(coeff) return (indices, values) diff --git a/src/sage/numerical/linear_functions.pxd b/src/sage/numerical/linear_functions.pxd index 568f04b75af..8b2bf1318f0 100644 --- a/src/sage/numerical/linear_functions.pxd +++ b/src/sage/numerical/linear_functions.pxd @@ -14,7 +14,7 @@ cdef class LinearFunctionsParent_class(Parent): cdef class LinearFunction(LinearFunctionOrConstraint): cdef dict _f cpdef _add_(self, other) - cpdef iteritems(self) + cpdef items(self) cpdef _acted_upon_(self, x, bint self_on_left) cpdef is_zero(self) cpdef equals(LinearFunction left, LinearFunction right) diff --git a/src/sage/numerical/linear_functions.pyx b/src/sage/numerical/linear_functions.pyx index 3b0061960e1..96d1c878fca 100644 --- a/src/sage/numerical/linear_functions.pyx +++ b/src/sage/numerical/linear_functions.pyx @@ -107,6 +107,7 @@ from sage.misc.fast_methods cimport hash_by_id from sage.structure.parent cimport Parent from sage.structure.element cimport ModuleElement, Element from sage.misc.cachefunc import cached_function +from sage.misc.superseded import deprecated_function_alias #***************************************************************************** # @@ -797,11 +798,11 @@ cdef class LinearFunction(LinearFunctionOrConstraint): ModuleElement.__init__(self, parent) R = self.base_ring() if isinstance(f, dict): - self._f = dict( (int(key), R(value)) for key, value in f.iteritems() ) + self._f = {int(key): R(value) for key, value in f.items()} else: self._f = {-1: R(f)} - cpdef iteritems(self): + cpdef items(self): """ Iterate over the index, coefficient pairs. @@ -816,13 +817,15 @@ cdef class LinearFunction(LinearFunctionOrConstraint): sage: p = MixedIntegerLinearProgram(solver = 'ppl') sage: x = p.new_variable() sage: f = 0.5 + 3/2*x[1] + 0.6*x[3] - sage: for id, coeff in sorted(f.iteritems()): - ....: print('id = {} coeff = {}'.format(id, coeff)) + sage: for id, coeff in sorted(f.items()): + ....: print(f'id = {id} coeff = {coeff}') id = -1 coeff = 1/2 id = 0 coeff = 3/2 id = 1 coeff = 3/5 """ - return self._f.iteritems() + return self._f.items() + + iteritems = deprecated_function_alias(40996, items) def dict(self): r""" @@ -916,7 +919,7 @@ cdef class LinearFunction(LinearFunctionOrConstraint): -16 + x_0 + 5*x_2 - 6*x_3 """ e = dict(self._f) - for (id,coeff) in b.dict().iteritems(): + for id, coeff in b.dict().items(): e[id] = self._f.get(id,0) + coeff P = self.parent() return P(e) @@ -933,7 +936,7 @@ cdef class LinearFunction(LinearFunctionOrConstraint): -1*x_0 + 8*x_3 """ P = self.parent() - return P({id: -coeff for id, coeff in self._f.iteritems()}) + return P({id: -coeff for id, coeff in self._f.items()}) cpdef _sub_(self, b): r""" @@ -949,7 +952,7 @@ cdef class LinearFunction(LinearFunctionOrConstraint): -16 + x_0 - 5*x_2 - 10*x_3 """ e = dict(self._f) - for id, coeff in b.dict().iteritems(): + for id, coeff in b.dict().items(): e[id] = self._f.get(id, 0) - coeff P = self.parent() return P(e) @@ -968,7 +971,7 @@ cdef class LinearFunction(LinearFunctionOrConstraint): 15*x_2 + 6*x_3 """ P = self.parent() - return P(dict([(id,b*coeff) for (id, coeff) in self._f.iteritems()])) + return P(dict([(id,b*coeff) for (id, coeff) in self._f.items()])) cpdef _acted_upon_(self, x, bint self_on_left): """ diff --git a/src/sage/numerical/linear_tensor_element.pyx b/src/sage/numerical/linear_tensor_element.pyx index 72351226f01..18e5081407f 100644 --- a/src/sage/numerical/linear_tensor_element.pyx +++ b/src/sage/numerical/linear_tensor_element.pyx @@ -275,7 +275,7 @@ cdef class LinearTensor(ModuleElement): (16.0, 16.0) + (1.0, 2.0)*x_0 + (5.0, 6.0)*x_2 + (-5.0, -10.0)*x_3 """ result = dict(self._f) - for key, coeff in b.dict().iteritems(): + for key, coeff in b.dict().items(): result[key] = self._f.get(key, 0) + coeff return self.parent()(result) @@ -317,7 +317,7 @@ cdef class LinearTensor(ModuleElement): (-16.0, -16.0) + (1.0, 2.0)*x_0 + (-7.0, -8.0)*x_3 """ result = dict(self._f) - for key, coeff in b.dict().iteritems(): + for key, coeff in b.dict().items(): result[key] = self._f.get(key, 0) - coeff return self.parent()(result) diff --git a/src/sage/numerical/mip.pyx b/src/sage/numerical/mip.pyx index f90cc912d97..c15e268e89e 100644 --- a/src/sage/numerical/mip.pyx +++ b/src/sage/numerical/mip.pyx @@ -2897,7 +2897,7 @@ cdef class MixedIntegerLinearProgram(SageObject): """ d = {} for v in L: - for id, coeff in v.iteritems(): + for id, coeff in v.items(): d[id] = coeff + d.get(id, 0) return self.linear_functions_parent()(d) diff --git a/src/sage/numerical/sdp.pyx b/src/sage/numerical/sdp.pyx index d0e195ab7a1..4533e8fcd02 100644 --- a/src/sage/numerical/sdp.pyx +++ b/src/sage/numerical/sdp.pyx @@ -626,9 +626,7 @@ cdef class SemidefiniteProgram(SageObject): cdef GenericSDPBackend b = self._backend # inv_variables associates a SDPVariable object to an id - inv_variables = {} - for (v, id) in self._variables.iteritems(): - inv_variables[id] = v + inv_variables = {id: v for v, id in self._variables.items()} # varid_name associates variables id to names varid_name = {} @@ -1126,7 +1124,7 @@ cdef class SemidefiniteProgram(SageObject): """ d = {} for v in L: - for id, coeff in v.iteritems(): + for id, coeff in v.items(): d[id] = coeff + d.get(id, 0) return self.linear_functions_parent()(d) diff --git a/src/sage/plot/plot3d/index_face_set.pyx b/src/sage/plot/plot3d/index_face_set.pyx index fe34fc121b8..711d9febc15 100644 --- a/src/sage/plot/plot3d/index_face_set.pyx +++ b/src/sage/plot/plot3d/index_face_set.pyx @@ -1679,7 +1679,7 @@ cdef class IndexFaceSet(PrimitiveObject): if face.n == 0: # skip unused vertices continue face.vertices = &dual.face_indices[ix] - ff, next_ = next(iter(dd.itervalues())) + ff, next_ = next(iter(dd.values())) face.vertices[0] = ff for j in range(1, face.n): ff, next_ = dd[next_] diff --git a/src/sage/rings/polynomial/pbori/pbori.pyx b/src/sage/rings/polynomial/pbori/pbori.pyx index 3d05cf643b6..d5bc16bbe11 100644 --- a/src/sage/rings/polynomial/pbori/pbori.pyx +++ b/src/sage/rings/polynomial/pbori/pbori.pyx @@ -2356,7 +2356,7 @@ cdef class BooleanMonomial(MonoidElement): elif kwds: d = list(self._parent.gens()) gd = dict(zip(self._parent.variable_names(), range(len(d)))) - for var, val in kwds.iteritems(): + for var, val in kwds.items(): d[gd[var]] = val res = self._parent._one_element for var in self.iterindex(): @@ -3933,12 +3933,12 @@ cdef class BooleanPolynomial(MPolynomial): d[i] = arg except TypeError: d[i] = arg - if not len(d): + if not d: return self elif kwds: d = dict(zip(range(P.ngens()), P.gens())) gd = dict(zip(P.variable_names(), range(P.ngens()))) - for var, val in kwds.iteritems(): + for var, val in kwds.items(): d[gd[var]] = val res = 0 @@ -4014,7 +4014,7 @@ cdef class BooleanPolynomial(MPolynomial): if kwds: gdict = P._monom_monoid.gens_dict() - for var, val in kwds.iteritems(): + for var, val in kwds.items(): var = gdict[var] try: v = P(val) @@ -4025,7 +4025,7 @@ cdef class BooleanPolynomial(MPolynomial): except TypeError: fixed[var.index()] = val - if not len(fixed): + if not fixed: return self res = 0 for m in self: diff --git a/src/sage/rings/polynomial/polynomial_complex_arb.pyx b/src/sage/rings/polynomial/polynomial_complex_arb.pyx index 7f4fc81a4e5..d7abcb9bce0 100644 --- a/src/sage/rings/polynomial/polynomial_complex_arb.pyx +++ b/src/sage/rings/polynomial/polynomial_complex_arb.pyx @@ -184,7 +184,7 @@ cdef class Polynomial_complex_arb(Polynomial): sig_on() acb_poly_fit_length(self._poly, length) sig_off() - for i, c in dct.iteritems(): + for i, c in dct.items(): ball = Coeff(c) acb_poly_set_coeff_acb(self._poly, i, ball.value) else: diff --git a/src/sage/rings/polynomial/polynomial_rational_flint.pyx b/src/sage/rings/polynomial/polynomial_rational_flint.pyx index a6e4db34050..f2c8aec8523 100644 --- a/src/sage/rings/polynomial/polynomial_rational_flint.pyx +++ b/src/sage/rings/polynomial/polynomial_rational_flint.pyx @@ -263,7 +263,7 @@ cdef class Polynomial_rational_flint(Polynomial): # deg += 1 elif isinstance(x, dict): - for deg, e in x.iteritems(): + for deg, e in x.items(): c = Rational(e) fmpq_poly_set_coeff_mpq(self._poly, deg, c.value) diff --git a/src/sage/rings/polynomial/polynomial_template.pxi b/src/sage/rings/polynomial/polynomial_template.pxi index 19180889069..c930f747e71 100644 --- a/src/sage/rings/polynomial/polynomial_template.pxi +++ b/src/sage/rings/polynomial/polynomial_template.pxi @@ -153,7 +153,7 @@ cdef class Polynomial_template(Polynomial): celement_set_si(&self.x, 0, (self)._cparent) celement_gen(gen, 0, (self)._cparent) - for deg, coef in x.iteritems(): + for deg, coef in x.items(): celement_pow(monomial, gen, deg, NULL, (self)._cparent) celement_mul(monomial, &(self.__class__(parent, coef)).x, monomial, (self)._cparent) celement_add(&self.x, &self.x, monomial, (self)._cparent) diff --git a/src/sage/sets/disjoint_set.pyx b/src/sage/sets/disjoint_set.pyx index e0e5057d463..002da624f83 100644 --- a/src/sage/sets/disjoint_set.pyx +++ b/src/sage/sets/disjoint_set.pyx @@ -186,7 +186,7 @@ cdef class DisjointSet_class(SageObject): '{{0}, {1}, {2, 4}, {3}}' """ res = [] - for l in (self.root_to_elements_dict()).itervalues(): + for l in (self.root_to_elements_dict()).values(): l.sort() res.append('{%s}' % ', '.join(repr(u) for u in l)) res.sort() @@ -206,7 +206,7 @@ cdef class DisjointSet_class(SageObject): sage: sorted(d) [['a'], ['b'], ['c']] """ - return iter((self.root_to_elements_dict()).itervalues()) + return iter((self.root_to_elements_dict()).values()) def __richcmp__(self, other, int op): r""" diff --git a/src/sage/sets/finite_set_map_cy.pyx b/src/sage/sets/finite_set_map_cy.pyx index 73dbdfdd934..81909281b63 100644 --- a/src/sage/sets/finite_set_map_cy.pyx +++ b/src/sage/sets/finite_set_map_cy.pyx @@ -91,7 +91,7 @@ cpdef fibers(f, domain): for x in domain: y = f(x) result.setdefault(y, set()).add(x) - for x, v in result.iteritems(): + for x, v in result.items(): result[x] = Set_object_enumerated(v) return result diff --git a/src/sage/structure/element.pyx b/src/sage/structure/element.pyx index eec32c260af..1f0affa1532 100644 --- a/src/sage/structure/element.pyx +++ b/src/sage/structure/element.pyx @@ -625,7 +625,7 @@ cdef class Element(SageObject): D = self.__dict__ except AttributeError: return res - for k, v in D.iteritems(): + for k, v in D.items(): try: setattr(res, k, v) except AttributeError: diff --git a/src/sage/structure/parent_gens.pyx b/src/sage/structure/parent_gens.pyx index 3a69fa07be6..f5bc45e03e3 100644 --- a/src/sage/structure/parent_gens.pyx +++ b/src/sage/structure/parent_gens.pyx @@ -158,26 +158,23 @@ cdef class ParentWithGens(ParentWithBase): raise TypeError("names must be a tuple of strings") self._names = names - ################################################################################# + ########################################################################### # Give all objects with generators a dictionary, so that attribute setting # works. It would be nice if this functionality were standard in Pyrex, # i.e., just define __dict__ as an attribute and all this code gets generated. - ################################################################################# + ########################################################################### def __getstate__(self): if self._element_constructor is not None: return parent.Parent.__getstate__(self) - d = [] try: - d = list(self.__dict__.copy().iteritems()) # so we can add elements + d = dict(self.__dict__.items()) # so we can add elements except AttributeError: - pass - d = dict(d) + d = {} d['_base'] = self._base d['_gens'] = self._gens d['_list'] = self._list d['_names'] = self._names d['_latex_names'] = self._latex_names - return d def __setstate__(self, d): @@ -185,7 +182,7 @@ cdef class ParentWithGens(ParentWithBase): return parent.Parent.__setstate__(self, d) try: self.__dict__.update(d) - except (AttributeError,KeyError): + except (AttributeError, KeyError): pass self._base = d['_base'] self._gens = d['_gens'] diff --git a/src/sage/symbolic/pynac_function_impl.pxi b/src/sage/symbolic/pynac_function_impl.pxi index 351300154b6..40645ea0ffe 100644 --- a/src/sage/symbolic/pynac_function_impl.pxi +++ b/src/sage/symbolic/pynac_function_impl.pxi @@ -196,7 +196,7 @@ cpdef get_sfunction_from_hash(long myhash): sage: from sage.symbolic.expression import get_sfunction_from_hash sage: get_sfunction_from_hash(1) # random """ - for sfunc in sfunction_serial_dict.itervalues(): + for sfunc in sfunction_serial_dict.values(): if isinstance(sfunc, SymbolicFunction) and \ myhash == (sfunc)._hash_(): # found one diff --git a/src/sage/symbolic/substitution_map_impl.pxi b/src/sage/symbolic/substitution_map_impl.pxi index 4db772ec930..4e7adc9af4f 100644 --- a/src/sage/symbolic/substitution_map_impl.pxi +++ b/src/sage/symbolic/substitution_map_impl.pxi @@ -86,7 +86,7 @@ cpdef SubstitutionMap make_map(subs_dict): SubsMap """ cdef GExMap smap - for k, v in subs_dict.iteritems(): + for k, v in subs_dict.items(): smap.insert(make_pair((k)._gobj, (v)._gobj)) return new_SubstitutionMap_from_GExMap(smap)