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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14

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

Uploaded CPython 3.14

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

Uploaded CPython 3.14macOS 12.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13

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

Uploaded CPython 3.13

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

Uploaded CPython 3.13macOS 12.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12

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

Uploaded CPython 3.12

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

Uploaded CPython 3.12macOS 12.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11

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

Uploaded CPython 3.11

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

Uploaded CPython 3.11macOS 12.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10

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

Uploaded CPython 3.10

mxlite_sdk-0.3.0-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.0-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.0-cp314-none-win_amd64.whl.

File metadata

  • Download URL: mxlite_sdk-0.3.0-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.0-cp314-none-win_amd64.whl
Algorithm Hash digest
SHA256 3ea69df2a838c33ae1971b6460557fd17e1d90f5c4387936c25a917b821866b3
MD5 2bbc53f30bd6ec98ec35d7f6c6ee074e
BLAKE2b-256 c1c2526a2a1a0a6bef8c15a38bcea7026a46103fa6f7b5a01ece5828e134e758

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp314-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2073c11767e4f1f92b0b1788814bf40f7eb374614378d4ae1f97f5f4c1633aa3
MD5 5347fcb645fe2185581ecf1b59ca9ef9
BLAKE2b-256 4a1d37d46fed29ff7114f8455b61cbc6d106d5c088b8dcb458c7397e8b412c88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp314-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7c90668cf6b2dc4cbc0f5cc23fbf65d24b919ff1c57fc6c9147b7af2c3de7ba6
MD5 477fb9078c6e72e94cf5669d86a8c227
BLAKE2b-256 647ca6dcc3b39a3b679d3b301a7162729e713b5fefeae37695dd9b8fe3b46ba6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp314-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 88a1999c5aad87ae05483d011bd99b432a136d81be52c358e549f6a76b1a4018
MD5 a78eafbf3f9ec80ba48ea6c3dab90abe
BLAKE2b-256 2c937af35dbf6d8cc7f6e8bfc84102dffca6eb3e80e61b97791daf0d0f0fa271

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp314-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 bd910567a00a900b2931478b192a7dc13e947c25f79feb33e73bd3e730a8197a
MD5 e803ac088e3b9bfd3dbcfdf392c39e74
BLAKE2b-256 f6cab9a5411437164dc30c6a4474ff64c470f0bfee9579b2451ab853939a6a5e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mxlite_sdk-0.3.0-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.0-cp313-none-win_amd64.whl
Algorithm Hash digest
SHA256 45e3046bc23822684c880715a4775cd1f14f23dc81594042e72ed495682315af
MD5 e99dde93c54b042006927acf83ea551b
BLAKE2b-256 b44dd607b94df11bd1669dd0743a86ee3772e1a052b8632a703a07b919245e31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp313-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a77b5140495846659b2a988f82062cd25796b558838f433e831b6ac5c1e23078
MD5 fcf10348cd3246a430e295747183a88c
BLAKE2b-256 5b238198eb5079580c7e411eb39fb26b18f55eba8823f06313995be9431945d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp313-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 28e2155b18aebd9e8c49fe8cb211c23cd6ae35da3d8923acd3aa659c50741a2c
MD5 0b23411287e67230e85534ddfaa9b775
BLAKE2b-256 8688f5ece6371bc6f0c8238483affe787a327b09b3949fba25daeea986b5048f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp313-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 89a440ab06e3083362afcb194c19116467652509fb719f4beec99dd885e2df06
MD5 73bccc2c57ee95957bf1d1bc76706919
BLAKE2b-256 2a19debc63fcdb4ea172299b5395de7e5ef7a9fae8812b1fca450c9cef53abe4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp313-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 d98dbacb2186c0e7a09d483c459eaa6dbd58bc10b375117f8017bfec6d8eeccb
MD5 3251976acfe1f0a1512bfc56f67ad4dd
BLAKE2b-256 c4ff3886af738a2b1df1d01b719c3a2c9f00d9a68f6dad5da26d6867b8dc5cc0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mxlite_sdk-0.3.0-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.0-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 aa7f991b9db896a6d3120859c74c94d7e19684d4d7f0918cb07957b06ce8bb16
MD5 9bb8174f46a152dc589d1aaac54e8d39
BLAKE2b-256 0cd7a0042c405c21f20a7e785857e515726f73e8125e727a18b02dde88ee4b05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp312-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 213a7eea55802e0ba8c7735c446b9834769bd6b43893b6526ae7f5e9532a9b13
MD5 d2411a247cf96966b5ccbe636e57910b
BLAKE2b-256 f76024d16a3dce765dc62d77f8580233a21a0c6f54ea8f1e6f1cf502c657f7ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp312-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f300e517ad593b70f21d3923715d79c1118546a1c27e531acbdfeb8d57b80734
MD5 0440818493e37ec60e237c3ba5b4a9bd
BLAKE2b-256 8547c3efc1a47da1bfa4ea03ce5e2ea8e00c88e184467719f4df4ceb638efc7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp312-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 b36908232e0efbc3d0ba748ec990654a6fe0e1516f3bfb2aa8c1592512837bbe
MD5 025317f78610d783754ec3682bf781f8
BLAKE2b-256 e9d84130c46853b6de3c3d31a8621ba312d91173fe46a3ac2d87f6be2f57a6d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp312-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 cfeb0983990237c77bc16714aee26f86f9d97c5984a621bcf27791ce6b5fb1a4
MD5 29bc7bacc0370f3e599623f759f2c809
BLAKE2b-256 5b7c4eb401554dc563a7e97cd2648f27320349381a64a2a3b7506d963345f396

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mxlite_sdk-0.3.0-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.0-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 fdf9ee1d068adc4136950f74ab210a365e01fc9c3a7da556809893b979b73a67
MD5 a245b1426cdaaf4b9d29b53d8dacfb51
BLAKE2b-256 9de52b178551ee0dc72c52334474a0f0f750400a95e83c57821951c50f85fbd3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp311-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c631c8f0b3276d0f93ae19f1babacbfac49b7e2ad45a4dd9535985edbbfaeb3d
MD5 02ecd7e818327306a85a1f2cc23b35ed
BLAKE2b-256 73f8bab40a28995a749771be38cfa4d9fec9922f2c6df78008cccbbbf7559ac8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp311-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 85a2c7a8a4eb81aca1ac7db3506eeb5ad6e3d5a88fe69726f5e495b7f0caae48
MD5 2f2f82e3fc15648aa66e58ab6693c3f7
BLAKE2b-256 cfe2d26c3431a88ba70aa14f26b5940f8e9fc24d47ad96c461996f7f72294fb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp311-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 4a4f8720d5c7ad464f3adae26fae38592435036eb49a0e55fea3f13d86ad22be
MD5 227ee1d65170c9f250f22dfe4151f9d6
BLAKE2b-256 ef9a1a67479855dff0f7bbdaa40f535d1dc6ee2a99b42c00c46a2857d4bcf979

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp311-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 49e63a7a0291a5dd8b9f30d5da91ad4616d60ff489d97b99c60f7f60102cc7cb
MD5 3d1545314884ac5ca30a5adc591a491f
BLAKE2b-256 bdd346009b4e6080d7191322bb56c871b172bdce3f76100f13bb8658ec35d25f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mxlite_sdk-0.3.0-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.0-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 6f7c38a3fd64f327b24b1aa102e318db05ed741f5f88025c6214587e5c28b4f6
MD5 fabf8f4f1af70f19bcc7ea6240bd3b34
BLAKE2b-256 95a25189165c3c3cb23ec41d0796a4f1185989699942ef259222f048d5f2360e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp310-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b08659d28518851738565c7308972c51ddb3de94b278e785b65eb522175660ea
MD5 3ac96c58b3123f2410e23fde1a4224b9
BLAKE2b-256 fce6bc528b1fb97a37f5dae3a6457f2de08a2f90a1161d073495fad7362d18ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp310-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c7b72217a8ede6d340baddc11ec6889fed57d0e747c175ae5c283f8d59fd9347
MD5 ac117d658d32e611c13ae5125c146ce5
BLAKE2b-256 a5343d81004aab5e4c7b32e3303c34670da61ba2e397a8eb768c9f28d5c77bda

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp310-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 359e35dd4a5529f905f5ccf8b63dc7593c16c1964e4bbd45b2fc9f0d721709bd
MD5 4f1ce8f52e711c26847c0995c128c33f
BLAKE2b-256 a0d4e8e04751912f483cc830068e60ce1d59488ee747c008a3adf028f71aa2a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mxlite_sdk-0.3.0-cp310-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 37e7c3f145415aed9876509ac1742d5927c4271575a445ba28db93e2bb707426
MD5 3862d42fb93fef04ac0e9848f5533372
BLAKE2b-256 1b20f0673e56968658d66d2b17e5a00d94eff036b6ea3ae638f3c61bd1ac46e5

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