Skip to main content

Python SDK for mxlite

Project description

MXLite SDK

PyPI version Python Versions License: Apache-2.0

MXLite SDK 是 MXLite 的官方 Python SDK,为服务器部署和系统管理提供了全面的编程接口。该 SDK 封装了 MXD 服务的核心功能,使开发者能够通过简洁的 API 实现系统安装、网络配置、文件传输和远程命令执行等操作。

特性

  • 全异步 API 设计:支持高效的并发操作,同时提供同步接口以兼容不同的使用场景
  • 自动平台适配:自动检测并使用适合当前平台的二进制文件
  • 多平台支持:兼容 Linux、macOS 和 Windows 等主流操作系统
  • 内置 MXD 服务管理:可以自动启动、监控和关闭 MXD 服务
  • 远程 MXA 部署:通过 SSH 将 MXA 客户端部署到远程服务器,支持多种复杂的网络结构和模式(甚至支持堡垒机后的服务器的部署)
  • 全面的系统部署工具:提供从系统安装到网络配置的完整工作流
  • 代码类型提示:完善的类型注解支持,提高开发效率

安装

从 PyPI 安装

# 基本安装
pip install mxlite-sdk

# 包含远程部署功能的安装
pip install "mxlite-sdk[deploy]"

快速入门

mxlite-sdk 支持连接已启动的 mxd 服务,也支持后台直接运行一个 mxd 服务,默认为使用 MXDRunner 运行一个 mxd 服务并作为子进程使用

基本使用示例(内建服务)

import asyncio
from mxlite import MXLite

async def main():
    # 使用异步上下文管理器自动管理资源
    async with MXLite() as mxc:
        # 启动 MXD 服务,注意,程序会自动获取一个可用的端口,并在此端口提供服务
        mxc.start_mxd()
        
        # 获取主机列表
        hosts, status = await mxc.get_host_list()
        print(f"找到 {len(hosts.sessions)} 个主机")
        
        if hosts.sessions:
            # 在远程主机上执行命令
            host_id = hosts.sessions[0]  # 使用第一个主机
            result, status = await mxc.command_exec(host_id, "ls -la")
            task_id = result.task_id
            
            # 等待任务完成
            task_result = await mxc.until_task_complete(host_id, task_id)
            print(f"命令输出:\n{task_result.payload.payload.stdout}")

if __name__ == "__main__":
    asyncio.run(main())

连接到外部 MXD 服务

如果您已经有一个运行中的 MXD 服务,可以直接连接到它而不是启动新实例:

import asyncio
from mxlite import MXLite

async def main():
    # 创建连接到外部服务的客户端
    client = MXLite(
        host="server-ip-address",  # 外部服务器地址
        http_port=8080,           # MXD HTTP 端口
        token="your-token-here"   # 认证令牌
    )
    
    try:
        # 确保连接成功
        connected = await client.connect_mxd()
        if not connected:
            print("连接到 MXD 服务失败")
            return
        
        # 执行操作...
        hosts, status = await client.get_host_list()
        print(f"成功连接到 MXD 服务,发现 {len(hosts.sessions)} 个主机")
        
    finally:
        # 关闭客户端
        await client.close()

if __name__ == "__main__":
    asyncio.run(main())

使用高级配置启动 MXD

在部分情况下,您可能需要使用 Https、设置指定端口或预置设置一些安全性配置,您可以传入 MXLiteConfig 实例

import asyncio
from mxlite import MXLite, MXLiteConfig

async def main():
    # 创建配置对象
    config = MXLiteConfig(
        root_dir="/path/to/certificates",  # 证书文件所在目录
        http_port=8080,                    # HTTP 端口
        https_port=8443,                   # HTTPS 端口
        token="your-token",                # 认证令牌
        verbose=True                       # 启用详细日志
    )

    async with MXLite(config) as mxc:
        # 启动 MXD 服务,注意,程序会自动获取一个可用的端口,并在此端口提供服务
        mxc.start_mxd()
        
        # 获取主机列表
        hosts, status = await mxc.get_host_list()
        print(f"找到 {len(hosts.sessions)} 个主机")
        
        if hosts.sessions:
            # 在远程主机上执行命令
            host_id = hosts.sessions[0]  # 使用第一个主机
            result, status = await mxc.command_exec(host_id, "ls -la")
            task_id = result.task_id
            
            # 等待任务完成
            task_result = await mxc.until_task_complete(host_id, task_id)
            print(f"命令输出:\n{task_result.payload.payload.stdout}")

