https://github.com/xzripper/parentheses
Lightweight parentheses parser in Python.
https://github.com/xzripper/parentheses
parentheses parser python
Last synced: 16 days ago
JSON representation
Lightweight parentheses parser in Python.
- Host: GitHub
- URL: https://github.com/xzripper/parentheses
- Owner: xzripper
- License: mit
- Created: 2024-01-27T14:36:36.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-27T16:35:10.000Z (over 2 years ago)
- Last Synced: 2026-04-27T05:17:37.299Z (about 2 months ago)
- Topics: parentheses, parser, python
- Language: Python
- Homepage: https://github.com/xzripper/parentheses
- Size: 7.81 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Parentheses. V1.0.0
Light parentheses parser in Python. ```pip install parentheses```
## Types (Aliases):
```python
ParenthesesSymbol = str
ParseFlag = int
```
## Constants:
```python
PARENTHESES_ALL: ParseFlag = 1
PARENTHESES_OPEN: ParseFlag = 2
PARENTHESES_CLOSE: ParseFlag = 3
PARENTHESES_ROUND_OPEN: ParenthesesSymbol = '('
PARENTHESES_ROUND_CLOSE: ParenthesesSymbol = ')'
PARENTHESES_SQUARE_OPEN: ParenthesesSymbol = '['
PARENTHESES_SQUARE_CLOSE: ParenthesesSymbol = ']'
PARENTHESES_CURLY_OPEN: ParenthesesSymbol = '{'
PARENTHESES_CURLY_CLOSE: ParenthesesSymbol = '}'
PARENTHESES_DOUBLE_QUOTE: ParenthesesSymbol = '"'
PARENTHESES_SINGLE_QUOTE: ParenthesesSymbol = '\''
PARENTHESES_OPEN_SYMBOLS: list[ParenthesesSymbol] = [
PARENTHESES_ROUND_OPEN,
PARENTHESES_SQUARE_OPEN,
PARENTHESES_CURLY_OPEN
]
PARENTHESES_CLOSE_SYMBOLS: list[ParenthesesSymbol] = [
PARENTHESES_ROUND_CLOSE,
PARENTHESES_SQUARE_CLOSE,
PARENTHESES_CURLY_CLOSE
]
PARENTHESES_SYMBOLS = PARENTHESES_OPEN_SYMBOLS + PARENTHESES_CLOSE_SYMBOLS
PARENTHESES_REGEX = r'\(.*?\)|\[.*?\]|\{.*?\}'
```
## PPString class:
### valid_proc() -> bool
Get is parentheses in string valid. (Slower but gives more accurate result).
Examples:
`parse('(x)').valid_proc()` => `True`
`parse('(x').valid_proc()` => `False`
### valid() -> bool
Get is parentheses in string valid. (Faster but gives less accurate result).
Examples:
`parse('(x)').valid()` => `True`
`parse('(x').valid()` => `False`
### valid_quotes(_escaping: bool=False) -> bool
Get is quoted parentheses valid.
Examples:
`parse('"x"').valid_quotes()` => `True`
`parse('"x\""').valid_quotes(True)` => `True`
`parse('"x').valid_quotes()` => `False`
`parse('"x\""').valid_quotes()` => `False`
### count(flag: ParseFlag=PARENTHESES_ALL) -> int
Count braces in string.
Examples:
`parse('(x)').count()` => `2`
`parse('(x)').count(PARENTHESES_OPEN)` => `1`
`parse('(x)').count(PARENTHESES_CLOSE)` => `1`
### autoclose() -> str
Autoclose brackets.
Examples:
`parse('{[(x').autoclose()` => `{[(x)]}`
### find(remove_braces: bool=False) -> list
Get content in braces.
Examples:
`parse('(x) [y] {z}').find()` => `['(x)', '[y]', '{z}']`
`parse('(x) [y] {z}').find(True)` => `['x', 'y', 'z']`
### remove_braces() -> str
Remove braces in string.
Examples:
`parse('(x) [y] {z}').remove_braces()` => `'x y z'`
### remove(keep_braces: bool=False) -> str
Remove everything in parentheses.
Examples:
`parse('(x) [y] {z}').remove()` => `' '`
`parse('(x) [y] {z}').remove(True)` => `'() [] {}'`
### as_str() -> str
Get string.
Examples:
`parse('x').as_str()` => `'x'`
## Global functions.
### parse(string: str) -> PPString
Parse string.
Examples:
`parse('(x)')` => `PPString('x')`
### new_parentheses_symbols(open_symbol: ParenthesesSymbol, close_symbol: ParenthesesSymbol) -> None
Add new parentheses symbols.
Examples:
`new_parentheses_symbols('<', '>')` => `None`
### remove_parentheses_symbols(open_symbol: ParenthesesSymbol, close_symbol: ParenthesesSymbol) -> None
Remove parentheses symbols.
Examples:
`remove_parentheses_symbols('<', '>')` => `None`