用于处理路径别名的python包。
pathaliases的Python项目详细描述
路径别名
用于处理路径别名的python包。
路径别名可以直接从yaml文件加载:
dir/:subdir/:alias:SUBDIRsome/other/dir/:alias:SUBDIR_2file.txt:{ alias:[FILE,ALTERNATE_ALIAS]}dir2/:extra_keys:are ignoredalias:2ndDirsome/very/long/path/:into/a/deep/file/hierarchy/:can/be/addressed/with:{ alias:A_PATH_INDEPENDANT_ALIAS}
用解决这个问题 pathaliases.resolve_yaml_to_path_strings("aliases.yml")返回 字典:
{"SUBDIR":"dir/subdir/","SUBDIR_2":"dir/subdir/some/other/dir/""FILE":"file.txt","ALTERNATE_ALIAS":"file.txt","2ndDir":"dir2/","A_PATH_INDEPENDENT_ALIAS":"some/very/long/path/into/a/deep/file/hierarchy/can/be/addressed/with"}
可用于使代码基独立于路径:
# Beforesubdir="dir/subdir/"subdir_2=os.path.join(subdir,subdir_2)# After: *where* the dirs are is configurablealiases=pathaliases.resolve_yaml_to_path_strings("aliases.yml")subdir=aliases["SUBDIR"]subdir_2=aliases["SUBDIR_2"]
路径别名设计为:
- simple-它只是连接所有指向别名的键。
- 可读-开发人员和管理员应该能够轻松编辑路径。
- standard-它使用标准文件格式和约定,使其 易于移植到其他语言。
安装
复制回购:
$ git clone https://github.com/adamkewley/pathaliases.git $ python setup.py install
用法
直接从yaml文件解析别名:
importpathaliasesaliases=pathaliases.resolve_yaml_to_path_strings("aliases.yml")print(aliases["SUBDIR"])# echoes: "dir/subdir/"
从dict中解析别名:
importpathaliasesaliases_dict={"dir/":{"subdir/":{"alias":"SUBDIR"}}}aliases=pathaliases.resolve_path_strings(aliases_dict)print(aliases["SUBDIR"])# echoes: "dir/subdir/"
替代变量
别名文件也可以包含变量,模板为${VARNAME}:
foo/:${var}/:alias:${key}
pathaliases允许您在计算 路径:
env={"var":"bar","key":"some_alias"}aliases=pathaliases.resolve_yaml_to_path_strings("aliases.yml",env=env)aliases=={"some_alias":"foo/bar/",}