if __name__ == "__main__":
    asyncio.run(main())

使用MXADeployer部署MXA到远程服务器

考虑到部分用户的网络环境较为复杂,或存在已经安装好的系统,我们提供了一个 MXADeployer 类来帮助用户将 MXA 部署到远程服务器。MXADeployer 类封装了 SSH 连接、MXA 部署和运行的逻辑,简化了部署过程。目前支持三种连接模式:

  1. 自动发现模式:MXA自动扫描网络寻找MXD
  2. 直连模式(使用端口转发):MXA通过WebSocket连接到通过端口转发的MXD
  3. 直连模式(指定地址):MXA通过WebSocket直接连接到指定URL

注意:需要安装带deploy扩展的包 pip install "mxlite-sdk[deploy]"

自动发现模式部署示例

在自动发现模式下,MXA会自动扫描网络查找MXD服务,适用于在同一子网内运行MXD(部署服务器)和MXA(被部署服务器)的情况。

import asyncio
import logging
from mxlite import MXADeployer, MXLite

# 设置日志
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

async def deploy_discovery_mode(ssh_host, ssh_user, ssh_password):
    mxc = MXLite()
    mxc.start_mxd()
    mxd_port = mxc.config.http_port
    logger.info(f"MXD已启动, 监听端口: {mxd_port}")
    try:
        # 使用异步上下文管理器自动管理SSH连接
        async with MXADeployer(ssh_host, ssh_user, ssh_password) as deployer:
            # 部署MXA
            success = await deployer.deploy_mxa()
            if not success:
                print("MXA部署失败")
                return

            # 使用自动发现模式运行MXA (默认模式)
            success, _ = await deployer.systemd_run_mxa(discovery_mode=True)
            if success:
                print("MXA服务已启动,使用自动发现模式")
            else:
                print("MXA服务启动失败")
            
            # 等待连接建立
            host_list, _ = await mxc.get_host_list()
            max_attempts = 120  # 最多等待600秒
            attempts = 0
            
            while not host_list.sessions and attempts < max_attempts:
                attempts += 1
                logger.info(f"等待主机列表... (尝试 {attempts}/{max_attempts})")
                host_list, _ = await mxc.get_host_list()
                if host_list.sessions:
                    break
                await asyncio.sleep(5)
            
            if not host_list.sessions:
                logger.warning("等待超时, 未检测到连接的主机")
                return
                
            # 获取并显示主机信息
            host_id = host_list.sessions[0]
            logger.info(f"主机已连接, ID: {host_id}")
            host_info, _ = await mxc.get_host_info(host_id)
            logger.info(f"主机信息: {host_info}")
            
            # 在这里添加您的业务逻辑
            # 例如执行命令、传输文件等
            result, _ = await mxc.command_exec(host_id, "uname -a")
            task_id = result.task_id
            task_result = await mxc.until_task_complete(host_id, task_id)
            print(f"命令输出: {task_result.payload.payload.stdout}")
    except Exception as e:
        print(f"部署过程中出错: {e}")
    
if __name__ == "__main__":    
    asyncio.run(deploy_discovery_mode(
        ssh_host="192.168.1.100",  # 远程主机地址
        ssh_user="ubuntu",         # SSH用户名
        ssh_password="password"    # SSH密码
    ))

直连模式(使用端口转发)部署示例

在直连模式下,MXA会通过WebSocket直接连接到MXD。这种方式适用于MXD与MXA在不同网络,或者需要避免自动发现的情况。

import asyncio
import logging
from mxlite import MXLite, MXADeployer

# 设置日志级别
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

