Server IP : 85.214.239.14 / Your IP : 3.145.97.1 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/pygments/lexers/ |
Upload File : |
""" pygments.lexers.promql ~~~~~~~~~~~~~~~~~~~~~~ Lexer for Prometheus Query Language. :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, bygroups, default, words from pygments.token import Comment, Keyword, Name, Number, Operator, \ Punctuation, String, Whitespace __all__ = ["PromQLLexer"] class PromQLLexer(RegexLexer): """ For PromQL queries. For details about the grammar see: https://github.com/prometheus/prometheus/tree/master/promql/parser .. versionadded: 2.7 """ name = "PromQL" url = 'https://prometheus.io/docs/prometheus/latest/querying/basics/' aliases = ["promql"] filenames = ["*.promql"] base_keywords = ( words( ( "bool", "by", "group_left", "group_right", "ignoring", "offset", "on", "without", ), suffix=r"\b", ), Keyword, ) aggregator_keywords = ( words( ( "sum", "min", "max", "avg", "group", "stddev", "stdvar", "count", "count_values", "bottomk", "topk", "quantile", ), suffix=r"\b", ), Keyword, ) function_keywords = ( words( ( "abs", "absent", "absent_over_time", "avg_over_time", "ceil", "changes", "clamp_max", "clamp_min", "count_over_time", "day_of_month", "day_of_week", "days_in_month", "delta", "deriv", "exp", "floor", "histogram_quantile", "holt_winters", "hour", "idelta", "increase", "irate", "label_join", "label_replace", "ln", "log10", "log2", "max_over_time", "min_over_time", "minute", "month", "predict_linear", "quantile_over_time", "rate", "resets", "round", "scalar", "sort", "sort_desc", "sqrt", "stddev_over_time", "stdvar_over_time", "sum_over_time", "time", "timestamp", "vector", "year", ), suffix=r"\b", ), Keyword.Reserved, ) tokens = { "root": [ (r"\n", Whitespace), (r"\s+", Whitespace), (r",", Punctuation), # Keywords base_keywords, aggregator_keywords, function_keywords, # Offsets (r"[1-9][0-9]*[smhdwy]", String), # Numbers (r"-?[0-9]+\.[0-9]+", Number.Float), (r"-?[0-9]+", Number.Integer), # Comments (r"#.*?$", Comment.Single), # Operators (r"(\+|\-|\*|\/|\%|\^)", Operator), (r"==|!=|>=|<=|<|>", Operator), (r"and|or|unless", Operator.Word), # Metrics (r"[_a-zA-Z][a-zA-Z0-9_]+", Name.Variable), # Params (r'(["\'])(.*?)(["\'])', bygroups(Punctuation, String, Punctuation)), # Other states (r"\(", Operator, "function"), (r"\)", Operator), (r"\{", Punctuation, "labels"), (r"\[", Punctuation, "range"), ], "labels": [ (r"\}", Punctuation, "#pop"), (r"\n", Whitespace), (r"\s+", Whitespace), (r",", Punctuation), (r'([_a-zA-Z][a-zA-Z0-9_]*?)(\s*?)(=~|!=|=|!~)(\s*?)("|\')(.*?)("|\')', bygroups(Name.Label, Whitespace, Operator, Whitespace, Punctuation, String, Punctuation)), ], "range": [ (r"\]", Punctuation, "#pop"), (r"[1-9][0-9]*[smhdwy]", String), ], "function": [ (r"\)", Operator, "#pop"), (r"\(", Operator, "#push"), default("#pop"), ], }