class_docstr: A bosonic operator that satisfies [a, Dagger(a)] == 1.
  
  Parameters
  ==========
  
  name : str
      A string that labels the bosonic mode.
  
  annihilation : bool
      A bool that indicates if the bosonic operator is an annihilation (True,
      default value) or creation operator (False)
  
  Examples
  ========
  
  >>> from sympy.physics.quantum import Dagger, Commutator
  >>> from sympy.physics.quantum.boson import BosonOp
  >>> a = BosonOp("a")
  >>> Commutator(a, Dagger(a)).doit()
  1
class_docstr_tok: ["A","bosonic","operator","that","satisfies","[","a",",","Dagger","(","a",")","]","==","1",".","Parameters","==========","name",":","str","A","string","that","labels","the","bosonic","mode",".","annihilation",":","bool","A","bool","that","indicates","if","the","bosonic","operator","is","an","annihilation","(","True",",","default","value",")","or","creation","operator","(","False",")","Examples","========",">",">",">","from","sympy.physics.quantum","import","Dagger",",","Commutator",">",">",">","from","sympy.physics.quantum.boson","import","BosonOp",">",">",">","a","=","BosonOp","(","``","a","''",")",">",">",">","Commutator","(","a",",","Dagger","(","a",")",")",".doit","(",")","1"]
code: def _eval_adjoint(self):
      return BosonOp(str(self.name), not self.is_annihilation)
  
imports: from sympy.core.mul import Mul
  from sympy.core.numbers import Integer
  from sympy.core.singleton import S
  from sympy.functions.elementary.complexes import conjugate
  from sympy.functions.elementary.exponential import exp
  from sympy.functions.elementary.miscellaneous import sqrt
  from sympy.physics.quantum import Operator
  from sympy.physics.quantum import HilbertSpace, FockSpace, Ket, Bra, IdentityOperator
  from sympy.functions.special.tensor_functions import KroneckerDelta
label_desc: Use image node_id 8 for calling the BosonOp obj's underlying member method code with example usage: obj._eval_adjoint() and returns: BosonOp