Update to latest upstream release

This commit is contained in:
pcpa 2019-11-08 08:46:01 -03:00
parent fa050d6863
commit 7b54d2115b
20 changed files with 285 additions and 834 deletions

View file

@ -1,6 +1,6 @@
diff -up build/pkgs/sagenb/src/sagenb/misc/support.py.orig build/pkgs/sagenb/src/sagenb/misc/support.py
--- build/pkgs/sagenb/src/sagenb/misc/support.py.orig 2019-02-01 06:34:20.000000000 -0700
+++ build/pkgs/sagenb/src/sagenb/misc/support.py 2019-04-08 12:02:29.162692936 -0600
--- build/pkgs/sagenb/src/sagenb/misc/support.py.orig 2019-10-09 15:29:08.866640263 -0300
+++ build/pkgs/sagenb/src/sagenb/misc/support.py 2019-10-09 15:29:13.695667468 -0300
@@ -178,7 +178,7 @@ def completions(s, globs, format=False,
try:
if not '.' in s and not '(' in s:
@ -11,8 +11,8 @@ diff -up build/pkgs/sagenb/src/sagenb/misc/support.py.orig build/pkgs/sagenb/src
if not ')' in s:
i = s.rfind('.')
diff -up build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py.orig build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py
--- build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py.orig 2019-02-01 05:37:36.000000000 -0700
+++ build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py 2019-04-08 11:59:49.259545960 -0600
--- build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py.orig 2019-10-09 15:29:08.867640268 -0300
+++ build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py 2019-10-09 15:29:13.696667474 -0300
@@ -25,7 +25,7 @@ This module contains three classes:
.. NOTE::
@ -32,8 +32,8 @@ diff -up build/pkgs/sagenb/src/sagenb/notebook/docHTMLProcessor.py.orig build/pk
# HTMLParser, and may never actually be visibly called here.
diff -up build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py.orig build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py
--- build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py.orig 2019-02-01 05:37:36.000000000 -0700
+++ build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py 2019-04-08 11:59:49.260545943 -0600
--- build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py.orig 2019-10-09 15:29:08.870640285 -0300
+++ build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py 2019-10-09 15:29:13.697667479 -0300
@@ -59,7 +59,7 @@ class Parser:
'parent': r'(?:%s)?' % re.escape(PARENT_PREFIX),
}
@ -44,8 +44,8 @@ diff -up build/pkgs/sagenb/src/sagenb/notebook/wiki2html.py.orig build/pkgs/sage
'punct': punct_pattern,
}
diff -up build/pkgs/sagetex/src/extractsagecode.py.orig build/pkgs/sagetex/src/extractsagecode.py
--- build/pkgs/sagetex/src/extractsagecode.py.orig 2019-01-09 09:51:28.000000000 -0700
+++ build/pkgs/sagetex/src/extractsagecode.py 2019-06-27 11:33:54.098080502 -0600
--- build/pkgs/sagetex/src/extractsagecode.py.orig 2019-10-09 15:29:08.872640297 -0300
+++ build/pkgs/sagetex/src/extractsagecode.py 2019-10-09 15:29:13.697667479 -0300
@@ -45,7 +45,7 @@ See the SageTeX documentation for more d
try:
@ -56,8 +56,8 @@ diff -up build/pkgs/sagetex/src/extractsagecode.py.orig build/pkgs/sagetex/src/e
usage()
sys.exit(2)
diff -up build/pkgs/sagetex/src/makestatic.py.orig build/pkgs/sagetex/src/makestatic.py
--- build/pkgs/sagetex/src/makestatic.py.orig 2019-01-09 09:51:28.000000000 -0700
+++ build/pkgs/sagetex/src/makestatic.py 2019-06-27 11:33:54.098080502 -0600
--- build/pkgs/sagetex/src/makestatic.py.orig 2019-10-09 15:29:08.874640308 -0300
+++ build/pkgs/sagetex/src/makestatic.py 2019-10-09 15:29:13.698667485 -0300
@@ -45,7 +45,7 @@ See the SageTeX documentation for more d
try:
@ -68,8 +68,8 @@ diff -up build/pkgs/sagetex/src/makestatic.py.orig build/pkgs/sagetex/src/makest
usage()
sys.exit(2)
diff -up build/pkgs/sagetex/src/remote-sagetex.py.orig build/pkgs/sagetex/src/remote-sagetex.py
--- build/pkgs/sagetex/src/remote-sagetex.py.orig 2019-01-09 09:51:28.000000000 -0700
+++ build/pkgs/sagetex/src/remote-sagetex.py 2019-04-08 11:59:49.263545889 -0600
--- build/pkgs/sagetex/src/remote-sagetex.py.orig 2019-10-09 15:29:08.876640319 -0300
+++ build/pkgs/sagetex/src/remote-sagetex.py 2019-10-09 15:29:13.698667485 -0300
@@ -24,12 +24,11 @@
## You should have received a copy of the GNU General Public License along
## with this program. If not, see <http://www.gnu.org/licenses/>.
@ -133,8 +133,8 @@ diff -up build/pkgs/sagetex/src/remote-sagetex.py.orig build/pkgs/sagetex/src/re
if not password:
from getpass import getpass
diff -up build/pkgs/sagetex/src/sagetexparse.py.orig build/pkgs/sagetex/src/sagetexparse.py
--- build/pkgs/sagetex/src/sagetexparse.py.orig 2019-01-09 09:51:28.000000000 -0700
+++ build/pkgs/sagetex/src/sagetexparse.py 2019-09-10 12:24:06.752516723 -0600
--- build/pkgs/sagetex/src/sagetexparse.py.orig 2019-10-09 15:29:08.877640325 -0300
+++ build/pkgs/sagetex/src/sagetexparse.py 2019-10-09 15:29:13.699667491 -0300
@@ -132,7 +132,7 @@ class SageCodeExtractor():
def plotout(self, s, l, t):
@ -144,42 +144,9 @@ diff -up build/pkgs/sagetex/src/sagetexparse.py.orig build/pkgs/sagetex/src/sage
self.result += '# format: %s' % t.format[0][1:-1] + '\n'
self.result += t.code[1:-1] + '\n\n'
diff -up src/doc/common/conf.py.orig src/doc/common/conf.py
--- src/doc/common/conf.py.orig 2019-06-26 14:41:04.000000000 -0600
+++ src/doc/common/conf.py 2019-06-27 11:33:54.099080488 -0600
@@ -566,7 +566,7 @@ skip_picklability_check_modules = [
#'sage.misc.nested_class_test', # for test only
'sage.misc.latex',
'sage.misc.explain_pickle',
- '__builtin__',
+ 'builtins',
]
def check_nested_class_picklability(app, what, name, obj, skip, options):
@@ -615,7 +615,7 @@ def skip_member(app, what, name, obj, sk
if 'SAGE_CHECK_NESTED' in os.environ:
check_nested_class_picklability(app, what, name, obj, skip, options)
- if getattr(obj, '__module__', None) == '__builtin__':
+ if getattr(obj, '__module__', None) == 'builtins':
return True
objname = getattr(obj, "__name__", None)
diff -up src/sage/coding/linear_code.py.orig src/sage/coding/linear_code.py
--- src/sage/coding/linear_code.py.orig 2019-06-26 14:41:04.000000000 -0600
+++ src/sage/coding/linear_code.py 2019-09-10 12:21:10.421332817 -0600
@@ -3793,7 +3793,7 @@ class LinearCode(AbstractLinearCode):
[1 2 1]
[2 1 1]
"""
- if encoder_name is None or encoder_name is 'GeneratorMatrix':
+ if encoder_name is None or encoder_name == 'GeneratorMatrix':
g = self._generator_matrix
else:
g = super(LinearCode, self).generator_matrix(encoder_name, **kwargs)
diff -up src/sage/combinat/finite_state_machine.py.orig src/sage/combinat/finite_state_machine.py
--- src/sage/combinat/finite_state_machine.py.orig 2019-06-26 14:41:04.000000000 -0600
+++ src/sage/combinat/finite_state_machine.py 2019-06-27 11:36:38.804783269 -0600
--- src/sage/combinat/finite_state_machine.py.orig 2019-10-09 15:29:08.880640342 -0300
+++ src/sage/combinat/finite_state_machine.py 2019-10-09 15:29:13.703667513 -0300
@@ -936,7 +936,7 @@ from six.moves import range, zip_longest
from six import itervalues
@ -189,7 +156,7 @@ diff -up src/sage/combinat/finite_state_machine.py.orig src/sage/combinat/finite
import itertools
from copy import copy, deepcopy
@@ -14207,7 +14207,7 @@ def is_FSMProcessIterator(PI):
@@ -14166,7 +14166,7 @@ def is_FSMProcessIterator(PI):
class FSMProcessIterator(SageObject,
@ -199,8 +166,8 @@ diff -up src/sage/combinat/finite_state_machine.py.orig src/sage/combinat/finite
This class takes an input, feeds it into a finite state machine
(automaton or transducer, in particular), tests whether this was
diff -up src/sage/combinat/multiset_partition_into_sets_ordered.py.orig src/sage/combinat/multiset_partition_into_sets_ordered.py
--- src/sage/combinat/multiset_partition_into_sets_ordered.py.orig 2019-06-26 14:41:04.000000000 -0600
+++ src/sage/combinat/multiset_partition_into_sets_ordered.py 2019-09-10 12:20:47.787694285 -0600
--- src/sage/combinat/multiset_partition_into_sets_ordered.py.orig 2019-10-09 15:29:08.882640353 -0300
+++ src/sage/combinat/multiset_partition_into_sets_ordered.py 2019-10-09 15:29:13.704667519 -0300
@@ -1952,7 +1952,7 @@ class OrderedMultisetPartitionsIntoSets(
# slice by 'order'
@ -211,8 +178,8 @@ diff -up src/sage/combinat/multiset_partition_into_sets_ordered.py.orig src/sage
# slice by 'size'
diff -up src/sage/combinat/root_system/branching_rules.py.orig src/sage/combinat/root_system/branching_rules.py
--- src/sage/combinat/root_system/branching_rules.py.orig 2019-06-26 14:41:04.000000000 -0600
+++ src/sage/combinat/root_system/branching_rules.py 2019-09-09 15:08:59.383139652 -0600
--- src/sage/combinat/root_system/branching_rules.py.orig 2019-10-09 15:29:08.884640364 -0300
+++ src/sage/combinat/root_system/branching_rules.py 2019-10-09 15:29:13.707667536 -0300
@@ -1750,7 +1750,7 @@ def branching_rule(Rtype, Stype, rule="d
elif rule == "tensor" or rule == "tensor-debug":
if not Stype.is_compound():
@ -222,33 +189,10 @@ diff -up src/sage/combinat/root_system/branching_rules.py.orig src/sage/combinat
raise ValueError("Not implemented")
if Rtype[0] == 'A':
nr = Rtype[1]+1
diff -up src/sage/cpython/dict_del_by_value.pyx.orig src/sage/cpython/dict_del_by_value.pyx
--- src/sage/cpython/dict_del_by_value.pyx.orig 2019-06-26 14:41:04.000000000 -0600
+++ src/sage/cpython/dict_del_by_value.pyx 2019-09-09 15:32:24.921024261 -0600
@@ -291,7 +291,7 @@ ELIF PY_VERSION_HEX>=0x03060000:
#general lookup function (which can deal with DKIX_DUMMY)
PyDict_GetItemWithError(<dict>mp,None)
#this can actually fail if mp is a dictionary with split table
- assert DK_LOOKUP(mp) == lookdict
+ #assert DK_LOOKUP(mp) == lookdict
cdef del_dictitem_by_exact_value(PyDictObject *mp, PyObject *value, Py_hash_t hash):
"""
@@ -347,8 +347,8 @@ ELIF PY_VERSION_HEX>=0x03060000:
cdef MyPyDictKeysObject * keys = <MyPyDictKeysObject *>(mp.ma_keys)
cdef size_t perturb
cdef size_t mask = <size_t> keys.dk_size-1
- cdef PyDictKeyEntry *entries, *ep
- entries = DK_ENTRIES(keys)
+ cdef PyDictKeyEntry *ep
+ cdef PyDictKeyEntry *entries = DK_ENTRIES(keys)
if mp.ma_values != NULL:
print ("del_dictitem_by_exact_value cannot be applied to a shared key dict")
diff -up src/sage/geometry/triangulation/point_configuration.py.orig src/sage/geometry/triangulation/point_configuration.py
--- src/sage/geometry/triangulation/point_configuration.py.orig 2019-06-26 14:41:04.000000000 -0600
+++ src/sage/geometry/triangulation/point_configuration.py 2019-06-27 11:33:54.103080432 -0600
@@ -623,7 +623,7 @@ class PointConfiguration(UniqueRepresent
--- src/sage/geometry/triangulation/point_configuration.py.orig 2019-10-09 15:29:08.886640376 -0300
+++ src/sage/geometry/triangulation/point_configuration.py 2019-10-09 15:29:13.707667536 -0300
@@ -619,7 +619,7 @@ class PointConfiguration(UniqueRepresent
['{{0,1,2,4},{1,2,3,4}}']
"""
timeout = 600
@ -257,82 +201,21 @@ diff -up src/sage/geometry/triangulation/point_configuration.py.orig src/sage/ge
proc.expect(r'Evaluating Commandline Options \.\.\.')
proc.expect(r'\.\.\. done\.')
proc.setecho(0)
diff -up src/sage/graphs/graph_latex.py.orig src/sage/graphs/graph_latex.py
--- src/sage/graphs/graph_latex.py.orig 2019-06-26 14:41:04.000000000 -0600
+++ src/sage/graphs/graph_latex.py 2019-09-10 12:23:28.891121378 -0600
@@ -1156,7 +1156,7 @@ class GraphLatex(SageObject):
#
elif name in color_dicts:
if not isinstance(value, dict):
- raise TypeError('%s option must be a dictionary, not %s' (name, value))
+ raise TypeError('%s option must be a dictionary, not %s' % (name, value))
else:
for key, c in value.items():
try:
@@ -1165,42 +1165,42 @@ class GraphLatex(SageObject):
raise ValueError('%s option for %s needs to be a matplotlib color (always as a string), not %s' % (name, key, c))
elif name in positive_scalar_dicts:
if not isinstance(value, dict):
- raise TypeError('%s option must be a dictionary, not %s' (name, value))
+ raise TypeError('%s option must be a dictionary, not %s' % (name, value))
else:
for key, x in value.items():
if not type(x) in [int, Integer, float, RealLiteral] or not x >= 0.0:
raise ValueError('%s option for %s needs to be a positive number, not %s' % (name, key, x))
elif name in boolean_dicts:
if not isinstance(value, dict):
- raise TypeError('%s option must be a dictionary, not %s' (name, value))
+ raise TypeError('%s option must be a dictionary, not %s' % (name, value))
else:
for key, b in value.items():
if not isinstance(b, bool):
raise ValueError('%s option for %s needs to be True or False, not %s' % (name, key, b))
elif name == 'vertex_shapes':
if not isinstance(value, dict):
- raise TypeError('%s option must be a dictionary, not %s' (name, value))
+ raise TypeError('%s option must be a dictionary, not %s' % (name, value))
else:
for key, s in value.items():
if s not in shape_names:
raise ValueError('%s option for %s needs to be a vertex shape, not %s' % (name, key, s))
elif name == 'vertex_label_placements':
if not isinstance(value, dict):
- raise TypeError('%s option must be a dictionary, not %s' (name, value))
+ raise TypeError('%s option must be a dictionary, not %s' % (name, value))
else:
for key, p in value.items():
if not(p == 'center') and not(isinstance(p, tuple) and len(p) == 2 and type(p[0]) in number_types and p[0] >= 0 and type(p[1]) in number_types and p[1] >= 0):
raise ValueError('%s option for %s needs to be None or a pair of positive numbers, not %s' % (name, key, p))
elif name == 'edge_label_placements':
if not isinstance(value, dict):
- raise TypeError('%s option must be a dictionary, not %s' (name, value))
+ raise TypeError('%s option must be a dictionary, not %s' % (name, value))
else:
for key, p in value.items():
if not(type(p) in [float, RealLiteral] and (0 <= p) and (p <= 1)) and not(p in label_places):
raise ValueError('%s option for %s needs to be a number between 0.0 and 1.0 or a place (like "above"), not %s' % (name, key, p))
elif name == 'loop_placements':
if not isinstance(value, dict):
- raise TypeError('%s option must be a dictionary, not %s' (name, value))
+ raise TypeError('%s option must be a dictionary, not %s' % (name, value))
else:
for key, p in value.items():
if not((isinstance(p, tuple)) and (len(p) == 2) and (p[0] >= 0) and (p[1] in compass_points)):
diff -up src/sage/interfaces/frobby.py.orig src/sage/interfaces/frobby.py
--- src/sage/interfaces/frobby.py.orig 2019-06-26 14:41:04.000000000 -0600
+++ src/sage/interfaces/frobby.py 2019-06-27 11:33:54.103080432 -0600
--- src/sage/interfaces/frobby.py.orig 2019-10-09 15:29:08.888640387 -0300
+++ src/sage/interfaces/frobby.py 2019-10-09 15:29:13.707667536 -0300
@@ -77,7 +77,7 @@ class Frobby:
print("Frobby command: ", repr(command))
print("Frobby input:\n", input)
- process = Popen(command, stdin = PIPE, stdout = PIPE, stderr = PIPE)
+ process = Popen(command, stdin = PIPE, stdout = PIPE, stderr = PIPE, encoding='utf-8')
+ process = Popen(command, stdin = PIPE, stdout = PIPE, stderr = PIPE, enconding='utf-8')
output, err = process.communicate(input = input)
if verbose:
diff -up src/sage/interfaces/gfan.py.orig src/sage/interfaces/gfan.py
--- src/sage/interfaces/gfan.py.orig 2019-06-26 14:41:04.000000000 -0600
+++ src/sage/interfaces/gfan.py 2019-06-27 11:33:54.104080419 -0600
--- src/sage/interfaces/gfan.py.orig 2019-10-09 15:29:08.889640393 -0300
+++ src/sage/interfaces/gfan.py 2019-10-09 15:29:13.708667541 -0300
@@ -66,7 +66,7 @@ class Gfan(object):
if six.PY2:
enc_kwargs = {}
@ -343,8 +226,8 @@ diff -up src/sage/interfaces/gfan.py.orig src/sage/interfaces/gfan.py
gfan_processes = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE,
**enc_kwargs)
diff -up src/sage/interfaces/gp.py.orig src/sage/interfaces/gp.py
--- src/sage/interfaces/gp.py.orig 2019-06-26 14:41:04.000000000 -0600
+++ src/sage/interfaces/gp.py 2019-06-27 11:33:54.104080419 -0600
--- src/sage/interfaces/gp.py.orig 2019-10-09 15:29:08.891640404 -0300
+++ src/sage/interfaces/gp.py 2019-10-09 15:29:13.709667547 -0300
@@ -934,17 +934,6 @@ class GpElement(ExpectElement):
"""
return repr(self.type()) == 't_STR'
@ -364,9 +247,9 @@ diff -up src/sage/interfaces/gp.py.orig src/sage/interfaces/gp.py
"""
Return Python float.
diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
--- src/sage/interfaces/latte.py.orig 2019-06-26 14:41:04.000000000 -0600
+++ src/sage/interfaces/latte.py 2019-06-27 11:33:54.104080419 -0600
@@ -148,6 +148,7 @@ def count(arg, ehrhart_polynomial=False,
--- src/sage/interfaces/latte.py.orig 2019-10-09 15:29:08.893640415 -0300
+++ src/sage/interfaces/latte.py 2019-10-09 15:29:13.709667547 -0300
@@ -152,6 +152,7 @@ def count(arg, ehrhart_polynomial=False,
latte_proc = Popen(args,
stdin=PIPE, stdout=PIPE,
stderr=(None if verbose else PIPE),
@ -374,7 +257,7 @@ diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
cwd=str(SAGE_TMP))
ans, err = latte_proc.communicate(arg)
@@ -355,6 +356,7 @@ def integrate(arg, polynomial=None, algo
@@ -364,6 +365,7 @@ def integrate(arg, polynomial=None, algo
latte_proc = Popen(args,
stdin=PIPE, stdout=PIPE,
stderr=(None if verbose else PIPE),
@ -383,8 +266,8 @@ diff -up src/sage/interfaces/latte.py.orig src/sage/interfaces/latte.py
ans, err = latte_proc.communicate(arg)
diff -up src/sage/interfaces/sagespawn.pyx.orig src/sage/interfaces/sagespawn.pyx
--- src/sage/interfaces/sagespawn.pyx.orig 2019-06-26 14:41:04.000000000 -0600
+++ src/sage/interfaces/sagespawn.pyx 2019-06-27 11:33:54.104080419 -0600
--- src/sage/interfaces/sagespawn.pyx.orig 2019-10-09 15:29:08.894640421 -0300
+++ src/sage/interfaces/sagespawn.pyx 2019-10-09 15:29:13.709667547 -0300
@@ -1,6 +1,6 @@
"""
Sage wrapper around pexpect's ``spawn`` class and
@ -433,9 +316,9 @@ diff -up src/sage/interfaces/sagespawn.pyx.orig src/sage/interfaces/sagespawn.py
pass
self.fileobj.close()
diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.pyx
--- src/sage/libs/coxeter3/coxeter.pyx.orig 2019-06-26 14:41:05.000000000 -0600
+++ src/sage/libs/coxeter3/coxeter.pyx 2019-09-12 14:57:59.755712128 -0600
@@ -32,7 +32,7 @@ cdef class String:
--- src/sage/libs/coxeter3/coxeter.pyx.orig 2019-10-09 15:29:08.896640432 -0300
+++ src/sage/libs/coxeter3/coxeter.pyx 2019-10-09 15:29:13.709667547 -0300
@@ -33,7 +33,7 @@ cdef class String:
EXAMPLES::
sage: from sage.libs.coxeter3.coxeter import String # optional - coxeter3
@ -444,7 +327,7 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
hello
sage: del s # optional - coxeter3
"""
@@ -43,11 +43,11 @@ cdef class String:
@@ -44,11 +44,11 @@ cdef class String:
EXAMPLES::
sage: from sage.libs.coxeter3.coxeter import String # optional - coxeter3
@ -453,12 +336,12 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
sage: s # optional - coxeter3
Hi
"""
- return self.x.ptr()
- return bytes_to_str(self.x.ptr())
+ return self.x.ptr().decode('utf-8')
def __hash__(self):
"""
@@ -59,7 +59,7 @@ cdef class String:
@@ -60,7 +60,7 @@ cdef class String:
EXAMPLES::
sage: from sage.libs.coxeter3.coxeter import String # optional - coxeter3
@ -467,7 +350,7 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
sage: hash(s) == hash('hello') # optional - coxeter3
True
"""
@@ -70,9 +70,9 @@ cdef class String:
@@ -71,9 +71,9 @@ cdef class String:
EXAMPLES::
sage: from sage.libs.coxeter3.coxeter import String # optional - coxeter3
@ -480,7 +363,7 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
sage: ta1 == ta2 # optional - coxeter3
True
sage: tb != ta1 # optional - coxeter3
@@ -108,7 +108,7 @@ cdef class String:
@@ -109,7 +109,7 @@ cdef class String:
EXAMPLES::
sage: from sage.libs.coxeter3.coxeter import String # optional - coxeter3
@ -489,7 +372,7 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
sage: len(s) # optional - coxeter3
2
"""
@@ -119,7 +119,7 @@ cdef class String:
@@ -120,7 +120,7 @@ cdef class String:
EXAMPLES::
sage: from sage.libs.coxeter3.coxeter import String # optional - coxeter3
@ -498,7 +381,7 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
sage: TestSuite(s).run() # optional - coxeter3
"""
return (String, (repr(self),) )
@@ -133,7 +133,7 @@ cdef class Type:
@@ -134,7 +134,7 @@ cdef class Type:
EXAMPLES::
sage: from sage.libs.coxeter3.coxeter import Type # optional - coxeter3
@ -507,7 +390,7 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
A
sage: del t # optional - coxeter3
"""
@@ -144,17 +144,17 @@ cdef class Type:
@@ -145,7 +145,7 @@ cdef class Type:
EXAMPLES::
sage: from sage.libs.coxeter3.coxeter import Type # optional - coxeter3
@ -515,11 +398,8 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
+ sage: t = Type(b'A'); t # optional - coxeter3
A
"""
- return self.x.name().ptr()
+ return self.x.name().ptr().decode('utf-8')
def name(self):
"""
return bytes_to_str(self.x.name().ptr())
@@ -155,7 +155,7 @@ cdef class Type:
EXAMPLES::
sage: from sage.libs.coxeter3.coxeter import Type # optional - coxeter3
@ -528,7 +408,7 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
sage: t.name() # optional - coxeter3
A
"""
@@ -170,8 +170,8 @@ cdef class Type:
@@ -171,8 +171,8 @@ cdef class Type:
EXAMPLES::
sage: from sage.libs.coxeter3.coxeter import Type # optional - coxeter3
@ -539,7 +419,7 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
sage: hash(a) == hash(b) # optional - coxeter3
False
sage: d = {a: 1, b: 2} # optional - coxeter3
@@ -183,9 +183,9 @@ cdef class Type:
@@ -184,9 +184,9 @@ cdef class Type:
EXAMPLES::
sage: from sage.libs.coxeter3.coxeter import Type # optional - coxeter3
@ -552,7 +432,7 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
sage: ta1 == ta2 # optional - coxeter3
True
sage: tb != ta1 # optional - coxeter3
@@ -219,7 +219,7 @@ cdef class Type:
@@ -220,7 +220,7 @@ cdef class Type:
EXAMPLES::
sage: from sage.libs.coxeter3.coxeter import Type # optional - coxeter3
@ -561,7 +441,7 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
sage: TestSuite(t).run() # optional - coxeter3
"""
return (Type, (repr(self), ))
@@ -256,7 +256,7 @@ cdef class CoxGroup(SageObject):
@@ -257,7 +257,7 @@ cdef class CoxGroup(SageObject):
type = type.lower()
rank = rank + 1
@ -571,8 +451,8 @@ diff -up src/sage/libs/coxeter3/coxeter.pyx.orig src/sage/libs/coxeter3/coxeter.
if rank == 0:
raise NotImplementedError("Coxeter group of type ['A',0] using Coxeter 3 not yet implemented")
diff -up src/sage/misc/parser.pyx.orig src/sage/misc/parser.pyx
--- src/sage/misc/parser.pyx.orig 2019-06-26 14:41:05.000000000 -0600
+++ src/sage/misc/parser.pyx 2019-06-27 11:33:54.105080405 -0600
--- src/sage/misc/parser.pyx.orig 2019-10-09 15:29:08.898640443 -0300
+++ src/sage/misc/parser.pyx 2019-10-09 15:30:11.051990579 -0300
@@ -96,7 +96,7 @@ def token_to_str(int token):
@ -810,7 +690,7 @@ diff -up src/sage/misc/parser.pyx.orig src/sage/misc/parser.pyx
operand2 = self.p_factor(tokens)
return operand1 ** operand2
- elif token == "!":
+ elif token == c'!':
+ elif token == c"!":
from sage.functions.all import factorial
operand1 = factorial(operand1)
- if tokens.peek() == '^':
@ -867,25 +747,13 @@ diff -up src/sage/misc/parser.pyx.orig src/sage/misc/parser.pyx
tokens.next()
return name, self.p_expr(tokens)
- if token == "[" :
+ if token == c'[' :
+ if token == c"[" :
tokens.backtrack()
return self.p_list(tokens)
else:
diff -up src/sage/modular/abvar/abvar.py.orig src/sage/modular/abvar/abvar.py
--- src/sage/modular/abvar/abvar.py.orig 2019-06-26 14:41:05.000000000 -0600
+++ src/sage/modular/abvar/abvar.py 2019-09-09 15:08:24.875810751 -0600
@@ -3703,7 +3703,7 @@ class ModularAbelianVariety_abstract(Par
C = self.__complement
except AttributeError:
pass
- if self.dimension() is 0:
+ if self.dimension() == 0:
if A is None:
C = self.ambient_variety()
else:
diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py
--- src/sage/plot/plot3d/plot3d.py.orig 2019-06-26 14:41:05.000000000 -0600
+++ src/sage/plot/plot3d/plot3d.py 2019-06-27 11:33:54.105080405 -0600
--- src/sage/plot/plot3d/plot3d.py.orig 2019-10-09 15:29:08.899640449 -0300
+++ src/sage/plot/plot3d/plot3d.py 2019-10-09 15:29:13.710667553 -0300
@@ -188,7 +188,8 @@ class _Coordinates(object):
sage: arb((x+z,y*z,z), z, (x,y))
Arbitrary Coordinates coordinate transform (z in terms of x, y)
@ -897,8 +765,8 @@ diff -up src/sage/plot/plot3d/plot3d.py.orig src/sage/plot/plot3d/plot3d.py
raise ValueError('variables were specified incorrectly for this coordinate system; incorrect variables were %s'%list(set(all_vars).symmetric_difference(set(indep_vars+[dep_var]))))
self.dep_var = dep_var
diff -up src/sage/plot/point.py.orig src/sage/plot/point.py
--- src/sage/plot/point.py.orig 2019-06-26 14:41:05.000000000 -0600
+++ src/sage/plot/point.py 2019-06-27 11:33:54.105080405 -0600
--- src/sage/plot/point.py.orig 2019-10-09 15:29:08.901640460 -0300
+++ src/sage/plot/point.py 2019-10-09 15:29:13.711667558 -0300
@@ -29,7 +29,7 @@ TESTS::
from sage.misc.decorators import options, rename_keyword
from sage.plot.colors import to_mpl_color
@ -918,8 +786,8 @@ diff -up src/sage/plot/point.py.orig src/sage/plot/point.py
try:
diff -up src/sage/repl/display/fancy_repr.py.orig src/sage/repl/display/fancy_repr.py
--- src/sage/repl/display/fancy_repr.py.orig 2019-06-26 14:41:05.000000000 -0600
+++ src/sage/repl/display/fancy_repr.py 2019-06-27 11:33:54.106080391 -0600
--- src/sage/repl/display/fancy_repr.py.orig 2019-10-09 15:29:08.903640471 -0300
+++ src/sage/repl/display/fancy_repr.py 2019-10-09 15:29:13.711667558 -0300
@@ -15,7 +15,7 @@ Representations of objects.
import types
@ -939,8 +807,8 @@ diff -up src/sage/repl/display/fancy_repr.py.orig src/sage/repl/display/fancy_re
else:
# A user-provided repr. Find newlines and replace them with p.break_()
diff -up src/sage/repl/ipython_kernel/interact.py.orig src/sage/repl/ipython_kernel/interact.py
--- src/sage/repl/ipython_kernel/interact.py.orig 2019-06-26 14:41:05.000000000 -0600
+++ src/sage/repl/ipython_kernel/interact.py 2019-06-27 11:33:54.106080391 -0600
--- src/sage/repl/ipython_kernel/interact.py.orig 2019-10-09 15:29:08.904640477 -0300
+++ src/sage/repl/ipython_kernel/interact.py 2019-10-09 15:29:13.711667558 -0300
@@ -35,7 +35,8 @@ EXAMPLES::
from ipywidgets.widgets import SelectionSlider, ValueWidget, ToggleButtons
@ -952,9 +820,9 @@ diff -up src/sage/repl/ipython_kernel/interact.py.orig src/sage/repl/ipython_ker
from .widgets_sagenb import input_grid
from sage.structure.element import parent
diff -up src/sage/rings/integer.pyx.orig src/sage/rings/integer.pyx
--- src/sage/rings/integer.pyx.orig 2019-06-26 14:41:05.000000000 -0600
+++ src/sage/rings/integer.pyx 2019-06-27 11:33:54.107080377 -0600
@@ -6989,7 +6989,7 @@ cdef int mpz_set_str_python(mpz_ptr z, c
--- src/sage/rings/integer.pyx.orig 2019-10-09 15:29:08.906640488 -0300
+++ src/sage/rings/integer.pyx 2019-10-09 15:29:13.712667564 -0300
@@ -7124,7 +7124,7 @@ cdef int mpz_set_str_python(mpz_ptr z, c
while x[0] == c' ': x += 1 # Strip spaces
# Disallow a sign here
@ -964,9 +832,9 @@ diff -up src/sage/rings/integer.pyx.orig src/sage/rings/integer.pyx
assert base >= 2
diff -up src/sage/rings/multi_power_series_ring_element.py.orig src/sage/rings/multi_power_series_ring_element.py
--- src/sage/rings/multi_power_series_ring_element.py.orig 2019-06-26 14:41:05.000000000 -0600
+++ src/sage/rings/multi_power_series_ring_element.py 2019-09-09 15:01:45.746217568 -0600
@@ -1417,7 +1417,7 @@ class MPowerSeries(PowerSeries):
--- src/sage/rings/multi_power_series_ring_element.py.orig 2019-10-09 15:29:08.908640499 -0300
+++ src/sage/rings/multi_power_series_ring_element.py 2019-10-09 15:29:13.712667564 -0300
@@ -1396,7 +1396,7 @@ class MPowerSeries(PowerSeries):
# at this stage, self is probably a non-zero
# element of the base ring
for a in range(len(self._bg_value.list())):
@ -976,21 +844,21 @@ diff -up src/sage/rings/multi_power_series_ring_element.py.orig src/sage/rings/m
def is_nilpotent(self):
diff -up src/sage/rings/polynomial/pbori.pyx.orig src/sage/rings/polynomial/pbori.pyx
--- src/sage/rings/polynomial/pbori.pyx.orig 2019-06-26 14:41:05.000000000 -0600
+++ src/sage/rings/polynomial/pbori.pyx 2019-06-27 11:33:54.123080154 -0600
--- src/sage/rings/polynomial/pbori.pyx.orig 2019-10-09 15:29:08.910640511 -0300
+++ src/sage/rings/polynomial/pbori.pyx 2019-10-09 15:29:13.713667570 -0300
@@ -4765,8 +4765,7 @@ cdef class PolynomialConstruct:
# So, it is just a conversion. [Simon King]
return (<BooleanPolynomialRing>ring)._element_constructor_(x)
- raise TypeError("Cannot generate Boolean polynomial from %s , %s%" %
- raise TypeError("Cannot generate Boolean polynomial from %s , %s" %
- (type(x), type(ring)))
+ raise TypeError(f"Cannot generate Boolean polynomial from {type(x)}, {type(ring)}")
cdef class MonomialConstruct:
diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx
--- src/sage/rings/real_mpfi.pyx.orig 2019-06-26 14:41:05.000000000 -0600
+++ src/sage/rings/real_mpfi.pyx 2019-06-27 11:33:54.124080141 -0600
--- src/sage/rings/real_mpfi.pyx.orig 2019-10-09 15:29:08.911640516 -0300
+++ src/sage/rings/real_mpfi.pyx 2019-10-09 15:29:13.715667581 -0300
@@ -1943,12 +1943,12 @@ cdef class RealIntervalFieldElement(Ring
cdef long digits
@ -1016,8 +884,8 @@ diff -up src/sage/rings/real_mpfi.pyx.orig src/sage/rings/real_mpfi.pyx
mant_string = bytes_to_str(tmp_cstr+1)
sign_string = bytes_to_str(b'-')
diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx
--- src/sage/rings/real_mpfr.pyx.orig 2019-06-26 14:41:05.000000000 -0600
+++ src/sage/rings/real_mpfr.pyx 2019-06-27 11:33:54.125080127 -0600
--- src/sage/rings/real_mpfr.pyx.orig 2019-10-09 15:29:08.913640528 -0300
+++ src/sage/rings/real_mpfr.pyx 2019-10-09 15:29:13.715667581 -0300
@@ -2039,7 +2039,7 @@ cdef class RealNumber(sage.structure.ele
if s is NULL:
raise RuntimeError("unable to convert an mpfr number to a string")
@ -1028,8 +896,8 @@ diff -up src/sage/rings/real_mpfr.pyx.orig src/sage/rings/real_mpfr.pyx
t = char_to_str(s + 1)
else:
diff -up src/sage/structure/sage_object.pyx.orig src/sage/structure/sage_object.pyx
--- src/sage/structure/sage_object.pyx.orig 2019-06-26 14:41:05.000000000 -0600
+++ src/sage/structure/sage_object.pyx 2019-06-27 11:33:54.126080113 -0600
--- src/sage/structure/sage_object.pyx.orig 2019-10-09 15:29:08.915640539 -0300
+++ src/sage/structure/sage_object.pyx 2019-10-09 15:29:13.715667581 -0300
@@ -665,7 +665,7 @@ cdef class SageObject:
try:
s = self._interface_init_(I)
@ -1040,9 +908,9 @@ diff -up src/sage/structure/sage_object.pyx.orig src/sage/structure/sage_object.
if c:
try:
diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
--- src/sage/symbolic/expression.pyx.orig 2019-06-26 14:41:05.000000000 -0600
+++ src/sage/symbolic/expression.pyx 2019-06-27 11:33:54.128080085 -0600
@@ -12960,7 +12960,7 @@ cdef class hold_class:
--- src/sage/symbolic/expression.pyx.orig 2019-10-09 15:29:08.917640550 -0300
+++ src/sage/symbolic/expression.pyx 2019-10-09 15:29:13.719667603 -0300
@@ -12916,7 +12916,7 @@ cdef class hold_class:
sage: SR(2)^5
32
"""
@ -1051,7 +919,7 @@ diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
def __exit__(self, *args):
"""
@@ -12973,7 +12973,7 @@ cdef class hold_class:
@@ -12929,7 +12929,7 @@ cdef class hold_class:
sage: SR(2)^5
32
"""
@ -1061,9 +929,9 @@ diff -up src/sage/symbolic/expression.pyx.orig src/sage/symbolic/expression.pyx
def start(self):
"""
diff -up src/setup.py.orig src/setup.py
--- src/setup.py.orig 2019-06-27 11:30:20.794201914 -0600
+++ src/setup.py 2019-06-27 11:33:54.128080085 -0600
@@ -232,7 +232,7 @@ class sage_build_cython(Command):
--- src/setup.py.orig 2019-10-09 15:28:16.478345141 -0300
+++ src/setup.py 2019-10-09 15:29:13.720667609 -0300
@@ -233,7 +233,7 @@ class sage_build_cython(Command):
cdivision=True,
embedsignature=True,
fast_getattr=True,