dataset#

这个模块可以生成一个对所有的 WTF config 文件模板的枚举 Python 模块. 详情请看 to_module() 函数的文档.

class wow_wtf.exp03_wotlk.dataset.Folder(name: str, classname: str, file_ext: str)[source]#

代表着一类 WTF 配置的模板集合的文件夹. 例如 11_account_user_interface 就是 所有账号的用户界面配置文件的文件夹.

Parameters:
  • name – 文件夹的名字, 例如 11_account_user_interface

  • classname – 生成的 Python 枚举类的名字, 例如它是 AccountUserInterface 的话, 最终生成的 Python 枚举类就是 class AccountUserInterfaceEnum:

  • file_ext – 模板文件的扩展名, 例如 .txt, 我们会用这个来筛选出被视为 “模板” 的文件.

wow_wtf.exp03_wotlk.dataset.folder_list = [Folder(name='01_client_config', classname='ClientConfig', file_ext='.txt'), Folder(name='11_account_user_interface', classname='AccountUserInterface', file_ext='.txt'), Folder(name='12_account_macros', classname='AccountMacros', file_ext='.txt'), Folder(name='13_account_saved_variables', classname='AccountSavedVariables', file_ext='.lua'), Folder(name='21_character_user_interface', classname='CharacterUserInterface', file_ext='.txt'), Folder(name='22_character_chat', classname='CharacterChat', file_ext='.txt'), Folder(name='23_character_keybindings', classname='CharacterKeybindings', file_ext='.txt'), Folder(name='24_character_layout', classname='CharacterLayout', file_ext='.txt'), Folder(name='25_character_addons', classname='CharacterAddons', file_ext='.txt'), Folder(name='26_character_macros', classname='CharacterMacros', file_ext='.txt'), Folder(name='27_character_saved_variables', classname='CharacterSavedVariables', file_ext='.lua')]#

列出了所有 WTF 配置模板文件夹的规则.

wow_wtf.exp03_wotlk.dataset.slugify(s: str) str[source]#

将字符串转换成一个合法的 Python 变量名.

wow_wtf.exp03_wotlk.dataset.get_var_name(dir: Path, path: Path)[source]#

从文件路径生成一个合法的 Python 变量名作为 Enum 枚举值的变量名. path 是这个模板文件 的路径, 而 dir 则是 Folder 文件夹的路径. 例如我们有一个 ${HOME}/11_account_user_interface/default.txt 文件, 而 dir${HOME}/11_account_user_interface. 那么这个模板文件的变量名就会是 default.

Parameters:
  • dir

  • path

wow_wtf.exp03_wotlk.dataset.to_module(dir_root: Path, import_dir_root_line: str) str[source]#

根据前面 folder_list 中的设定, 扫描 dir_root 文件夹下的所有文件, 生成一个 Python 模块的字符串. 这个模块包含了所有的 WTF 模板文件的枚举.

例如你有这样的文件结构:

/{dir_root}/01_client_config
    ...
/{dir_root}/11_account_user_interface
    default.txt
    ...
/{dir_root}/12_account_macros
    ...
/{dir_root}/13_account_saved_variables
    ...
/{dir_root}/21_character_user_interface
    default.txt
    ...
/{dir_root}/22_character_chat
    ...
/{dir_root}/23_character_keybindings
    ...
/{dir_root}/24_character_layout
    ...
/{dir_root}/25_character_addons
    ...
/{dir_root}/26_character_macros
    ...
/{dir_root}/27_character_saved_variables
    ...

那么最终生成的 Python 模块请参考 3. Generate You WTF Config Enum Module

Parameters:
  • dir_root – WTF 配置模板文件的根目录.

  • import_dir_root_line – 这一行要导入一个 dir_root 对象, 也就是我们扫描的 WTF 配置模板文件的根目录. 用于里面的 enum 中的路径的拼接.