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_interfaceclassname – 生成的 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.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 中的路径的拼接.