async def deploy_port_forward(ssh_host, ssh_user, ssh_password):
    # 创建本地MXD服务
    mxc = MXLite()
    mxc.start_mxd()
    mxd_port = mxc.config.http_port
    logger.info(f"MXD已启动, 监听端口: {mxd_port}")

    try:
        # 使用异步上下文管理器自动管理SSH连接
        async with MXADeployer(ssh_host, ssh_user, ssh_password) as deployer:
            # 部署MXA
            success = await deployer.deploy_mxa()
            if not success:
                logger.error("MXA部署失败")
                return

            # 使用直连模式运行MXA, 并建立端口转发
            success, forwarded_port = await deployer.systemd_run_mxa(
                discovery_mode=False,
                local_mxd_port=mxd_port
            )
            
            if not success or forwarded_port is None:
                logger.error("MXA服务启动失败")
                return
                
            logger.info(f"MXA服务已启动, 远程端口 {forwarded_port} 已转发到本地 {mxd_port}")
            
            # 等待连接建立
            host_list, _ = await mxc.get_host_list()
            max_attempts = 120  # 最多等待600秒
            attempts = 0
            
            while not host_list.sessions and attempts < max_attempts:
                attempts += 1
                logger.info(f"等待主机列表... (尝试 {attempts}/{max_attempts})")
                host_list, _ = await mxc.get_host_list()
                if host_list.sessions:
                    break
                await asyncio.sleep(5)
            
            if not host_list.sessions:
                logger.warning("等待超时, 未检测到连接的主机")
                return
                
            # 获取并显示主机信息
            host_id = host_list.sessions[0]
            logger.info(f"主机已连接, ID: {host_id}")
            host_info, _ = await mxc.get_host_info(host_id)
            logger.info(f"主机信息: {host_info}")
            
            # 在这里添加您的业务逻辑
            # 例如执行命令、传输文件等
            result, _ = await mxc.command_exec(host_id, "uname -a")
            task_id = result.task_id
            task_result = await mxc.until_task_complete(host_id, task_id)
            print(f"命令输出: {task_result.payload.payload.stdout}")
            
    finally:
        # 确保在任何情况下都会清理
        if 'deployer' in locals():
            await deployer.systemd_remove_mxa()
            logger.info("MXA服务已成功移除")

        # 关闭MXD服务
        await mxc.close()
        logger.info("MXD已停止")

if __name__ == "__main__":
    asyncio.run(deploy_port_forward(
        ssh_host="192.168.1.100",  # 远程主机地址
        ssh_user="ubuntu",         # SSH用户名
        ssh_password="password"    # SSH密码
    ))

直连模式(指定WebSocket URL)部署示例

当MXD服务器已经存在并可以从远程访问时,可以直接指定WebSocket URL。

import asyncio
import logging
from mxlite import MXADeployer, MXLite

# 设置日志
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

async def deploy_with_direct_url(ssh_host, ssh_user, ssh_password):
    ws_url = "ws://mxd-server.example.com:8080/ws"  # 指定的WebSocket URL
    
    mxc = MXLite()
    mxc.start_mxd()
    mxd_port = mxc.config.http_port
    logger.info(f"MXD已启动, 监听端口: {mxd_port}")

    try:
        # 使用异步上下文管理器自动管理SSH连接
        async with MXADeployer(ssh_host, ssh_user, ssh_password) as deployer:
            # 检测远程主机架构
            arch = await deployer.detect_arch()
            print(f"检测到架构: {arch}")
            
            # 部署MXA
            success = await deployer.deploy_mxa()
            if not success:
                print("MXA部署失败")
                return
                
            # 使用指定WebSocket URL运行MXA
            success, _ = await deployer.systemd_run_mxa(ws_url=ws_url)
            if success:
                print(f"MXA服务已启动,直接连接到: {ws_url}")
            else:
                print("MXA服务启动失败")
            
            # 等待连接建立
            host_list, _ = await mxc.get_host_list()
            max_attempts = 120  # 最多等待600秒
            attempts = 0
            
            while not host_list.sessions and attempts < max_attempts:
                attempts += 1
                logger.info(f"等待主机列表... (尝试 {attempts}/{max_attempts})")
                host_list, _ = await mxc.get_host_list()
                if host_list.sessions:
                    break
                await asyncio.sleep(5)
            
            if not host_list.sessions:
                logger.warning("等待超时, 未检测到连接的主机")
                return
                
            # 获取并显示主机信息
            host_id = host_list.sessions[0]
            logger.info(f"主机已连接, ID: {host_id}")
            host_info, _ = await mxc.get_host_info(host_id)
            logger.info(f"主机信息: {host_info}")
            
            # 在这里添加您的业务逻辑
            # 例如执行命令、传输文件等
            result, _ = await mxc.command_exec(host_id, "uname -a")
            task_id = result.task_id
            task_result = await mxc.until_task_complete(host_id, task_id)
            print(f"命令输出: {task_result.payload.payload.stdout}")

    except Exception as e:
        print(f"部署过程中出错: {e}")
    
