diff options
Diffstat (limited to 'python-parameter-expansion-patched.spec')
| -rw-r--r-- | python-parameter-expansion-patched.spec | 357 |
1 files changed, 357 insertions, 0 deletions
diff --git a/python-parameter-expansion-patched.spec b/python-parameter-expansion-patched.spec new file mode 100644 index 0000000..06528e7 --- /dev/null +++ b/python-parameter-expansion-patched.spec @@ -0,0 +1,357 @@ +%global _empty_manifest_terminate_build 0 +Name: python-parameter-expansion-patched +Version: 0.3.1 +Release: 1 +Summary: Shell parameter expansion in Python. Patched by co-maintainer for a PyPI release. +License: Apache-2.0 +URL: https://github.com/nexB/parameter-expansion-patched +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/7e/15/0c6fa115b269418a0d53d4564809afb74684d8afa417323b406be26de08b/parameter-expansion-patched-0.3.1.tar.gz +BuildArch: noarch + + +%description +# POSIX Parameter Expansion + + + + + + + +[](https://github.com/kojiromike/parameter-expansion/actions/workflows/test.yml) +[](https://github.com/kojiromike/parameter-expansion/actions/workflows/codeql-analysis.yml) +[](https://github.com/pre-commit/pre-commit) + + +This is an experimental Python library to enable +[POSIX parameter expansion][1] in a string. +It supports also a subset of [Bash parameter expansion][2]. + + +Note that this is a fork from upstream to support proper release on PyPI. + +This repo https://github.com/nexB/parameter_expansion_patched is released at +https://pypi.org/project/parameter-expansion-patched/ on PyPI. + +Upstream is less active lately at https://github.com/kojiromike/parameter-expansion/ + + +## Why not spawning a shell directly for this? +One reason is that it may be security risk. Another reason is to +support lightweight analysis or evaluation of shell parameters with +few system dependencies and outside of a running shell. + +For instance this use in [scancode-toolkit][3] as part of a lightweight +shell script parser to extract and expand parameters found in some +build scripts. + +## Which expansions are supported? +All the standard shell expansions are supported, including some level +of nested expansion, as long as this is not too complex or ambiguous. +In addition, we support Bash substrings and string replacement. +There is an extensive test suite listing [all supported substitions][4] + + +## How does this work? +The `expand()` function accepts a string and a dictionary of variables +(otherwise it uses the current environmnent variables). The string is +parsed with a custom parser and interpreted to perform the various +expansion procedures using these variables. + +### Obvious Test Cases + +```python + >>> 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-' +``` + +### Default Value Expansion + +```python + >>> foo = 'abc/123-def.ghi' + >>> expand('abc $foo abc') + 'abc abc/123-def.ghi abc' + >>> expand('abc${foo}abc') + 'abcabc/123-def.ghiabc' +``` + + + + +## Any other library doing similar thing? + +- https://github.com/sayanarijit/expandvars has similar features yet does not cover all the expansions that this library supports (such as %, # and nested variables). + +- https://github.com/sloria/environs + + + + + +[1]: https://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02 +[2]: https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html +[3]: https://github.com/nexB/scancode-toolkit/blob/develop/src/packagedcode/bashparse.py +[4]: https://github.com/kojiromike/parameter-expansion/blob/main/parameter_expansion/tests/test_pe.py + + + + +%package -n python3-parameter-expansion-patched +Summary: Shell parameter expansion in Python. Patched by co-maintainer for a PyPI release. +Provides: python-parameter-expansion-patched +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-parameter-expansion-patched +# POSIX Parameter Expansion + + + + + + + +[](https://github.com/kojiromike/parameter-expansion/actions/workflows/test.yml) +[](https://github.com/kojiromike/parameter-expansion/actions/workflows/codeql-analysis.yml) +[](https://github.com/pre-commit/pre-commit) + + +This is an experimental Python library to enable +[POSIX parameter expansion][1] in a string. +It supports also a subset of [Bash parameter expansion][2]. + + +Note that this is a fork from upstream to support proper release on PyPI. + +This repo https://github.com/nexB/parameter_expansion_patched is released at +https://pypi.org/project/parameter-expansion-patched/ on PyPI. + +Upstream is less active lately at https://github.com/kojiromike/parameter-expansion/ + + +## Why not spawning a shell directly for this? +One reason is that it may be security risk. Another reason is to +support lightweight analysis or evaluation of shell parameters with +few system dependencies and outside of a running shell. + +For instance this use in [scancode-toolkit][3] as part of a lightweight +shell script parser to extract and expand parameters found in some +build scripts. + +## Which expansions are supported? +All the standard shell expansions are supported, including some level +of nested expansion, as long as this is not too complex or ambiguous. +In addition, we support Bash substrings and string replacement. +There is an extensive test suite listing [all supported substitions][4] + + +## How does this work? +The `expand()` function accepts a string and a dictionary of variables +(otherwise it uses the current environmnent variables). The string is +parsed with a custom parser and interpreted to perform the various +expansion procedures using these variables. + +### Obvious Test Cases + +```python + >>> 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-' +``` + +### Default Value Expansion + +```python + >>> foo = 'abc/123-def.ghi' + >>> expand('abc $foo abc') + 'abc abc/123-def.ghi abc' + >>> expand('abc${foo}abc') + 'abcabc/123-def.ghiabc' +``` + + + + +## Any other library doing similar thing? + +- https://github.com/sayanarijit/expandvars has similar features yet does not cover all the expansions that this library supports (such as %, # and nested variables). + +- https://github.com/sloria/environs + + + + + +[1]: https://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02 +[2]: https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html +[3]: https://github.com/nexB/scancode-toolkit/blob/develop/src/packagedcode/bashparse.py +[4]: https://github.com/kojiromike/parameter-expansion/blob/main/parameter_expansion/tests/test_pe.py + + + + +%package help +Summary: Development documents and examples for parameter-expansion-patched +Provides: python3-parameter-expansion-patched-doc +%description help +# POSIX Parameter Expansion + + + + + + + +[](https://github.com/kojiromike/parameter-expansion/actions/workflows/test.yml) +[](https://github.com/kojiromike/parameter-expansion/actions/workflows/codeql-analysis.yml) +[](https://github.com/pre-commit/pre-commit) + + +This is an experimental Python library to enable +[POSIX parameter expansion][1] in a string. +It supports also a subset of [Bash parameter expansion][2]. + + +Note that this is a fork from upstream to support proper release on PyPI. + +This repo https://github.com/nexB/parameter_expansion_patched is released at +https://pypi.org/project/parameter-expansion-patched/ on PyPI. + +Upstream is less active lately at https://github.com/kojiromike/parameter-expansion/ + + +## Why not spawning a shell directly for this? +One reason is that it may be security risk. Another reason is to +support lightweight analysis or evaluation of shell parameters with +few system dependencies and outside of a running shell. + +For instance this use in [scancode-toolkit][3] as part of a lightweight +shell script parser to extract and expand parameters found in some +build scripts. + +## Which expansions are supported? +All the standard shell expansions are supported, including some level +of nested expansion, as long as this is not too complex or ambiguous. +In addition, we support Bash substrings and string replacement. +There is an extensive test suite listing [all supported substitions][4] + + +## How does this work? +The `expand()` function accepts a string and a dictionary of variables +(otherwise it uses the current environmnent variables). The string is +parsed with a custom parser and interpreted to perform the various +expansion procedures using these variables. + +### Obvious Test Cases + +```python + >>> 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-' +``` + +### Default Value Expansion + +```python + >>> foo = 'abc/123-def.ghi' + >>> expand('abc $foo abc') + 'abc abc/123-def.ghi abc' + >>> expand('abc${foo}abc') + 'abcabc/123-def.ghiabc' +``` + + + + +## Any other library doing similar thing? + +- https://github.com/sayanarijit/expandvars has similar features yet does not cover all the expansions that this library supports (such as %, # and nested variables). + +- https://github.com/sloria/environs + + + + + +[1]: https://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02 +[2]: https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html +[3]: https://github.com/nexB/scancode-toolkit/blob/develop/src/packagedcode/bashparse.py +[4]: https://github.com/kojiromike/parameter-expansion/blob/main/parameter_expansion/tests/test_pe.py + + + + +%prep +%autosetup -n parameter-expansion-patched-0.3.1 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-parameter-expansion-patched -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.3.1-1 +- Package Spec generated |
