Skip to main content

A code library to marshal, unmarshal, visual and reverse visualization of BDX files

Project description

BDX Converter

一个免费开源的 BDX 文件解析器





BDX Converter

BDX Converter 是一个轻量化的实现,它提供了基本的 BDX 解析、反解析、JSON 可视化和反可视化功能。

快速上手

您可以利用 BDXConverter/Converter/Converter.py 中已提供的 4 个函数来完成 BDX 文件和 JSON 文件的相关操作。 使用下述命令快速安装吧

pip install BDXConverter

我们建议您在 Python 3.10及其以上版本使用他,3.7及其以下版本Python不再维护更新

项目依赖

本项目使用了 brotlinbtlib 总计 2 个第三方库,您可以通过在 终端 逐一地执行以下命令以安装它们。

pip install brotli
pip install nbtlib

项目特性

您可以从 BDXConverter/General/Pool.py 查看本项目已支持的全部 BDX 操作符。

实际上,我们将每一个操作符都转换为了 Python 下已被实例化的类,并且每个类都有以下属性。

class GeneralClass:
    """
    Any Operation eration of the BDX file will inherit this class
    """

    def __init__(self) -> None:
        self.operationNumber: int
        self.operationName: str

    def Marshal(self, writer: BytesIO) -> None:
        """
        Marshal GeneralClass into the writer
        """
        ...

    def UnMarshal(self, buffer: BytesIO) -> None:
        """
        Unmarshal the buffer(io object) into GeneralClass
        """
        ...

    def Loads(self, jsonDict: dict) -> None:
        """
        Convert jsonDict:dict into GeneralClass
        """
        ...

    def Dumps(self) -> dict:
        """
        Convert GeneralClass into basic dictionary
        """
        return self.__dict__

因此,通过 MarshalUnMarshal 函数,BDX Converter 可以自由的将 二进制数据 转换为 Python Class ,亦或转换回去。
LoadsDumps 分别支持了把只带有基本数据类型的字典转换为 Python Class 亦或转换回去的功能。

目前 BDX Converter 支持了所有的操作符(不含签名功能),包括但不限于 Operation 5, Operation 13, Operation 40Operation 41

待办列表

  • API 文档
  • 支持与 签名 有关的功能
  • 可以将得到的 Python Class 进一步解析为建筑结构
  • 可以自由地转换 BDX 和其他建筑文件格式

其他

本项目依照 MIT 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 Distribution

BDXConverter-1.0.11.tar.gz (12.8 kB view hashes)

Uploaded Source

Built Distribution

BDXConverter-1.0.11-py3-none-any.whl (32.8 kB view hashes)

Uploaded Python 3

Supported by

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