跳转到主要内容

基于AAS元模型生成不同的实现和模式。

项目描述

Continuous integration Test coverage PyPI - version PyPI - Python Version

Aas-core-codegen

  • 为不同的编程环境和模式生成代码

  • 以处理资产管理系统

  • 基于简化的Python元模型。

动机

元模型仍然处于频繁变动的阶段。然而,我们需要不同语言的SDK(C#、C++、C、Java、Golang、Erlang等)以及不同的模式(JSON模式、XSD、RDF等)。跟上变化很困难,耗时且容易出错,因为每个SDK和模式都需要独立审查。

为了使元模型、SDK和模式的整个开发周期更具可维护性,我们编写了一个代码和模式生成器。我们使用Python语言的子集编写元模型,解析它,并根据此元模型生成不同语言和模式的代码。

因此,我们可以轻松扩展到许多语言和模式。

以下是一个图解整个过程的图表

https://raw.githubusercontent.com/aas-core-works/aas-core-codegen/main/diagram.svg

关于稳定性的警告

虽然我们旨在使生成器的长期稳定性,但请注意,当前元模型的版本3候选版本2(V3RC2)变化太大,无法对短期稳定性做出任何明确声明。

例如,基本类型的集合尚未定义,而且关于这个集合的讨论正在进行中。同样,关于引用的定义以及我们如何处理它们也在进行讨论。

此外,序列化方法也尚未最终确定。例如,当前JSON模式不允许单遍序列化(也称为基于流的序列化)。我们正在UAG Verwaltungsschale讨论使用带有模型类型前缀的JSON元组,而不是JSON对象,但这项讨论还处于早期阶段。

只要V3RC2不稳定,生成的代码和模式都不足以用于任何严肃的应用(无论是实验性的还是生产性的)。

安装

单文件发布

请从GitHub发布页面下载并解压缩最新版本。

从PyPI

该工具也可在PyPI上找到。

创建虚拟环境

python -m venv venv-aas-core-codegen

激活它(在Windows上)

venv-venv-aas-core-codegen\Scripts\activate

或在Linux和OS X上

source venv-aas-core-codegen/bin/activate

在虚拟环境中安装工具

pip3 install aas-core-codegen

用法

将元模型和实现特定类和函数的代码片段写在某处。例如,以我们的test元模型为灵感来编写元模型和片段。

确保您在已安装生成器的虚拟环境中。或者,如果您使用的是二进制发布版,请确保发布版在您的路径中。

使用适当的目标调用生成器

aas-core-codegen \
    --model_path path/to/meta_model.py \
    --snippets_dir path/to/snippets \
    --output_dir path/to/output \
    --target csharp

--help

usage: aas-core-codegen [-h] --model_path MODEL_PATH --snippets_dir
                        SNIPPETS_DIR --output_dir OUTPUT_DIR --target
                        {csharp,jsonschema,rdf_shacl,xsd} [--version]

Generate different implementations and schemas based on an AAS meta-model.

optional arguments:
  -h, --help            show this help message and exit
  --model_path MODEL_PATH
                        path to the meta-model
  --snippets_dir SNIPPETS_DIR
                        path to the directory containing implementation-
                        specific code snippets
  --output_dir OUTPUT_DIR
                        path to the generated code
  --target {csharp,jsonschema,rdf_shacl,xsd}
                        target language or schema
  --version             show the current version and exit

版本控制

我们仍然不清楚如何对生成器进行版本控制。目前,我们使用带有0.0前缀的宽松增量版本控制(0.0.1、0.0.2等)。

变更日志可在CHANGELOG.rst中找到。

贡献

功能请求或错误报告总是非常受欢迎!

请快速查看问题部分,如果问题已存在,请创建新问题

代码贡献也受欢迎!请参阅CONTRIBUTING.rst以获取开发指南。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源分布

aas-core-codegen-0.0.15.tar.gz (217.0 kB 查看哈希值)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面