# Path: compilertools/compilers/_core.py
# def get_compiler(compiler=None, current_compiler=False):
#     """Returns compiler class
# 
#     Parameters
#     ----------
#     compiler : str of CompilerBase subclass
#         Compiler Name or instance
#     current_compiler : bool
#         Compiler used to build
# 
#     Returns
#     -------
#     CompilerBase subclass instance
#         Compiler class instance."""
#     if isinstance(compiler, CompilerBase):
#         return compiler
# 
#     if compiler is None:
#         from distutils.ccompiler import get_default_compiler
# 
#         compiler = get_default_compiler()
# 
#     alias = CONFIG.get("compilers", {}).get(compiler, compiler)
# 
#     if alias == "unix":
#         alias = _which_unix_compiler(compiler)
# 
#     return import_class("compilers", alias, "Compiler", CompilerBase)(
#         current_compiler=current_compiler
#     )
# 
# Path: compilertools/_utils.py
# def always_str_list(list_or_str):
#     """Makes sure list_or_str is always a tuple or list
# 
#     Parameters
#     ----------
#     list_or_str: str or str iterable (tuple, list, ...)
#         Parameter to set as iterable if single str.
# 
#     Returns
#     -------
#     Iterable
#         Iterable equivalent to list_or_str."""
#     if isinstance(list_or_str, str):
#         return (list_or_str,)
#     return list_or_str


from compilertools.compilers import get_compiler
from compilertools._utils import always_str_list
    from compilertools._config import CONFIG
        from logging import getLogger
        import platform
    -------
    collections.OrderedDict
        Arguments
    """
    return get_compiler(compiler, current_compiler).compile_args(arch, current_machine)


def suffix_from_args(args, extension="", return_empty_suffixes=False):
    """Returns suffixes from args.

    Parameters
    ----------
    args : collections.OrderedDict
        Arguments.
    extension : str or list of str
        File extensions.
    return_empty_suffixes : bool
        If True, return '' suffixes.

    Returns
    -------
    list of str
        Suffixes"""
    suffixes = []
    for suffix in args:
        if extension:
            if suffix:
                for ext in always_str_list(extension):
                    suffixes.append(f".{suffix}{ext}")
            elif return_empty_suffixes:

# Path: compilertools/compilers/_core.py
# def get_compiler(compiler=None, current_compiler=False):
#     """Returns compiler class
# 
#     Parameters
#     ----------
#     compiler : str of CompilerBase subclass
#         Compiler Name or instance
#     current_compiler : bool
#         Compiler used to build
# 
#     Returns
#     -------
#     CompilerBase subclass instance
#         Compiler class instance."""
#     if isinstance(compiler, CompilerBase):
#         return compiler
# 
#     if compiler is None:
#         from distutils.ccompiler import get_default_compiler
# 
#         compiler = get_default_compiler()
# 
#     alias = CONFIG.get("compilers", {}).get(compiler, compiler)
# 
#     if alias == "unix":
#         alias = _which_unix_compiler(compiler)
# 
#     return import_class("compilers", alias, "Compiler", CompilerBase)(
#         current_compiler=current_compiler
#     )
# 
# Path: compilertools/_utils.py
# def always_str_list(list_or_str):
#     """Makes sure list_or_str is always a tuple or list
# 
#     Parameters
#     ----------
#     list_or_str: str or str iterable (tuple, list, ...)
#         Parameter to set as iterable if single str.
# 
#     Returns
#     -------
#     Iterable
#         Iterable equivalent to list_or_str."""
#     if isinstance(list_or_str, str):
#         return (list_or_str,)
#     return list_or_str


# Path: compilertools/_core.py
from compilertools.compilers import get_compiler
from compilertools._utils import always_str_list
    from compilertools._config import CONFIG
        from logging import getLogger
        import platform

    -------
    collections.OrderedDict
        Arguments
    """
    return get_compiler(compiler, current_compiler).compile_args(arch, current_machine)


def suffix_from_args(args, extension="", return_empty_suffixes=False):
    """Returns suffixes from args.

    Parameters
    ----------
    args : collections.OrderedDict
        Arguments.
    extension : str or list of str
        File extensions.
    return_empty_suffixes : bool
        If True, return '' suffixes.

    Returns
    -------
    list of str
        Suffixes"""
    suffixes = []
    for suffix in args:
        if extension:
            if suffix:
                for ext in always_str_list(extension):
                    suffixes.append(f".{suffix}{ext}")
            elif return_empty_suffixes:

                for ext in always_str_list(extension):