class_docstr: Base class of all stats
docstr: Return a set of all non-computed aesthetics for this stat.
  
  stats should not override this method.
docstr_tok: ["Return","a","set","of","all","non-computed","aesthetics","for","this","stat",".","stats","should","not","override","this","method","."]
code: def aesthetics(cls) -> set[str]:
      """
      Return a set of all non-computed aesthetics for this stat.
  
      stats should not override this method.
      """
      aesthetics = cls.REQUIRED_AES.copy()
      calculated = aes(**cls.DEFAULT_AES)._calculated
      for ae in set(cls.DEFAULT_AES) - set(calculated):
          aesthetics.add(ae)
      return aesthetics
  
imports: from __future__ import annotations
  import typing
  from copy import deepcopy
  import pandas
  from .._utils import check_required_aesthetics, copy_keys, data_mapping_as_kwargs, groupby_apply, remove_missing, uniquecols
  from .._utils.registry import Register, Registry
  from ..exceptions import PlotnineError
  from ..layer import layer
  from ..mapping import aes
  from abc import ABC
label_desc: Use image node_id 4 for calling the stat obj's underlying member method code with example usage: obj.aesthetics(cls) and returns: aesthetics