class_docstr: Symbol class is used to create symbolic variables.
  
  Explanation
  ===========
  
  Symbolic variables are placeholders for mathematical symbols that can represent numbers, constants, or any other mathematical entities and can be used in mathematical expressions and to perform symbolic computations.
  
  Assumptions:
  
  commutative = True
  positive = True
  real = True
  imaginary = True
  complex = True
  complete list of more assumptions- :ref:`predicates`
  
  You can override the default assumptions in the constructor.
  
  Examples
  ========
  
  >>> from sympy import Symbol
  >>> x = Symbol("x", positive=True)
  >>> x.is_positive
  True
  >>> x.is_negative
  False
  
  passing in greek letters:
  
  >>> from sympy import Symbol
  >>> alpha = Symbol('alpha')
  >>> alpha #doctest: +SKIP
  α
  
  Trailing digits are automatically treated like subscripts of what precedes them in the name.
  General format to add subscript to a symbol :
  ``<var_name> = Symbol('<symbol_name>_<subscript>')``
  
  >>> from sympy import Symbol
  >>> alpha_i = Symbol('alpha_i')
  >>> alpha_i #doctest: +SKIP
  αᵢ
  
  Parameters
  ==========
  
  AtomicExpr: variable name
  Boolean: Assumption with a boolean value(True or False)
class_docstr_tok: ["Symbol","class","is","used","to","create","symbolic","variables",".","Explanation","===========","Symbolic","variables","are","placeholders","for","mathematical","symbols","that","can","represent","numbers",",","constants",",","or","any","other","mathematical","entities","and","can","be","used","in","mathematical","expressions","and","to","perform","symbolic","computations",".","Assumptions",":","commutative","=","True","positive","=","True","real","=","True","imaginary","=","True","complex","=","True","complete","list","of","more","assumptions-",":","ref",":","`","predicates","`","You","can","override","the","default","assumptions","in","the","constructor",".","Examples","========",">",">",">","from","sympy","import","Symbol",">",">",">","x","=","Symbol","(","``","x","''",",","positive=True",")",">",">",">","x.is_positive","True",">",">",">","x.is_negative","False","passing","in","greek","letters",":",">",">",">","from","sympy","import","Symbol",">",">",">","alpha","=","Symbol","(","'alpha","'",")",">",">",">","alpha","#","doctest",":","+SKIP","\u03b1","Trailing","digits","are","automatically","treated","like","subscripts","of","what","precedes","them","in","the","name",".","General","format","to","add","subscript","to","a","symbol",":","``","<","var_name",">","=","Symbol","(","'","<","symbol_name",">","_","<","subscript",">","'",")","``",">",">",">","from","sympy","import","Symbol",">",">",">","alpha_i","=","Symbol","(","'alpha_i","'",")",">",">",">","alpha_i","#","doctest",":","+SKIP","\u03b1\u1d62","Parameters","==========","AtomicExpr",":","variable","name","Boolean",":","Assumption","with","a","boolean","value","(","True","or","False",")"]
docstr: Remove None, convert values to bool, check commutativity *in place*.
          
docstr_tok: ["Remove","None",",","convert","values","to","bool",",","check","commutativity","*","in","place","*","."]
code: def _sanitize(assumptions, obj=None):
      """Remove None, convert values to bool, check commutativity *in place*."""
  
      # be strict about commutativity: cannot be None
      is_commutative = fuzzy_bool(assumptions.get("commutative", True))
      if is_commutative is None:
          whose = "%s " % obj.__name__ if obj else ""
          raise ValueError(
              "%scommutativity must be True or False." % whose
          )
  
      # sanitize other assumptions so 1 -> True and 0 -> False
      for key in list(assumptions.keys()):
          v = assumptions[key]
          if v is None:
              assumptions.pop(key)
              continue
          assumptions[key] = bool(v)
  
imports: from __future__ import annotations
  from .assumptions import StdFactKB, _assume_defined
  from .basic import Basic, Atom
  from .cache import cacheit
  from .containers import Tuple
  from .expr import Expr, AtomicExpr
  from .function import AppliedUndef, FunctionClass
  from .kind import NumberKind, UndefinedKind
  from .logic import fuzzy_bool
  from .singleton import S
  from .sorting import ordered
  from .sympify import sympify
  from sympy.logic.boolalg import Boolean
  from sympy.utilities.iterables import sift, is_sequence
  from sympy.utilities.misc import filldedent
  import string
  import re
  import random
  from itertools import product
  from typing import Any
label_desc: Use image node_id 3 for calling the Symbol obj's underlying member method code with example usage: obj._sanitize(assumptions, obj) without return types