class_docstr: A coordinate symbol/base scalar.
  
  Ideally, users should not instantiate this class.
class_docstr_tok: ["A","coordinate","symbol\/base","scalar",".","Ideally",",","users","should","not","instantiate","this","class","."]
code: def __new__(cls, index, system, pretty_str=None, latex_str=None):
      from sympy.vector.coordsysrect import CoordSys3D
  
      if pretty_str is None:
          pretty_str = "x{}".format(index)
      elif isinstance(pretty_str, Symbol):
          pretty_str = pretty_str.name
      if latex_str is None:
          latex_str = "x_{}".format(index)
      elif isinstance(latex_str, Symbol):
          latex_str = latex_str.name
  
      index = _sympify(index)
      system = _sympify(system)
      obj = super().__new__(cls, index, system)
      if not isinstance(system, CoordSys3D):
          raise TypeError("system should be a CoordSys3D")
      if index not in range(0, 3):
          raise ValueError("Invalid index specified.")
      # The _id is used for equating purposes, and for hashing
      obj._id = (index, system)
      obj._name = obj.name = (
          system._name + "." + system._variable_names[index]
      )
      obj._pretty_form = "" + pretty_str
      obj._latex_form = latex_str
      obj._system = system
  
      return obj
  
file_path: sympy/sympy/vector/scalar.py
imports: from sympy.core import AtomicExpr, Symbol, S
  from sympy.core.sympify import _sympify
  from sympy.printing.pretty.stringpict import prettyForm
  from sympy.printing.precedence import PRECEDENCE
label_desc: Use image node_id 1 for calling the BaseScalar obj's underlying member method code with example usage: obj.__new__(cls, index, system, pretty_str, latex_str) and returns: obj