if __name__ == "__main__":
    asyncio.run(deploy_with_direct_url(
        ssh_host="192.168.1.100",  # 远程主机地址
        ssh_user="ubuntu",         # SSH用户名
        ssh_password="password"    # SSH密码
    ))

API 文档

MXLiteConfig

配置类,用于设置 MXLite 客户端参数。

config = MXLiteConfig(
    root_dir=None,         # 根目录,一般为证书文件所在的父级目录,默认为当前目录
    http_port=None,        # HTTP 端口,None 则随机选择
    https_port=None,       # HTTPS 端口,None 则随机选择
    token=None,            # 认证令牌
    certificates_dir=None, # 证书目录
    verbose=False,         # 是否输出详细日志
    host="127.0.0.1"       # 主机地址
)

MXLite

MXLite 客户端类,提供 MXD 服务管理和 API 操作。

# 创建客户端
mxlite = MXLite(
    config=None,             # MXLiteConfig 配置对象
    host=None,               # 外部 MXD 服务主机地址
    http_port=None,          # 外部 MXD 服务 HTTP 端口
    token=None,              # 外部 MXD 服务认证令牌
    auto_connect=True        # 是否自动连接到外部 MXD 服务
)

# 启动和关闭 MXD 服务
mxlite.start_mxd()
mxlite.kill_mxd()

# 连接与断开外部 MXD 服务
mxlite.connect_mxd()
mxlite.disconnect_mxd()

# 主机管理
hosts, status = await mxlite.get_host_list()  # 获取主机列表
host_info, status = await mxlite.get_host_info(host_id)  # 获取主机信息
host_list_info, status = await mxlite.get_host_list_info()  # 获取主机列表详细信息

# 任务管理
task_result, status = await mxlite.get_task_result(host_id, task_id)  # 获取任务结果
result = await mxlite.until_task_complete(host_id, task_id, interval=1)  # 等待任务完成

# 命令执行
result, status = await mxlite.command_exec(host_id, command)  # 在远程主机执行命令

# 文件操作
await mxlite.upload_file(host_id, src_path, target_url)  # 上传文件
await mxlite.download_file(host_id, src_url, target_path)  # 下载文件
await mxlite.add_file_map(file, publish_name)  # 添加文件映射
await mxlite.add_dir_map(dirname, publish_name)  # 添加目录映射
await mxlite.remove_file_map(file)  # 移除文件映射
maps, _ = await mxlite.get_file_map()  # 获取文件映射列表

# 文件系统操作
files, status = await mxlite.lsdir(path)  # 列出目录内容
content, status = await mxlite.read_file(path, max_size)  # 读取文件内容
hash_value = await mxlite.get_file_hash(file, algorithm)  # 获取文件哈希值

# 资源释放
await mxlite.close()  # 异步方式关闭
mxlite.close_sync()  # 同步方式关闭

MXADeployer

MXA部署类,提供通过SSH将MXA部署到远程服务器的能力。

# 创建MXA部署器
deployer = MXADeployer(
    ssh_host,      # SSH主机地址
    ssh_user,      # SSH用户名
    ssh_password,  # SSH密码 (与ssh_key二选一)
    ssh_key=None   # SSH密钥文件路径 (与ssh_password二选一)
)

# 检测远程主机架构
arch = await deployer.detect_arch()

# 检测是否有sudo权限
has_sudo = await deployer.detect_sudo()

# 部署MXA到远程主机
success = await deployer.deploy_mxa()

# 使用systemd运行MXA - 支持三种模式
# 1. 自动发现模式
success, _ = await deployer.systemd_run_mxa(discovery_mode=True)

# 2. 直连模式(使用端口转发)
success, forwarded_port = await deployer.systemd_run_mxa(
    discovery_mode=False,  
    local_mxd_port=8080    # 本地MXD的HTTP端口
)

# 3. 直连模式(指定WebSocket URL)
success, _ = await deployer.systemd_run_mxa(
    ws_url="ws://mxd-server.example.com:8080/ws"  # 指定的WebSocket URL
)

# 停止并删除MXA服务
success = await deployer.systemd_remove_mxa()

# 管理端口转发
listener = await deployer.create_port_forward(local_port, remote_host, remote_port)
success = await deployer.stop_port_forward(local_port, remote_host, remote_port)
await deployer.stop_all_forwards()

# 关闭连接
await deployer.close()

在本地开发

构建平台特定的 wheel 包

