https://github.com/anexia/python-param-parser
A parser library for a param string expression.
https://github.com/anexia/python-param-parser
hacktoberfest parameters parser
Last synced: 5 months ago
JSON representation
A parser library for a param string expression.
- Host: GitHub
- URL: https://github.com/anexia/python-param-parser
- Owner: anexia
- License: mit
- Created: 2022-05-03T07:18:54.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-11-08T15:21:41.000Z (over 1 year ago)
- Last Synced: 2025-12-01T03:14:58.110Z (7 months ago)
- Topics: hacktoberfest, parameters, parser
- Language: Python
- Homepage:
- Size: 14.6 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
param-parser
============
[](https://pypi.org/project/param-parser/)
[](https://github.com/anexia/python-param-parser/actions/workflows/test.yml)
[](https://codecov.io/gh/anexia/python-param-parser)
`param-parser` is a parser library for a param string expression. Those expressions are arbitrary strings with
placeholders in it, where a placeholder consists of a name, an optional type and a list of options.
# Installation
With a [correctly configured](https://pipenv.pypa.io/en/latest/basics/#basic-usage-of-pipenv) `pipenv` toolchain:
```sh
pipenv install param-parser
```
You may also use classic `pip` to install the package:
```sh
pip install param-parser
```
# Getting started
Examples of param string expressions look as follows:
```
this-is-a-{param:string:option1,option2,option3}-expression
this-is-a-{param:string}-expression
this-is-a-{param}-expression
```
As you see, a param is introduced by an opening curly bracket, followed by the name of the param, a colon, the type of
the param, another colon and a comma separated list of options. The param configuration gets terminated by a closing
curly bracket. Note that the type and option configuration are optional, but the name is mandatory.
To parse an expression shown above, use the Python code as follows:
```python
import param_parser
result = param_parser.parse(r"this-is-a-{param:string:option1,option2,option3}-expression")
result[0] # Gets a `param_parser.node.SequenceNode` instance
result[0].sequence_value # Gets `"this-is-a-"` as a string
result[1] # Gets a `param_parser.node.ParamNode` instance
result[1].param_name # Gets `"param"` as a string
result[1].param_type # Gets `"string"` as a string
result[1].param_options # Gets `["option1", "option2", "option3"]` as a list of strings
result[2] # Gets a `param_parser.node.SequenceNode` instance
result[2].sequence_value # Gets `"-expression"` as a string
```
It is also possible to escape opening curly brackets, closing curly brackets, colons and commas as follows:
```python
import param_parser
result = param_parser.parse(r"this-is-a-\{param:string:option1,option2,option3\}-expression")
result[0] # Gets a `param_parser.node.SequenceNode` instance
result[0].sequence_value # Gets `"this-is-a-{param:string:option1,option2,option3}-expression"` as a string
```
# Supported versions
| This Project | Python Version |
|--------------|----------------|
| 1.1.* | 3.9-3.13 |
| 1.0.* | 3.7-3.11 |
# List of developers
* Andreas Stocker , Lead Developer