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 mxlite.get_host_list()
        print(f"找到 {len(hosts.sessions)} 个主机")
        
        if hosts.sessions:
            # 在远程主机上执行命令
            host_id = hosts.sessions[0]  # 使用第一个主机
            result, status = await mxlite.command_exec(host_id, "ls -la")
            task_id = result.task_id
            
            # 等待任务完成
            task_result = await mxlite.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 mxlite.get_host_list()
        print(f"找到 {len(hosts.sessions)} 个主机")
        
        if hosts.sessions:
            # 在远程主机上执行命令
            host_id = hosts.sessions[0]  # 使用第一个主机
            result, status = await mxlite.command_exec(host_id, "ls -la")
            task_id = result.task_id
            
            # 等待任务完成
            task_result = await mxlite.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

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

async def deploy_discovery_mode(ssh_host, ssh_user, ssh_password):
    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)

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

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

async def deploy_with_direct_url(ssh_host, ssh_user, ssh_password):
    # MXD WebSocket地址
    ws_url = "ws://mxd-server.example.com:8080/ws"  # 指定的WebSocket URL
    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.1-cp314-none-win_amd64.whl (9.0 MB view details)

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14

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

Uploaded CPython 3.14

mxlite_sdk-0.3.1-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.1-cp314-none-macosx_12_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.14macOS 12.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13

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

Uploaded CPython 3.13

mxlite_sdk-0.3.1-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.1-cp313-none-macosx_12_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.13macOS 12.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12

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

Uploaded CPython 3.12

mxlite_sdk-0.3.1-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.1-cp312-none-macosx_12_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.12macOS 12.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11

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

Uploaded CPython 3.11

mxlite_sdk-0.3.1-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.1-cp311-none-macosx_12_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10

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

Uploaded CPython 3.10

mxlite_sdk-0.3.1-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.1-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.1-cp314-none-win_amd64.whl.

File metadata

  • Download URL: mxlite_sdk-0.3.1-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.1-cp314-none-win_amd64.whl
