#!/usr/bin/env python

"""
Copyright (c) 2006-2024 sqlmap developers (https://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""

# 导入所需的系统模块和时间模块
import sys
import time

# 获取当前Python版本号(如"3.8.0")
PYVERSION = sys.version.split()[0]

# 检查Python版本是否低于2.6
# 如果是,则输出错误信息并退出程序
# 错误信息包含当前时间和检测到的Python版本
if PYVERSION < "2.6":
    sys.exit("[%s] [CRITICAL] incompatible Python version detected ('%s'). To successfully run sqlmap you'll have to use version 2.6, 2.7 or 3.x (visit 'https://www.python.org/downloads/')" % (time.strftime("%X"), PYVERSION))

# 初始化错误列表
errors = []
# 定义需要检查的核心扩展模块元组
extensions = ("bz2", "gzip", "pyexpat", "ssl", "sqlite3", "zlib")
# 遍历所有需要的扩展模块
for _ in extensions:
    try:
        # 尝试导入每个扩展模块
        __import__(_)
    except ImportError:
        # 如果导入失败,将该模块名添加到错误列表中
        errors.append(_)

# 如果存在任何缺失的扩展模块
if errors:
    # 构建错误信息,包含:
    # 1. 当前时间
    # 2. 所有缺失的模块名称(以逗号分隔)
    errMsg = "[%s] [CRITICAL] missing one or more core extensions (%s) " % (time.strftime("%X"), ", ".join("'%s'" % _ for _ in errors))
    # 补充说明可能的原因:Python安装时缺少相应的开发包
    errMsg += "most likely because current version of Python has been "
    errMsg += "built without appropriate dev packages"
    # 输出错误信息并退出程序
    sys.exit(errMsg)
