Source code for rez.utils.base26

# SPDX-License-Identifier: Apache-2.0
# Copyright Contributors to the Rez Project


import errno
import os
import os.path
import re

from rez.utils.filesystem import find_matching_symlink


[docs]def get_next_base26(prev=None): """Increment letter-based IDs. Generates IDs like ['a', 'b', ..., 'z', 'aa', ab', ..., 'az', 'ba', ...] Returns: str: Next base-26 ID. """ if not prev: return 'a' r = re.compile("^[a-z]*$") if not r.match(prev): raise ValueError("Invalid base26") if not prev.endswith('z'): return prev[:-1] + chr(ord(prev[-1]) + 1) return get_next_base26(prev[:-1]) + 'a'