Opened 5 years ago

Last modified 3 years ago

#18390 new enhancement

cleanup variable factories

Reported by: vdelecroix Owned by:
Priority: major Milestone: sage-6.7
Component: algebra Keywords:
Cc: mforets Merged in:
Authors: Vincent Delecroix Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by vdelecroix)

Various parents need to create variable names (the polynomial rings, free algebras, groups, the symbolic ring, etc). We fusion all of them.

  1. the following will now raise TypeError
    sage: R.<a,b> = PolynomialRing(QQ, ('a', 'b'))
    sage: A.<x,y,z> = FreeAlgebra(QQ, 'x,y,z')
    
    (see the "polynomial ring" thread)
  1. The many versions are normalize_names are fused in sage.misc.variables.normalize_names
  1. Deprecations:
    • the var_array argument in PolynomialRing
    • the methods normalize_names, _certify_name of CategoryObject
  1. Problems with injection of reserved names
    sage: a = SR.var('or')   # this should work
    Traceback (most recent call last):
    ...
    ValueError: The name "or" is not a valid Python identifier.
    sage: QQ['or'].inject_variables()   # this should not
    Defining or
    
    note: should take care of '_', 'True', 'False', 'None' and builtins (see the "reserved name for variables" thread)

As a sided effect, we got some speedup in polynomial ring creation!

See also:

Change History (4)

comment:1 Changed 5 years ago by vdelecroix

  • Description modified (diff)
  • Summary changed from cleanup polynomial ring factory to cleanup variable factories

comment:2 Changed 5 years ago by vdelecroix

  • Description modified (diff)

comment:3 Changed 5 years ago by vdelecroix

  • Description modified (diff)

comment:4 Changed 3 years ago by mforets

  • Cc mforets added
Note: See TracTickets for help on using tickets.