model#

本模块定义了 Account, Realm, Character 三个配置应用场景类.

Note

注意, 这里的类都带有一个 def new() 的工厂函数, 请不要直接用构造器, 而用这个工厂函数. 里面会自动把新建的对象加入到父对象的映射中去.

wow_acc.model.right_zfill(s: str, length: int) str[source]#

fill character “0” to the right end to ensure a string has a fixed length.

wow_acc.model.to_var_name(s: str) str[source]#

Convert a string to a valid variable name.

class wow_acc.model.Account(account: str, realms: ~typing.List[~wow_acc.model.Realm] = <factory>)[source]#

代表着一个具体账号. 是可哈希, 可排序, 可用集合去重的.

Parameters:
  • account – 账号名.

  • realms – 该账号下的所有 Realm 对象的列表.

property sort_key: str#

创建账号的排序键. 本质是左对齐并在尾部添加 “0” 的字符串.

property var_name: str#

Variable name for generated Python module.

property realms_mapper: Dict[str, Realm]#

返回该账号下的所有服务器从名字到对象的映射.

property characters: List[Character]#

返回该账号下所有服务器上的所有角色.

property wtf_account_name: str#

返回账号名的全部大写形式. 用于 WTF 文件夹中的路径名. 例如:

C:\...\WTF\Account\MYACCOUNT\...

class wow_acc.model.Realm(account: ~wow_acc.model.Account, realm: str, characters: ~typing.List[~wow_acc.model.Character] = <factory>)[source]#

代表着一个具体账号下的具体的服务器. 是可哈希, 可排序, 可用集合去重的.

Parameters:
  • account – 该服务器所属的 Account 对象.

  • realm – 服务器名.

  • characters – 该服务器下的所有 Character 的列表.

property sort_key: str#

服务器名排序键. 本质是先对账号排序, 再对服务器名排序. 和账号的排序键一样, 也是左对齐 并在尾部添加 “0” 的字符串.

property var_name: str#

Variable name for generated Python module.

property account_name: str#

该服务器所属的账号名.

property characters_mapper: Dict[str, Character]#

返回该账号下的所有游戏角色从名字到对象的映射.

class wow_acc.model.Character(realm: Realm, character: str)[source]#

代表着一个具体账号下的具体的服务器上的具体游戏角色. 是可哈希, 可排序, 可用集合去重的.

Parameters:
  • realm – 该角色所属的 Realm 对象.

  • character – 角色名.

property sort_key: str#

角色名排序键. 本质是先对服务器排序, 再对角色名排序. 和服务器的排序键一样, 也是左对齐 并在尾部添加 “0” 的字符串.

property var_name: str#

Variable name for generated Python module.

property realm_name: str#

该角色所属的服务器名.

property account: Account#

该角色所属的账号对象.

property account_name: str#

该角色所属的账号名.

property titled_character_name: str#

角色名的首字母大写形式. 例如 “mycharacter” -> “Mycharacter”. 用于 WTF 文件夹中的路径名. 例如:

C:\...\WTF\Account\MYACCOUNT\MyServer\Mycharacter\...

class wow_acc.model.Dataset(accounts: ~typing.Dict[str, ~wow_acc.model.Account] = <factory>)[source]#

代表着一堆 Account, Realm, Character 的集合.

classmethod from_yaml(stream: Union[str, Path])[source]#

Sample YAML file format:

acc1:
  realm1:
    - char111
    - char112
  realm2:
    - char121
    - char122
acc2:
  realm1:
    - char211
    - char212
  realm2:
    - char221
    - char222
to_module(import_line: str, dataset_var_name: str = 'ds') str[source]#

Generate python code that can be used to enumerate this dataset.

Parameters:
  • import_line – this line will be used to import the Dataset object, usually it is from .dataset import ds

  • dataset_var_name – the variable name of the Dataset object, usually it is ds.