# 准备二进制文件
# 在 mxlite/bin 目录中放置适当的可执行文件,例如:
# - mxd-linux-x86_64, mxa-linux-x86_64         # Linux x86_64
# - mxd-macos-arm64, mxa-macos-arm64           # macOS ARM64
# - mxd-windows-x86_64.exe, mxa-windows-x86_64.exe  # Windows x86_64

# 构建 wheel
python setup.py bdist_wheel

系统要求

  • Python 3.10+
  • 基本依赖包:
    • aiohttp >= 3.11.18
    • pydantic >= 2.10.0
  • 部署功能依赖(仅当使用 [deploy] 扩展时必需):
    • asyncssh >= 2.14.0

许可证

本项目采用 Apache 2.0 许可证。详情请参见 LICENSE 文件。

相关链接

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mxlite_sdk-0.3.4-cp314-none-win_amd64.whl (9.0 MB view details)

Uploaded CPython 3.14Windows x86-64

mxlite_sdk-0.3.4-cp314-none-manylinux2014_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.14

mxlite_sdk-0.3.4-cp314-none-manylinux2014_aarch64.whl (9.5 MB view details)

Uploaded CPython 3.14

mxlite_sdk-0.3.4-cp314-none-macosx_12_0_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.14macOS 12.0+ x86-64

mxlite_sdk-0.3.4-cp314-none-macosx_12_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.14macOS 12.0+ ARM64

mxlite_sdk-0.3.4-cp313-none-win_amd64.whl (9.0 MB view details)

Uploaded CPython 3.13Windows x86-64

mxlite_sdk-0.3.4-cp313-none-manylinux2014_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.13

mxlite_sdk-0.3.4-cp313-none-manylinux2014_aarch64.whl (9.5 MB view details)

Uploaded CPython 3.13

mxlite_sdk-0.3.4-cp313-none-macosx_12_0_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.13macOS 12.0+ x86-64

mxlite_sdk-0.3.4-cp313-none-macosx_12_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.13macOS 12.0+ ARM64

mxlite_sdk-0.3.4-cp312-none-win_amd64.whl (9.0 MB view details)

Uploaded CPython 3.12Windows x86-64

mxlite_sdk-0.3.4-cp312-none-manylinux2014_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.12

mxlite_sdk-0.3.4-cp312-none-manylinux2014_aarch64.whl (9.5 MB view details)

Uploaded CPython 3.12

mxlite_sdk-0.3.4-cp312-none-macosx_12_0_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.12macOS 12.0+ x86-64

mxlite_sdk-0.3.4-cp312-none-macosx_12_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.12macOS 12.0+ ARM64

mxlite_sdk-0.3.4-cp311-none-win_amd64.whl (9.0 MB view details)

Uploaded CPython 3.11Windows x86-64

mxlite_sdk-0.3.4-cp311-none-manylinux2014_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.11

mxlite_sdk-0.3.4-cp311-none-manylinux2014_aarch64.whl (9.5 MB view details)

Uploaded CPython 3.11

mxlite_sdk-0.3.4-cp311-none-macosx_12_0_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.11macOS 12.0+ x86-64

mxlite_sdk-0.3.4-cp311-none-macosx_12_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

mxlite_sdk-0.3.4-cp310-none-win_amd64.whl (9.0 MB view details)

Uploaded CPython 3.10Windows x86-64

mxlite_sdk-0.3.4-cp310-none-manylinux2014_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.10

mxlite_sdk-0.3.4-cp310-none-manylinux2014_aarch64.whl (9.5 MB view details)

Uploaded CPython 3.10

mxlite_sdk-0.3.4-cp310-none-macosx_12_0_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.10macOS 12.0+ x86-64

mxlite_sdk-0.3.4-cp310-none-macosx_12_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.10macOS 12.0+ ARM64

File details

Details for the file mxlite_sdk-0.3.4-cp314-none-win_amd64.whl.

File metadata

  • Download URL: mxlite_sdk-0.3.4-cp314-none-win_amd64.whl
  • Upload date:
  • Size: 9.0 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for mxlite_sdk-0.3.4-cp314-none-win_amd64.whl