Algorithm Hash digest
SHA256 dd4285fc8192ed5ae547daf15aa42bd9a3d4aa3bcfeee564c217ddae715c65a6
MD5 085d331286e847a2db665005f851daec
BLAKE2b-256 db84ce67faee30c0a456ae412647c9fc0e5f4b95400cd20b1d1f7976bc71982a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp314-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9f3923b420854898cc650866d2296273f8cfd4e195bc0f6c07aaf7afd4aef59f
MD5 83c82e663483b1a946b4a61f294708f9
BLAKE2b-256 33c5af635cfaa56e7d0c2f53527860e77630bd669c24d594c7cfbb35dbd8c017

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp314-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 60c4c074d03852b907ef6e855d7638014cf7c85616fc9d783ae3d7bd01ddb517
MD5 c59184a1b37b7dccc3426340837e75a0
BLAKE2b-256 bea9a636412b5f4c2e4c5d501021c0e2c287ad6f337aa734cd466af1232f464c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp314-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 448c955f16fb2a16d51884cbcc468f2305343e144f66515cf91b10958d5faa23
MD5 7b1bd30bafe5042c7404b8675a46d037
BLAKE2b-256 410e164eda29a8855b57f235c647148e26a3def69e52af65d90feb89e0d79d7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp314-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 e0e915d2b6cd376ac6186951625c25c1c6f418e88ffb7f4630d57fef23be4c01
MD5 77d421450246ffa624e441f08e853446
BLAKE2b-256 425a7aa252373de6b50349845883f83d646fb6b23a60c79e3ae26092885946af

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mxlite_sdk-0.3.1-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.1-cp313-none-win_amd64.whl
Algorithm Hash digest
SHA256 fe9154ecbce9af8630139f81161ee5e51d910d740e3edb68c8b008f9014612b6
MD5 16b26a39c410e3a4100219e08e3c3a46
BLAKE2b-256 8429c87b41febf9b5f92b618dcc433f8196b65579c6e34a21afd60faec18efff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp313-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b0967d9a595b0abf3ee76aef68a6fa4ae9de2c4e699571637c9b9ee7a3913a46
MD5 bdac8349ae5f8b9fbaf189a67a65fbc5
BLAKE2b-256 07655a209ebeffc1c0852f41b4db68635b92744517641a8bf5bc0feac7f415c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp313-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6e3ce52b983b70899b2f8faa40b60583b7451b71e6bbb66a8c5935214d5e2ace
MD5 4b58f5a49ae04196e7d623b5493a2606
BLAKE2b-256 ceb65234c7ba4fc54a6990ea2b1a0901212aaa31088a02961c38d0f7f0704e6b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp313-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 ce355b5fdf47407db897f4db4871f1b8974b2131c07a89f626e6a4114ae57598
MD5 aa9588b28d9cd9390ddff6301fdf60ed
BLAKE2b-256 e60f85147cacad649aa9a0b1c0e31d3251dd8efa0e500679bb48d6a59b9e3b18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp313-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 1d38346cc694a66c564fdda77dc5eb444524b8acc54f018a635dcd01f3962f53
MD5 2d5cfb22055fae6b4f926c916802299a
BLAKE2b-256 9db409660ad146c9b715992e57bfcc4841127eb243e78fa93883e4b0907df3d9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mxlite_sdk-0.3.1-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.1-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 786d183442065f54ed629accc4d1f3b5a288c296afbfb777cd287e7acc2433a7
MD5 9c669d54a6284a682825d29ae2b83f74
BLAKE2b-256 363a98248c40e53e03d7f0c68d48bd67fdc3c56e71decaf8fbf0a44c1b505f18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp312-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fef2cc720dc4bb50f254a762f7680d03367c3dfa637170f83e56577afd46fee4
MD5 dac6616f9a68e1919629e97f3756b6a1
BLAKE2b-256 a56818acc3f386a753cbcb486bfa330ef394e451e45a222b2c70ef3b5b2af1c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp312-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1b30516cfcb9b2e736485c2ffdfdc730111224f32b4da9f1f6736a80e8918e8c
MD5 5d4fc7145d396a09907b95d9118121bd
BLAKE2b-256 3e426aa94570d53aae58f40bffc76c5e015cd0b1727e879f8cbc1ade778d2071

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp312-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 17d89ee25303994b5981c12b74f16e38ce361784c3943a144cc35b854af25d5d
MD5 db927582eedcc2e2b3d209ad50401bc3
BLAKE2b-256 bdbac632ca3d461b5151c126496b8a19c88ca6fee06b4ba049bec90e2c3090d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp312-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 1afe4c0927286fcff6f6ae7c3f7bac03b7bd7f3ec46a521735048e4d3115ba8a
MD5 59229b0bc711e7d49c4f4cfe461fa171
BLAKE2b-256 80eccc27fec78559ee591630473cc847eb9fd688b7b86991b9523a4cd4aa1182

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mxlite_sdk-0.3.1-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.1-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 0f17edf5d09e0917589004dd0943e629d547315414c6ff058e014ae8e584906b
MD5 a9a2f17f9ac3b24d4eb789541a5d021d
BLAKE2b-256 e6b06e261c4b7ea8a4a7e6fe8f6c6ddef27b8412d46354932f8440520851277c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp311-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b4f0b4bc5ca98e19b36e8d38b134ef27706413dbaa77bf9d8716a0ee3f0eb69b
MD5 b6abcf1333325520b1d8467218ba9122
BLAKE2b-256 8bf63054da3241f11545b65f5588009081b0941d9d9f5bd1a4ddba98f7f8fa16

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp311-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f3b0a1d61660b45941294ced8c37ecf17094334cbdbf8e4c993878499d329533
MD5 fdf77a11a062fc1aa994969e6b0e67dc
BLAKE2b-256 e813095607970e98fb7cac62caf455d6f095f8022a4ec54da80929a3fe75863c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp311-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 adb68074630aa6a1d441f8370d6515f2618aa66f862d054ab52f3e700606cdd2
MD5 43f9e6626c9f3c12c3dc73165066d9fc
BLAKE2b-256 b79b2121ac5f1585cab5c81cfb249d94276502a56d519734bda3436ddce74685

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp311-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 aeb55e5e8eeabba0cf11e993ec4ad7f8a3cadb05985399ab06da3a566300b15d
MD5 fdc4b7a6b1d88178c7156de3700e49d6
BLAKE2b-256 de5e2faf1dc1d348734fff1a862032a2f0315a8cb27a0230936bf01da1f7335c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mxlite_sdk-0.3.1-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.1-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 37f23dd99ef580090098cc6dfb401c5d1010a3fbf1b6ed6237ed23b615dc23ef
MD5 2eba54f1fff09ec40c18a511e8e8d0f8
BLAKE2b-256 1f10d63aca34ad41ac78f27546db03734fed1063036898f3c3132503ac279f2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp310-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b6ffc83249d7a2d3fab89c0b9ec6a08b64f6e6ec78589f43f262711ad08ea807
MD5 adbdfa50973821a032bdd1542bcdd7c6
BLAKE2b-256 1e7895fff33a4f797c03980efbce56506af77dddc4d5fc88bbd18ad7d364d262

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp310-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8f1aef6c0bbd41caa9d6c27e1508aa659148039789d801fa826df9715b1fc549
MD5 3b10c1a37ed2999a237ab70ac6121636
BLAKE2b-256 b6f854c3e136f533aa76e941d7aec7f20922a527c3eaaa16e5b3b67ec6f9f679

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp310-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 caa7870b02ceaf50e69ebdb2837e1becdbcec3724cca33bacd55c056075b1e1f
MD5 8712ab676051e470ec37436be0a0d0b1
BLAKE2b-256 4b98b8adf17b81259998ec51cade04ce2e3995b0ec896496e0e88100053bd0d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.1-cp310-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 f7f2887475e8a4dc323f39de02340b7c844e3c13efa21bf7e7b7f143796918bc
MD5 8802713abfea90c0163542eec645e196
BLAKE2b-256 aab9bc7c4fd203f16fc6b508e81ff95bc45d1dc0e35515e907472027e95ca372

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