def __virtual__():
    required_boto_version = '2.4.0'
    # Boto < 2.4.0 GroupOrCIDR objects have different attributes than
    # Boto >= 2.4.0 GroupOrCIDR objects
    # Differences include no group_id attribute in Boto < 2.4.0 and returning
    # a groupId attribute when a GroupOrCIDR object authorizes an IP range
    # Support for Boto < 2.4.0 can be added if needed
    if not HAS_BOTO:
        return (False, 'The boto_secgroup module could not be loaded: boto libraries not found')
    elif _LooseVersion(boto.__version__) < _LooseVersion(required_boto_version):
        return (False, 'The boto_secgroup module could not be loaded: boto library v2.4.0 not found')
    else:
        __utils__['boto.assign_funcs'](__name__, 'ec2', pack=__salt__)
        return True
Only load if boto libraries exist and if boto libraries are greater than
dataset/ETHPy150Open saltstack/salt/salt/modules/boto_secgroup.py/__virtual__