Python中的Shell参数扩展。由共同维护者修补,以便在PyPI发布。
项目描述
POSIX参数扩展
这是一个实验性的Python库,可以在字符串中启用POSIX参数扩展。它还支持Bash参数扩展的子集。
注意,这是一个从上游分支出来的,以便在PyPI上正确发布。
此仓库https://github.com/nexB/parameter_expansion_patched在PyPI上发布为https://pypi.ac.cn/project/parameter-expansion-patched/。
最近上游活动较少,请访问https://github.com/kojiromike/parameter-expansion/
为什么不为这个直接启动一个shell呢?
一个原因是这可能存在安全风险。另一个原因是支持轻量级分析或评估shell参数,具有少量系统依赖性,并且在不运行shell的情况下进行。
例如,在scancode-toolkit中作为轻量级shell脚本解析器的一部分使用,以提取和扩展某些构建脚本中找到的参数。
支持哪些展开操作?
支持所有标准shell展开操作,包括一定程度嵌套的展开,只要不是过于复杂或含糊不清。此外,我们还支持Bash子串和字符串替换。有一个广泛的测试套件列出了所有支持的替换
这是如何工作的?
expand()
函数接受一个字符串和一个变量字典(否则使用当前环境变量)。该字符串使用自定义解析器进行解析,并使用这些变量执行各种展开操作。
明显的测试用例
>>> from parameter_expansion import expand
>>> foo = 'abc/123-def.ghi'
>>> # Bland Expansion
>>> expand('abc $foo abc')
'abc abc/123-def.ghi abc'
>>> expand('abc${foo}abc')
'abcabc/123-def.ghiabc'
>>>
>>> # Default Value Expansion
>>> expand('-${foo:-bar}-')
'-abc/123-def.ghi-'
>>> expand('-${bar:-bar}-')
'-bar-'
默认值展开
>>> foo = 'abc/123-def.ghi'
>>> expand('abc $foo abc')
'abc abc/123-def.ghi abc'
>>> expand('abc${foo}abc')
'abcabc/123-def.ghiabc'
有其他库做类似的事情吗?
-
https://github.com/sayanarijit/expandvars具有类似功能,但不涵盖该库支持的所有展开操作(例如%,#和嵌套变量)。
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
parameter-expansion-patched-0.3.1.tar.gz (14.6 kB 查看散列)
构建分布
关闭
parameter-expansion-patched-0.3.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | ff5dbc89fbde582f3336562d196b710771e92baa7b6d59356a14b085a0b6740b |
|
MD5 | 42fd64babe52ba313bb26948fba48cd2 |
|
BLAKE2b-256 | 7e150c6fa115b269418a0d53d4564809afb74684d8afa417323b406be26de08b |
关闭
parameter_expansion_patched-0.3.1-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 832f04bed2a81e32d9d233cbe27448a7a22edf9a744086dbd01066c41ad0f535 |
|
MD5 | 7a99e938eafd91abc8f142711af6518d |
|
BLAKE2b-256 | 6c9f2eb2762808faed5218faba5559415b5bb62b39376cf9a38acc01f9786481 |