-
-
Notifications
You must be signed in to change notification settings - Fork 73
Conversation
- rework validation logic (wip)
- add basic multi column tests
- fix UI invalid styling
- style filter cells correctly
|
||
export default class SyntaxTree { | ||
private result: ISyntaxerResult; | ||
protected lexerResult: ILexerResult; | ||
protected syntaxerResult: ISyntaxerResult; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Keeping the intermediary results allows for finer manipulations in the derived syntax tree classes
I had put a stopgag on the selenium tests a while back, after removing it Python/Selenium tests are failing. Not sure why, just as before. Investigating. |
@alexcjohnson: Seems like the python visual tests got broken with the move to react 16 -- since the table was only built / never in a real PR, I never realized there were visual differences -- same issue discussed last week. The latest commits rewrite all the Python tests that can be written as storybook tests. The storybook tests have shown themselves very resilient to change / to be more stable. In any case, some tests were clearly already broken, like the dropdown ones that did not use Some Python tests cannot be rewritten this way as they involve callbacks between the table and the graph. Technically these are not really visual tests, instead the visual result is an artefact indicating the dash app behaves correctly.. I hate those but there's no easy replacement for now. These seem to render just fine but the style is not being picked up when snapshot for whatever reason -- somehow seems related to the React 15 -> 16 update but that's no more than a hypothesis. Still have to have look into |
- add `contains` relational operator to all lexicons - add `contains` test
}, | ||
type: LexemeType.LogicalOperator, | ||
priority: 2, | ||
regexp: /^(and\s|&&)/i, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
probably want to allow (
immediately after, like (1<2)and(3<4)
- that works in Python anyway, will confuse ppl if it fails. Same for or
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is allowed in full query form -- e.g. {a} eq "1" and ({a} eq "0" or ({b} eq "1" or {b} eq "0"))
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah! You mean the space?
), | ||
subType: RelationalOperator.Contains, | ||
regexp: /^(contains)/i | ||
}, LEXEME_BASE); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added contains
relational operator -- works only for strings -- to eventually be allowed on string columns/data
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Beautiful. Time to get this out in the world! 💃
@alexcjohnson Adding a changelog entry. This might also be the last good time to rename |
👍 for |
- rename filtering_settings to filter
Basics
<binary op> <expression>
,<unary op>
,<expression>
)operand
syntax to expect{field}
instead offield
or"field"
, [{}] can be escaped with{\\{\\\\}field}
, see unit tests for detailsAfter this PR
contains
operatorregex
operatorcontains
onnumber
)if
instyle_**_conditional
-- allow expressing column_type, row_id, etc. as a filter instead of a structure)eq(...)
andand(...)
syntaxItems with
x
are valid,nest
refers to the level of nesting of the query up to that point -- eachblock open
(open parentheses) increases the nesting by 1, eachblock close
reduces the nesting by 1.