Return an available default VISA wrapper as a string ('ni' or 'py').

    Use NI if the binary is found, else try to use pyvisa-py.
    If neither can be found, raise a ValueError.

def _get_default_wrapper():
    """Return an available default VISA wrapper as a string ('ni' or 'py').

    Use NI if the binary is found, else try to use pyvisa-py.
    If neither can be found, raise a ValueError.
    """

    from .ctwrapper import NIVisaLibrary
    ni_binary_found = bool(NIVisaLibrary.get_library_paths())
    if ni_binary_found:
        logger.debug('The NI implementation available')
        return 'ni'
    else:
        logger.debug('Did not find NI binary')

    try:
        get_wrapper_class('py')  # check for pyvisa-py availability
        logger.debug('pyvisa-py is available.')
        return 'py'
    except ValueError:
        logger.debug('Did not find pyvisa-py package')
    raise ValueError('Could not locate a VISA implementation. Install either the NI binary or pyvisa-py.')