The query criteria should support boolean operators and regular expressions. I’ve read about Booleano, but it doesn’t support regular expressions.
If there is nothing out there which matches this requirements, which would be the best technology to start building upon?
The grammar in the example below is just an example, but the feature it offers should exist.
is True if ('client/.+' and 'user_a') but (not 'limited' unless ('.+special' or 'godmode'))
which equals to
is True if 'client/.+' and 'user_a' and (not ('limited' and (not ('.+special' or 'godmode'))))
applied on the following lists
is_true = ['client/chat', 'user_a', 'limited', 'extraspecial']
is_false = ['client/ping', 'user_a', 'limited']
is_false = ['server/chat']
is_false = ['server/ping', 'ping']
I managed to solve the problem with the use of the pyparsing module.
I had to replace the regexp () with <> in order to avoid collisions, but at this moment all of this seems to be the best solution.