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
文件的相关操作。
项目依赖
本项目使用了 brotli
和 nbtlib
总计 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__
因此,通过 Marshal
和 UnMarshal
函数,BDX Converter
可以自由的将 二进制数据
转换为 Python Class
,亦或转换回去。
而 Loads
和 Dumps
分别支持了把只带有基本数据类型的字典转换为 Python Class
亦或转换回去的功能。
目前 BDX Converter
支持了所有的操作符(不含签名功能),包括但不限于 Operation 5, Operation 13, Operation 40
和 Operation 41
。
待办列表
-
API
文档 - 支持与
签名
有关的功能 - 可以将得到的
Python Class
进一步解析为建筑结构 - 可以自由地转换
BDX
和其他建筑文件格式
其他
本项目依照 MIT LICENSE
许可证进行许可和授权。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for BDXConverter-1.0.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28c0e06f37b47f8543ed3bb004c7746f8e1f3e1c0dcb13296781722d596e44a3 |
|
MD5 | de990ffabdda5fdfaeb6dd5c0c34d6f9 |
|
BLAKE2b-256 | 5e8ed614dc6646cb3242316122815b2b8800bac4745ff52177423a73c245c37d |