Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions mathics/builtin/atomic/numbers.py
Original file line number Diff line number Diff line change
Expand Up @@ -406,14 +406,12 @@ def eval_rational_with_base(self, n, b, evaluation):
return self.eval_with_base(n, b, evaluation)
else:
exp = log_n_b(py_n, py_b)
(head, tails) = convert_repeating_decimal(
head, tails = convert_repeating_decimal(
py_n.as_numer_denom()[0], py_n.as_numer_denom()[1], py_b
)

elements = []
for x in head:
if x != "0":
elements.append(Integer(int(x)))
elements = [Integer(int(x)) for x in head if x != "0"]

elements.append(from_python(tails))
list_expr = ListExpression(*elements)
return ListExpression(list_expr, Integer(exp))
Expand Down
6 changes: 3 additions & 3 deletions mathics/builtin/atomic/strings.py
Original file line number Diff line number Diff line change
Expand Up @@ -793,11 +793,11 @@ def eval(self, seq, evaluation: Evaluation):
# From `seq`, extract `inp`, `form`, and `head`.
py_seq = seq.get_sequence()
if len(py_seq) == 1:
(inp, form, head) = (py_seq[0], SymbolInputForm, None)
inp, form, head = (py_seq[0], SymbolInputForm, None)
elif len(py_seq) == 2:
(inp, form, head) = (py_seq[0], py_seq[1], None)
inp, form, head = (py_seq[0], py_seq[1], None)
elif len(py_seq) == 3:
(inp, form, head) = (py_seq[0], py_seq[1], py_seq[2])
inp, form, head = (py_seq[0], py_seq[1], py_seq[2])
else:
assert len(py_seq) > 3 # 0 case handled by apply_empty
evaluation.message(
Expand Down
2 changes: 1 addition & 1 deletion mathics/builtin/directories/directory_names.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ def eval_with_n(self, name, n, evaluation: Evaluation, options: dict):

result = py_name
for i in range(py_n):
(result, tmp) = osp.split(result)
result, tmp = osp.split(result)

return String(result)

Expand Down
2 changes: 1 addition & 1 deletion mathics/builtin/directories/directory_operations.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ def eval(self, dirs, evaluation):
if len(seq) != 2:
evaluation.message("RenameDirectory", "argr", "RenameDirectory", 2)
return
(dir1, dir2) = (s.to_python() for s in seq)
dir1, dir2 = (s.to_python() for s in seq)

if not (isinstance(dir1, str) and dir1[0] == dir1[-1] == '"'):
evaluation.message("RenameDirectory", "fstr", seq[0])
Expand Down
2 changes: 1 addition & 1 deletion mathics/builtin/files_io/filesystem.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ def eval(self, dirs, evaluation):
if len(seq) != 2:
evaluation.message("CopyDirectory", "argr", "CopyDirectory", 2)
return
(dir1, dir2) = (s.to_python() for s in seq)
dir1, dir2 = (s.to_python() for s in seq)

if not (isinstance(dir1, str) and dir1[0] == dir1[-1] == '"'):
evaluation.message("CopyDirectory", "fstr", seq[0])
Expand Down
10 changes: 4 additions & 6 deletions mathics/builtin/files_io/importexport.py
Original file line number Diff line number Diff line change
Expand Up @@ -1156,7 +1156,7 @@ def eval(self, formatname, function, posts, evaluation: Evaluation, options):

conditionals = {
elem.get_string_value(): expr
for (elem, expr) in (x.get_elements() for x in elements[:-1])
for elem, expr in (x.get_elements() for x in elements[:-1])
}
default = elements[-1]
posts = {}
Expand Down Expand Up @@ -1428,7 +1428,7 @@ def _import(findfile, determine_filetype, elements, evaluation, options, data=No
return SymbolFailed

# Load the importer
(conditionals, default_function, posts, importer_options) = IMPORTERS[filetype]
conditionals, default_function, posts, importer_options = IMPORTERS[filetype]

stream_options, custom_options = _importer_exporter_options(
importer_options.get("System`Options"), options, "System`Import", evaluation
Expand Down Expand Up @@ -1513,12 +1513,10 @@ def get_results(tmp_function, findfile):
evaluation.predetermined_out = current_predetermined_out
return None

# return {a.get_string_value() : b for (a,b) in map(lambda x:
# return {a.get_string_value() : b for a,b in map(lambda x:
# x.get_elements(), tmp)}
evaluation.predetermined_out = current_predetermined_out
return dict(
(a.get_string_value(), b) for (a, b) in [x.get_elements() for x in tmp]
)
return {a.get_string_value(): b for a, b in (x.get_elements() for x in tmp)}

# Perform the import
defaults = None
Expand Down
2 changes: 1 addition & 1 deletion mathics/builtin/manipulate.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@

# def new_callback(**kwargs):
# callback(
# **dict((name, parsers[name](value)) for (name, value) in kwargs.items())
# **dict((name, parsers[name](value)) for name, value in kwargs.items())
# )

# return new_callback
Expand Down
2 changes: 1 addition & 1 deletion mathics/builtin/numbers/algebra.py
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ def find_vars(e, e_sympy):
if lv_sympy is not None:
find_vars(lv, lv_sympy)
elif e.has_form("Power", 2):
(a, b) = e.elements # a^b
a, b = e.elements # a^b
a_sympy, b_sympy = a.to_sympy(), b.to_sympy()
if a_sympy is None or b_sympy is None:
return
Expand Down
12 changes: 5 additions & 7 deletions mathics/builtin/numbers/linalg.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,27 +171,25 @@ def eval(self, m, evaluation, options={}) -> Expression:
return

eigenvalues = list(sympy_matrix.eigenvals().items())
if all(v.is_complex for (v, _) in eigenvalues):
if all(v.is_complex for v, _ in eigenvalues):
# Try to sort the eigenvalues in the Mathematica convention: largest first.
try:
eigenvalues.sort(
key=lambda v: (abs(v[0]), -re(v[0]), -im(v[0])), reverse=True
)

eigenvalues = [
from_sympy(v) for (v, c) in eigenvalues for _ in range(c)
]
eigenvalues = [from_sympy(v) for v, c in eigenvalues for _ in range(c)]

return ListExpression(*eigenvalues)
except TypeError:
pass

eigenvalues = [(from_sympy(v), c) for (v, c) in eigenvalues]
eigenvalues = [(from_sympy(v), c) for v, c in eigenvalues]

# Sort the eigenvalues by their sort key
eigenvalues.sort(key=lambda v: v[0].get_sort_key())

eigenvalues = [v for (v, c) in eigenvalues for _ in range(c)]
eigenvalues = [v for v, c in eigenvalues for _ in range(c)]

return ListExpression(*eigenvalues)

Expand Down Expand Up @@ -244,7 +242,7 @@ def eval(self, m, evaluation: Evaluation):
return

# Try to sort the eigenvectors by their corresponding eigenvalues
if all(v.is_complex for (v, _, _) in eigenvects):
if all(v.is_complex for v, _, _ in eigenvects):
try:
eigenvects.sort(
key=lambda v: (abs(v[0]), -re(v[0]), -im(v[0])), reverse=True
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def eval(self, args, evaluation: Evaluation):
if not all(isinstance(i, int) or isinstance(i, complex) for i in py_args):
return SymbolFalse

if all(sympy.gcd(n, m) == 1 for (n, m) in combinations(py_args, 2)):
if all(sympy.gcd(n, m) == 1 for n, m in combinations(py_args, 2)):
return SymbolTrue
else:
return SymbolFalse
Expand Down
2 changes: 1 addition & 1 deletion mathics/core/convert/regex.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ def recurse(x: Expression, quantifiers=q) -> Optional[str]:
return REGEXP_FOR_SYMBOLS.get(expr)

if expr.has_form("CharacterRange", 2):
(start, stop) = (element.get_string_value() for element in expr.elements)
start, stop = (element.get_string_value() for element in expr.elements)
if all(x is not None and len(x) == 1 for x in (start, stop)):
return f"[{re.escape(start)}-{re.escape(stop)}]"

Expand Down
4 changes: 2 additions & 2 deletions mathics/eval/drawing/plot3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ def triangle(x1, y1, x2, y2, x3, y3, depth=0):
# important too. Use first strategy if 1 or 4 are undefined
# and strategy 2 if either 2 or 3 are undefined.
#
(x1, x2, x3, x4) = (
x1, x2, x3, x4 = (
xstart + value * (xstop - xstart)
for value in (
xi / numx,
Expand All @@ -229,7 +229,7 @@ def triangle(x1, y1, x2, y2, x3, y3, depth=0):
(xi + 1) / numx,
)
)
(y1, y2, y3, y4) = (
y1, y2, y3, y4 = (
ystart + value * (ystop - ystart)
for value in (
yi / numy,
Expand Down
2 changes: 1 addition & 1 deletion mathics/format/latex.py
Original file line number Diff line number Diff line change
Expand Up @@ -543,7 +543,7 @@ def graphics3dbox(self, elements=None, **options) -> str:
path = "--".join(["({0},{1},{2})".format(*coords) for coords in line])
boundbox_asy += "draw(({0}), {1});\n".format(path, pen)

(height, width) = (400, 400) # TODO: Proper size
height, width = (400, 400) # TODO: Proper size

# Background color
if self.background_color:
Expand Down
Loading