Algorithm Hash digest
SHA256 1c3009b208656c9cf00ed9141fbfc6b7e05dbae0cdd717b7aac03b778f963643
MD5 d36116596941c5b90497abd130ae35cd
BLAKE2b-256 ec4fec622f8e916421fbcacb6778d70dedc111b6843f0ac541f180523d2f02c1

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp314-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp314-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c80d5813a95f9a0549b709ba28c89dd171ad9e351da7d004e428463eff012631
MD5 39b6e54b82956600b2d3fd9078551777
BLAKE2b-256 43e220153a44c86ebb07e35b1ea85c175a9c293609a1e4a549a6db6ecf8ac33c

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp314-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp314-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4e6cff600d194e5590291f3e7ef175752a49a1edc6c0bd6f9e4018392135a00e
MD5 d05e0b941762de7f0b875c2f03ef63ab
BLAKE2b-256 032871f85e65098637dcd3cad08345c2922829bddffa4cefa14e7262fa45d9d3

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp314-none-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp314-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 1be0386f7c2ce3d2dd581cda0af0405d369306ac5378af54f0dfc6f20538cc55
MD5 33f227f2732110a7f91593a07966e347
BLAKE2b-256 b8df1be6bf2fad85c6b27a7984de5192f33c6af7d39a5b5470062c026ddbf6cc

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp314-none-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp314-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 3cc3075c02ae13fff9fd53e6984a329520d150c036f67c5acd1c9c5e0cb0b7b3
MD5 2ac6ebc0a7d1d1e9dc4a6e915699281e
BLAKE2b-256 734ff1c4354918938967953b3cfa0cc71e1a3332f4a4bc45755f19aacb63fa2b

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp313-none-win_amd64.whl.

File metadata

  • Download URL: mxlite_sdk-0.3.4-cp313-none-win_amd64.whl
  • Upload date:
  • Size: 9.0 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for mxlite_sdk-0.3.4-cp313-none-win_amd64.whl
Algorithm Hash digest
SHA256 e50a51b147c15f50a8f60cb4de91f2ecede2cdbff8313a9fe34c82aa9f86633b
MD5 179432d82c72e5f1c3104e977b6c3c2d
BLAKE2b-256 d6f0a4980267be023b6d04bcb43140aa11cf4049586748481da312769039ccb6

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp313-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp313-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2837d6660abffed89cbb0420306ffc009ce6d118df226e610069e3bf10d4089d
MD5 3837abd504e7487cc57f6c5acb21069a
BLAKE2b-256 bb25831582d284e2097cb4c95001838f8593972c8849990e4caa352e9b5fc41d

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp313-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp313-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b6f9c52a72b5fa291d495fa6b8eb7fbfc30d3002584097ed3c2820ea8a768c52
MD5 fd9057a1a22938bab6ff6e156cae14e7
BLAKE2b-256 96fa230c31c6703bc41de82424079853a861a856ac807c34fb0941c66901fbb1

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp313-none-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp313-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 6e4bb78644bb2192a14964046190ed907ac5186bf77d54873d4f8d6a24a0123e
MD5 1035f88993e4268a6329444046597eb4
BLAKE2b-256 601ed0b3f864dde5f0fcb9c52261db342ff6b448915fd0c6859f498ed5054327

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp313-none-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp313-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 a20aa94200f85cce57a2b6d47e76d788cae55b60231cb37feb1d6a645ce12c28
MD5 7678a326e6eec06d707a69d74727c7ce
BLAKE2b-256 74c250d67b4417e57fd7b3a0d16575252fa57f5af95cdeedbe6106a5567cbff4

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp312-none-win_amd64.whl.

File metadata

  • Download URL: mxlite_sdk-0.3.4-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 9.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for mxlite_sdk-0.3.4-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 295c11c50dbcbe66dd800069a2d6069300fe699eba27c0619519118e8bf51f2c
MD5 03237e56ce655389718e2f5cda49c97f
BLAKE2b-256 f078a934c2424b5e46b102c3266782e8786727d27c3853e68bf2ecb90748753f

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp312-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp312-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cb01a1ca7be988943f1deaa6c095754fbf8e30d86ce390353dd386125e4ba771
MD5 e758a56c1dc90cfd10f11450c7139fd2
BLAKE2b-256 885d94454412536691dfadf1e3cdf503e0cd1ce54c221d8f068c3d04cfbeff76

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp312-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp312-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dd7b310b1a9ce8354660014fe79e03e7bfb8adcc0a9cbc63f33d4e123ea17014
MD5 333ca82f5c53b953ab9ff45fd0ca19fc
BLAKE2b-256 64f70ddd1d96a1c847ae7411d6b9f8bbce748b2d195c3019358cd1277eab1997

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp312-none-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp312-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 a9dd2df63b2f28d2845886440f96dae33594921ca356084e8b05f18a3e4c9bc2
MD5 50783e52d66f199d6b9c688b9bd91e44
BLAKE2b-256 ec58a871ba3d2da3e86ff0ef54f516c98ebdef6449034d80ab7bd82ddfc4218f

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp312-none-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp312-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 a1315b33be87c71ab4ccdbcff91bffee14049a8ea3b950beeb3ef7602c476e69
MD5 0629b6aa3c0a8a4449074dcc9ceadb53
BLAKE2b-256 7a5e78845493ed76af390ca294f1cdaf6e3c67b4303aba5ee4f3713068d6c204

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp311-none-win_amd64.whl.

