注意,pypadb 0.1.14 版本破坏性变更。

命名更改:
pypadb.conf.db_configurer    -> pypadb.conf.db    (module)
pypadb.conf.table_configurer -> pypadb.conf.table (module)

pypadb.conf.db.DbConfigurer   -> pypadb.conf.db.DbConfig       (class)
pypadb.conf.table.TableConfig -> pypadb.conf.table.TableConfig (class)

pypadb.conf.db.db_configurer -> pypadb.conf.db.db_config     (attribute)
pypadb.conf.table.tables     -> pypadb.conf.table.table_pool (attribute)

这个算更新的内容,所以就没改以前写的初始化 tables 了。

使用之前的例子:

from typing import Optional as _Optional

from pydantic import BaseModel as _BaseModel


class Stuff(_BaseModel):
    test_id: int
    name: str
    count: int


class Test(_BaseModel):
    id: _Optional[int]
    content: str
    stuffs: _Optional[list[StuffWuhu]]
    ctime: _Optional[int]
    mtime: _Optional[int]

# 0.1.14 版本新增,必须使用 __all__ 限定导出的类
__all__ = ['Stuff', 'Test']

把这两个类写到一个模块里面,注意 import 导包要转为下划线开头的名称,以免 pypadb 识别错误。

from pypadb.conf.table_configurer import tables

# 那两个类所在的包
import entities

if __name__ == '__main__':
    # 初始化tables
    tables.init_tables(entities)
    # tables.test
    # tables.stuff
    print(tables.tables)

这种初始化会把驼峰命名的类名转成下划线来使用,也可以设置参数 escape_upper=True 不处理驼峰命名。

2022-02-04