docstr: Enforce base ** min <= value <= base ** max
docstr_tok: ["Enforce","base","*","*","min","<","=","value","<","=","base","*","*","max"]
code: def _validate_max(self, proposal):
      """Enforce base ** min <= value <= base ** max"""
      max = proposal["value"]
      if max < self.min:
          raise TraitError("setting max < min")
      if self.base**max < self.value:
          self.value = self.base**max
      return max
  
imports: from traitlets import Instance, Unicode, CFloat, Bool, CaselessStrEnum, Tuple, TraitError, validate, default
  from .widget_description import DescriptionWidget
  from .trait_types import InstanceDict, NumberFormat
  from .valuewidget import ValueWidget
  from .widget import register, widget_serialization
  from .widget_core import CoreWidget
  from .widget_int import ProgressStyle, SliderStyle
label_desc: Use image node_id 3 for calling the _BoundedLogFloat obj's underlying member method code with example usage: obj._validate_max(proposal) and returns: max