File metadata

  • Download URL: mxlite_sdk-0.3.4-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 9.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for mxlite_sdk-0.3.4-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 6932bbeee33f059fe42d82e891fff1c50b322f53641964edb9fbd4536c712f2d
MD5 4bbc19d05c22ad8cdfbb974c33364011
BLAKE2b-256 b6be9683ee554a2ed03783d8419e1d6fda61106ce01dd459586978bc240fdecc

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp311-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp311-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6be9aba58f412dd737fa1935c7b39c12f13474258c033e1bcfc5c09702e88f77
MD5 cccf73531b6ed6e00691de1b344b03f1
BLAKE2b-256 0c907e444ba1784d2860d2f401272b8821a41a0a30c877eca492e185a547af32

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp311-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp311-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 657f50885c0282f196c0896ed59eff43bc931784278594b06f17c22dfd8ca820
MD5 d4cfbb6948342a40516091c1dbd162aa
BLAKE2b-256 a2265894aece5b185e046b5a847b2451b65a858203df1771ab84e5e9149f9314

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp311-none-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp311-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 a791cb316e1ff411028ad7d730f5376233c2927856dd5cf27b9b0841cdf7fdf9
MD5 cabb9b5d2b551fd0800bb1516a510536
BLAKE2b-256 cfbc55edf5366a59316b67712a02a1217a7f96a5665ede77086c039c15d93801

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp311-none-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp311-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 e550b9c339f6c6be710ac36ce215d3528c62698c56101177f2adb87befbbe9e8
MD5 f338edc765a3ab92715a995455d11523
BLAKE2b-256 40fa68bd7737b9952385d467fbecab16a328b363f4b383edf7ecc21400199878

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp310-none-win_amd64.whl.

File metadata

  • Download URL: mxlite_sdk-0.3.4-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 9.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for mxlite_sdk-0.3.4-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 76ae3b214bbf9413eae0b2c5d4ea3419b7844f97ad77853293a64192288f6451
MD5 8ca0000b11cd0dd412571b290336b9d4
BLAKE2b-256 bf5298b90297ca6c647bb7a36337263684d0c07635cd52367bc5467bfc9eb79b

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp310-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp310-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 01d0df9888fae2dfcb2915e0e308a0923d685489d112547351fe4fc65b1ff498
MD5 eda4876fa2f9b3b5164ab723d87b3c87
BLAKE2b-256 9906befea47783430f38e59a6a18ec9b958b9c11eced00037629bd6d31fb91ac

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp310-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp310-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5d5b510169486c26dccb09321c82740a49ba059abfb3926670613208f6294b73
MD5 52d7738e0d6c747e376291a6e59105f8
BLAKE2b-256 ce1e7589e3798f0a9877903855da5de5efa2c6d138c15b38eb8e5f3192e93ff4

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp310-none-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp310-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 77a780dfcf3e0c02e753bda6e02541f31e9986a7b44244d4884018290ab3b518
MD5 f8c683c1e128cbe1344dd5a17183b098
BLAKE2b-256 5a537ecf90afb0347c9257ff8d45bb8d5ae4fda2e8edfa591dccdd1a71c058a8

See more details on using hashes here.

File details

Details for the file mxlite_sdk-0.3.4-cp310-none-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for mxlite_sdk-0.3.4-cp310-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 8be6641dcd37ccf6c4ece7e90f33f9030f347d5e0760ba93c3b9633e2a11e961
MD5 b172f840d962ac9b4e7361e8201fede9
BLAKE2b-256 6b86faa067fb1183f69c25c4236c5a1525da3ae5dd2f44050fbd7bf6d38c7e0b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page