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.2-cp314-none-win_amd64.whl (9.0 MB view details)

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14

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

Uploaded CPython 3.14

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

Uploaded CPython 3.14macOS 12.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13

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

Uploaded CPython 3.13

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

Uploaded CPython 3.13macOS 12.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12

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

Uploaded CPython 3.12

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

Uploaded CPython 3.12macOS 12.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11

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

Uploaded CPython 3.11

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

Uploaded CPython 3.11macOS 12.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10

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

Uploaded CPython 3.10

mxlite_sdk-0.3.2-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.2-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.2-cp314-none-win_amd64.whl.

File metadata

  • Download URL: mxlite_sdk-0.3.2-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.2-cp314-none-win_amd64.whl
Algorithm Hash digest
SHA256 9a300a4745646d628454c76545047045ed3fddf8b2b173db42926ac9cd2be612
MD5 c1224dfe099dda6ab90656b2066637b3
BLAKE2b-256 7f4d157dfaf350743536ccc4a5d973f3005e8e90da130c404b221c85fb8a03aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp314-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 afdeb356441d9dd13b7ef536580000e40cc1e5d9f2b22cda5aea09ab7332f1e9
MD5 ef5857b37c123c4412bdde036b28731a
BLAKE2b-256 a1f6528acd421e64c14a32aa1381835c570736ae14f2a79c0746fc8ac6750981

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp314-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c15526ed7fce7be62a0433b157ba7679e4beffdf4300592559de5cf8aea96f71
MD5 c711a01d2bef8eea8c125afbb922ebba
BLAKE2b-256 52c33a7b4e14d447bede5a59fc187f679429f3cc00a377c910043a2b4bf88411

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp314-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 d0b09340762ab9bf7b62c6ad06c99579f773d3d543ef49308c57ce23170b0eaa
MD5 b9947f423c4caf1e5cb449416c4d4e41
BLAKE2b-256 d83f03911fbb38265d79905f1224fd9d6590859dc0fe747b93bdfd1a18c1af20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp314-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 b4cd11560e5d44268d4b032e4d40a64ce07e70225e2ab8684c2c72ce982b5c6e
MD5 d6454cb47e55ec39ef1b1fcf9f2e84d3
BLAKE2b-256 4526e800c17af40b915bef8518a4a13c0a0282d980bc327bf7c5f8222040139c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mxlite_sdk-0.3.2-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.2-cp313-none-win_amd64.whl
Algorithm Hash digest
SHA256 c7243623cb80cf4b422ce6cf2e5b88e20a40d7b71714abfe97fec08b55eca109
MD5 4c5fccd74f598c9d898f469f0279fa7e
BLAKE2b-256 04ad302004c8276ce452f06092ead8248149afd7248ebd50e6752e4eda8e175c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp313-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 48b1992009cc1f5c6a88bc701fe3010670037ca2b2a8f43d99267b5dc28c85bc
MD5 7d4c10d5f483d9946900db06ca828e87
BLAKE2b-256 5e2100449ffe32f3df4d7c9ae7e4e78666b7d9448174541213792498b0718476

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp313-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fbad3f7d56f1af2bb8ac754c6480323c39533e1e6594adb92df03e23f54fe641
MD5 1866908131793728be3f2ca776e8b651
BLAKE2b-256 5bc05ed3ccfae4019eec18d3deea81d7e9a88e750bbe5829e0334e6e6791f918

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp313-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 c17a2f26f1ca9718e76d9d1bd4f0e989254ac8bf23489cd963f41842363f29c1
MD5 9b0da7c52338a6a5e6f4ee562426f6cd
BLAKE2b-256 dc1411a689afdad9bea16b0ad575a1d6d0547345ede856a4f214952322271de8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp313-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 28a2524cbff8bdac6cd8f5bc8214d6c6e53a53dc5435abfa2a5403191aa025c8
MD5 62442283d891656c5aca94d8ea72a67f
BLAKE2b-256 dd93e1fe2232bb6fb7da4dca8667b61661130532753aea3af49a6009e264f264

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mxlite_sdk-0.3.2-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.2-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 8587e33e8430c0092c02f137da902e5e08ed1fba29154c8722c6afd16c2ca960
MD5 7c1379f10a20991dbd5205dd30920f9c
BLAKE2b-256 5e1441ff9b9ea38f1edda680dc310948c4b06ece9ee75a6f10af5fb08ab4fe6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp312-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0f47a3d3ec735a3400c1019a6a4d03e446b903797ac4bf22ca383f80afde6ad9
MD5 13641acc7928ad84891eb8d07a663d75
BLAKE2b-256 e624a67e37b35fc08872b5eda6db1f526794febabbb1616295f356a2965b0645

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp312-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 89cc3f46c2249236cf4222fa41af6ca51be9e7f16c768856afd2e8de87d69e68
MD5 c7758bdbbebaf6f92a1e36fea660bbc7
BLAKE2b-256 943ee57b60d748c56e718a949f951875dac5f97d9bc03737a573343dcdb8a4de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp312-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 18623467f092f1cfc37674f968b78e0b50bf4757790272b82145a9382ad8e5c5
MD5 cfa36825809952615f4bd8ce7b817bb7
BLAKE2b-256 7ebbfd2923ff54c5168374de5769b2b392f4542f8b1357fdf026b1d5a706e560

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp312-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 2e5baa3b48808370662eff3f0b607e99df06d4ca8d3fb93d0d0d4c7cc8344324
MD5 7ec21c1b4b48b29fc1c9f60714f6a48b
BLAKE2b-256 4ac76cba44401d8692019796a8f3e85da7a5ef201219abb02ad5a6ff767036f8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mxlite_sdk-0.3.2-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.2-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 d92763d7fbff780a47c7c36075a9094c14d41f0177d9555a939a838495fb4eda
MD5 93ca584bcd393c7e6e8a3dc9854568d0
BLAKE2b-256 6a98a18d32f6ac8eb6d18dbe82d75bd794fc20a88502e25168b5eee866282512

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp311-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5d677e8d82cea6a0829709aef5d1a168d6b18d2811727b64dbd2b2c519b11ff5
MD5 bd7f6327e71bfd5dff1c834080bde1e0
BLAKE2b-256 ac302e3344b643d0e67ad8cd838439f925bdeccb4092efbe98c5146b2d13b1fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp311-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 007ebcafdd3da0d3a5d56e27fe86e82b04b919b0fe49589c6107d84ba9588314
MD5 7179751ecc1e3d56355163720a1ee241
BLAKE2b-256 e84b5203479505ddd674d02335045e342e6cfaf7f266adfa4a513d1daf80cdd2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp311-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 f358ffb10cd77ef0988367ec3a1ee718af8eb23be71b02307fcd1c5fd228cfea
MD5 24b3e85310d8833b358f5ddccb0fdd83
BLAKE2b-256 0a3a8cf7bc566368302741d17e7ae1d6455621dff4ac5c99e51e258cf061f7be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp311-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 6c0b99ec8580a2460ead29830083a6bca6e5844559740508bfb101973814811f
MD5 c44abfe8274a4ff1e99612bca3f59449
BLAKE2b-256 e6cc412990939e2fea364637fb0a272b62763bbac21b56c0459217e6ab0e9327

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mxlite_sdk-0.3.2-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.2-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 e6ccb329f830a7fbbdd08522bd8bebc760e35047d4d1d8099efe12db853fbd81
MD5 88a4921891ac8c89bc2054dd4068fef9
BLAKE2b-256 da6d0e3026cf9719e8976b6a6cbba9b85fb0858fa64f1faa39beb2659ce22816

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp310-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8aba44257d83e0f0452e1bf6048a1f545599c42f084a514078356243b3cf15df
MD5 4aafda5a3a27d0d23ae1e74dc7749c15
BLAKE2b-256 a3519797259a90ef50202b9220fd678b206ba4b0ef63299cc68e749d1d95bf72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp310-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 899206d8eae4ddbcfb9b5b4c5a103c97e8a7d11ad68d4ff17a64b05f4b789f42
MD5 b6094719fb296c0b7724202f5da6e415
BLAKE2b-256 f8bcc378c1f450aecb21042136e802aa73167a19270ba0e6f4f199abee292d62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp310-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 da5737b2acd81497c87e729160688bc307675e0ccfe2f703d513119e32192864
MD5 6db2f76767ace1ca869f6445b132cb7b
BLAKE2b-256 13d77701b8745c682b9917363e9aa8a691f82dd340c96187433bfe5ce732ec4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.2-cp310-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 60fde719d5b40a4991ae602fd125913d849466862578551d97d08d4b19321cec
MD5 267f51817482e287392c11d46576e948
BLAKE2b-256 aa64a0b6cdef2c626a34d3f2e1f8259c02e2378ec90690a0dfded7769de4328c

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