neurokernel.plsel.SelectorParser¶
-
class
neurokernel.plsel.
SelectorParser
[source]¶ This class implements a parser for path-like selectors that can be associated with elements in a sequential data structure such as a Pandas DataFrame; in the latter case, each level of the selector corresponds to a level of a Pandas MultiIndex. An index level may either be a denoted by a string label (e.g., ‘foo’) or a numerical index (e.g., 0, 1, 2); a selector level may additionally be a list of strings (e.g., ‘[foo,bar]’) or integers (e.g., ‘[0,2,4]’) or continuous intervals (e.g., ‘[0:5]’). The ‘*’ symbol matches any value in a level, while a range with an open upper bound (e.g., ‘[5:]’) will match all integers greater than or equal to the lower bound.
Examples of valid selectors include
Selector Comments /foo/bar /foo+/bar equivalent to /foo/bar /foo/[qux,bar] /foo/bar[0] /foo/bar/[0] equivalent to /foo/bar[0] /foo/bar/0 equivalent to /foo/bar[0] /foo/bar[0,1] /foo/bar[0:5] /foo/*/baz /foo/*/baz[5] /foo/bar,/baz/qux (/foo,/bar)+/baz equivalent to /foo/baz,/bar/baz /[foo,bar].+/[0:2] equivalent to /foo[0],/bar[1] Notes
An empty string is deemed to be a valid selector.
Since there is no need to maintain multiple instances of the lexer/parser used to process path-like selectors, they are associated with the class rather than class instances; likewise, all of the class’ methods are classmethods.
Numerical indices in selectors are assumed to be zero-based. Intervals do not include the end element (i.e., like numpy, not like Pandas).
-
__init__
()¶ x.__init__(…) initializes x; see help(type(x)) for signature
Methods
p_error
(p)p_level
(p)level : ASTERISK | INTEGER | INTEGER_SET | INTERVAL | STRING | STRING_SET p_selector_comma_selector
(p)selector : selector COMMA selector p_selector_dotplus_selector
(p)selector : selector DOTPLUS selector p_selector_level
(p)selector : level p_selector_paren_selector
(p)selector : LPAREN selector RPAREN p_selector_plus_selector
(p)selector : selector PLUS selector p_selector_selector_level
(p)selector : selector level p_selector_selector_plus_level
(p)selector : selector PLUS level pad_parsed
(selector[, pad_len, inplace])Pad token lists in a parsed selector to some maximum length. parse
(selector[, pad_len])Parse a selector string into tokens. t_ASTERISK
(t)/* t_COMMA
(t), t_DOTPLUS
(t).+ t_INTEGER
(t)/?d+ t_INTEGER_SET
(t)/?[(?:d+,?)+] t_INTERVAL
(t)/?[d*:d*] t_LPAREN
(t)( t_PLUS
(t)+ t_RPAREN
(t)) t_STRING
(t)/[^*/[]():,.d][^+*/[]():,.]* t_STRING_SET
(t)/?[(?:[^+*/[]():,.d][^+*/[]():,.]*,?)+] t_error
(t)tokenize
(selector)Tokenize a selector string. Attributes
lexer
parser
tokens
-