跳转到主要内容

Python中的Shell参数扩展。由共同维护者修补,以便在PyPI发布。

项目描述

POSIX参数扩展

GitHub PyPI PyPI - Python Version PyPI - Wheel PyPI - Downloads

Tests CodeQL pre-commit

这是一个实验性的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'

有其他库做类似的事情吗?

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

parameter-expansion-patched-0.3.1.tar.gz (14.6 kB 查看散列)

上传时间

构建分布

parameter_expansion_patched-0.3.1-py3-none-any.whl (11.8 kB 查看散列)

上传时间 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面