Skip to content

Commit

Permalink
Trac #29797: sage.misc.defaults.variable_names return tuple in all cases
Browse files Browse the repository at this point in the history
sage.misc.defaults.variable_names and latex_variable_names return tuple
if the number of variable names requested is bigger than 1 or 0 and a
list if it's 1. This ticket fixes that.

URL: https://trac.sagemath.org/29797
Reported by: heluani
Ticket author(s): Reimundo Heluani
Reviewer(s): Travis Scrimshaw
  • Loading branch information
Release Manager committed Jun 26, 2020
2 parents ac3f40b + 725d4b5 commit de57048
Showing 1 changed file with 48 additions and 2 deletions.
50 changes: 48 additions & 2 deletions src/sage/misc/defaults.py
Expand Up @@ -25,19 +25,65 @@


def variable_names(n, name=None):
r"""
Converts a root string into a tuple of variable names by adding
numbers in sequence.
INPUT:
- ``n`` a non-negative Integer; the number of variable names to
output
- ``names`` a string (default: ``None``); the root of the variable
name.
EXAMPLES::
sage: from sage.misc.defaults import variable_names
sage: variable_names(0)
()
sage: variable_names(1)
('x',)
sage: variable_names(1,'alpha')
('alpha',)
sage: variable_names(2,'alpha')
('alpha0', 'alpha1')
"""
if name is None:
name = var_name
n = int(n)
if n == 1:
return [name]
return (name,)
return tuple(['%s%s'%(name,i) for i in range(n)])

def latex_variable_names(n, name=None):
r"""
Converts a root string into a tuple of variable names by adding
numbers in sequence.
INPUT:
- ``n`` a non-negative Integer; the number of variable names to
output
- ``names`` a string (default: ``None``); the root of the variable
name.
EXAMPLES::
sage: from sage.misc.defaults import latex_variable_names
sage: latex_variable_names(0)
()
sage: latex_variable_names(1,'a')
('a',)
sage: latex_variable_names(3,beta)
('beta_{0}', 'beta_{1}', 'beta_{2}')
sage: latex_variable_names(3,r'\beta')
('\\beta_{0}', '\\beta_{1}', '\\beta_{2}')
"""
if name is None:
name = var_name
n = int(n)
if n == 1:
return [name]
return (name,)
v = tuple(['%s_{%s}'%(name,i) for i in range(n)])
return v

Expand Down

0 comments on commit de57048

Please sign in to comment.