def METHOD_NAME():
    # type: () -> str
    """Returns the Scapy version from multiple methods
    :return: the Scapy version
    """
    # Method 0: from external packaging
    try:
        # possibly forced by external packaging
        return os.environ['SCAPY_VERSION']
    except KeyError:
        pass
    # Method 1: from the VERSION file, included in sdist and wheels
    version_file = os.path.join(_SCAPY_PKG_DIR, 'VERSION')
    try:
        # file generated when running sdist
        with open(version_file, 'r') as fdsec:
            tag = fdsec.read()
        return tag
    except FileNotFoundError:
        pass
    # Method 2: from the archive tag, exported when using git archives
    try:
        return _version_from_git_archive()
    except ValueError:
        pass
    # Method 3: from git itself, used when Scapy was cloned
    try:
        return _version_from_git_describe()
    except Exception:
        pass
    # Fallback
    try:
        # last resort, use the modification date of __init__.py
        d = datetime.datetime.utcfromtimestamp(os.path.getmtime(__file__))
        return d.strftime('%Y.%m.%d')
    except Exception:
        pass
    # all hope is lost
    return '0.0.0'