docs: def chmod_update(flags, modstring):
    """
    Modifies *flags* according to *modstring*.
    """
  
    mapping = {
      'r': (_stat.S_IRUSR, _stat.S_IRGRP, _stat.S_IROTH),
      'w': (_stat.S_IWUSR, _stat.S_IWGRP, _stat.S_IWOTH),
      'x': (_stat.S_IXUSR, _stat.S_IXGRP, _stat.S_IXOTH)
    }
  
    target, direction = 'a', None
    for c in modstring:
      if c in '+-':
        direction = c
        continue
      if c in 'ugoa':
        target = c
        direction = None  # Need a - or + after group specifier.
        continue
      if c in 'rwx' and direction in '+-':
        if target == 'a':
          mask = functools.reduce(operator.or_, mapping[c])
        else:
          mask = mapping[c]['ugo'.index(target)]
        if direction == '-':
          flags &= ~mask
        else:
          flags |= mask
        continue
      raise ValueError('invalid chmod: {!r}'.format(modstring))
  
    return flags