code: def bisect_key_left(self, key):
          
          _maxes = self._maxes
  
          if not _maxes:
              return 0
  
          pos = bisect_left(_maxes, key)
  
          if pos == len(_maxes):
              return self._len
  
          idx = bisect_left(self._keys[pos], key)
  
          return self._loc(pos, idx)
docs: Similar to the *bisect* module in the standard library, this returns an
          appropriate index to insert a value with a given *key*. If values with
          *key* are already present, the insertion point will be before (to the
          left of) any existing entries.