Skip to main content

解析PowerDesigner的数据库设计pdm文件,用于模板代码生成

Project description

pdmparse

pdmparse 是一个用于解析 PowerDesigner 的数据库设计 PDM 文件并生成模板代码的工具。它允许开发者通过读取 PDM 文件中的表结构、字段、关系等信息,自动生成符合特定模板的代码。

功能概述

  • 解析 PDM 文件:读取 PowerDesigner 导出的 PDM 文件,提取表结构、字段、外键关系、图表信息等。
  • 模板代码生成:基于解析的数据,使用 Jinja2 模板引擎生成目标代码(如 Flask API 模型)。
  • 灵活的过滤和重命名:支持通过自定义函数对表进行过滤和重命名。

主要模块

test.py

test.py 是一个测试脚本,展示了如何使用 pdmparse 库的功能。

主要功能

  1. 生成模型代码

    • 使用 PdmParse 类解析 PDM 文件。
    • 应用表过滤函数,仅处理特定图表中的表。
    • 使用自定义重命名函数为每个表生成输出文件名。
    • 通过 Jinja2 模板生成目标代码。
  2. 打印读取内容

    • 使用 read 函数直接读取 PDM 文件中的表信息。
    • 打印每个表的详细信息,包括字段、外键关系、图表等。

使用示例

以下是如何使用 test.py 脚本的示例:

  1. 生成模型代码
    from pdmparse.api import PdmParse
    from pdmparse.parsers import read
    
    def table_filter_func(table):
        """
        表过滤函数:仅处理属于 '服务系统' 图表的表。
        """
        return len([diagram for diagram in table.diagrams if diagram.name == '服务系统']) > 0
    
    def rename(table):
        """
        自定义重命名函数:为每个表生成输出文件名。
        """
        f_name = '%s.py' % (table.code.lower())
        print(f_name)
        return f_name
    
    # 初始化 PdmParse 对象
    api = PdmParse(r'C:\Users\china\OneDrive\Dev\pdm\lnwork_open.pdm', 'templates', __filters__)
    
    # 生成模板文件
    api.gen_template_file(
        'output', 
        'flask_api.jinja2',
        table_filter_func, 
        rename, 
        **{'app_name': 'app_name', 'package_name': 'package_name'}
    )
    

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

pdmparse-1.0.3.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pdmparse-1.0.3-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file pdmparse-1.0.3.tar.gz.

File metadata

  • Download URL: pdmparse-1.0.3.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.8

File hashes

Hashes for pdmparse-1.0.3.tar.gz
Algorithm Hash digest
SHA256 565bb5c903c67d0370c32208d247491f5af399c43b8509743d70b30df978bd64
MD5 8aab4d87d0f7b5153b91eaeee3981bcb
BLAKE2b-256 d9683d7795fb29808e3c020aaea245afd5cfcaf4b1dbcccca96297a932218eff

See more details on using hashes here.

File details

Details for the file pdmparse-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: pdmparse-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.8

File hashes

Hashes for pdmparse-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e9271575a1d8b6bcedc5270c65d978d7270f06dd77744e83f3031586e1b07539
MD5 335bf8e87cb65ba5c8e8adebe08e507a
BLAKE2b-256 1469a73eb00315a789f0b994523ac500ec4b0d2b6d35efa8219c96b418bf6d0e

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