pbi-parsers 0.8.2__tar.gz → 0.8.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/PKG-INFO +1 -1
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/__init__.py +1 -1
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/tokens.py +1 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/utils.py +28 -1
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/tokens.py +1 -2
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/.github/workflows/deploy-docs.yml +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/.github/workflows/deploy.yml +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/.gitignore +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/LICENSE +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/README.md +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/docs/docs/api/dax/formatter.md +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/docs/docs/api/dax/lexer.md +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/docs/docs/api/dax/parser.md +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/docs/docs/api/pq/formatter.md +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/docs/docs/api/pq/lexer.md +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/docs/docs/api/pq/parser.md +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/docs/docs/api/shared/lexer.md +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/docs/docs/api/shared/text_slice.md +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/docs/docs/api/shared/token.md +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/docs/docs/index.md +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/docs/mkdocs.yml +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/base/__init__.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/base/lexer.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/base/tokens.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/__init__.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/__init__.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/_base.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/_utils.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/add_sub.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/add_sub_unary.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/array.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/column.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/comparison.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/concatenation.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/div_mul.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/exponent.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/function.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/hierarchy.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/identifier.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/ins.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/keyword.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/literal_number.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/literal_string.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/logical.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/measure.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/none.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/parens.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/returns.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/table.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/exprs/variable.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/formatter.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/lexer.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/main.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/dax/parser.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/__init__.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/__init__.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/_base.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/_utils.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/add_sub.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/add_sub_unary.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/and_or_expr.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/array.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/arrow.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/column.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/comparison.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/concatenation.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/div_mul.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/each.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/ellipsis_expr.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/function.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/identifier.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/if_expr.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/is_expr.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/keyword.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/literal_number.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/literal_string.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/meta.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/negation.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/none.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/not_expr.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/parens.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/record.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/row.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/row_index.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/statement.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/try_expr.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/type_expr.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/exprs/variable.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/formatter.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/lexer.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/main.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pbi_parsers/pq/parser.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/pyproject.toml +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/__init__.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/__init__.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/__init__.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_add_sub.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_add_sub_unary.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_array.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_column.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_comparison.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_concatenation.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_div_mul.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_exponent.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_function.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_hierarchy.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_identifier.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_ins.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_keyword.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_literal_number.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_literal_string.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_logical.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_measure.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_parens.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_returns.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_table.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_exprs/test_variable.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_formatter/__init__.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_formatter/test_basic.py +0 -0
- {pbi_parsers-0.8.2 → pbi_parsers-0.8.3}/tests/test_dax/test_lexer.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: pbi_parsers
|
3
|
-
Version: 0.8.
|
3
|
+
Version: 0.8.3
|
4
4
|
Summary: Power BI lexer, parsers, and formatters for DAX and M (Power Query) languages
|
5
5
|
Project-URL: Homepage, https://github.com/douglassimonsen/pbi_parsers
|
6
6
|
Project-URL: Documentation, https://douglassimonsen.github.io/pbi_parsers/
|
@@ -4,7 +4,7 @@ import jinja2
|
|
4
4
|
from colorama import Fore, Style
|
5
5
|
|
6
6
|
from .exprs import Expression
|
7
|
-
from .tokens import Token
|
7
|
+
from .tokens import Token, TokenType
|
8
8
|
|
9
9
|
T = TypeVar("T", bound=Expression)
|
10
10
|
|
@@ -118,3 +118,30 @@ def highlight_section(node: Expression | Token | list[Token] | list[Expression])
|
|
118
118
|
position = node.position()
|
119
119
|
full_text = node.text_slice.full_text if isinstance(node, Token) else node.full_text()
|
120
120
|
return Context(position, full_text)
|
121
|
+
|
122
|
+
|
123
|
+
def get_inner_text(tok: Token) -> str:
|
124
|
+
"""Returns the inner text of a token, stripping any surrounding quotes or brackets.
|
125
|
+
|
126
|
+
Args:
|
127
|
+
tok (Token): The token to extract inner text from.
|
128
|
+
|
129
|
+
Returns:
|
130
|
+
str: The inner text of the token.
|
131
|
+
|
132
|
+
Raises:
|
133
|
+
ValueError: If the token type does not support inner text extraction.
|
134
|
+
|
135
|
+
"""
|
136
|
+
if tok.tok_type in {
|
137
|
+
TokenType.BRACKETED_IDENTIFIER,
|
138
|
+
TokenType.SINGLE_QUOTED_IDENTIFIER,
|
139
|
+
}:
|
140
|
+
return tok.text[1:-1]
|
141
|
+
if tok.tok_type in {
|
142
|
+
TokenType.STRING_LITERAL,
|
143
|
+
TokenType.UNQUOTED_IDENTIFIER,
|
144
|
+
}:
|
145
|
+
return tok.text
|
146
|
+
msg = f"Token type {tok.tok_type} does not have inner text"
|
147
|
+
raise ValueError(msg)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|