[{"displayName":"Python","name":"python","patterns":[{"include":"#statement"},{"include":"#expression"}],"repository":{"annotated-parameter":{"begin":"\\b([_[:alpha:]]\\w*)\\s*(:)","beginCaptures":{"1":{"name":"variable.parameter.function.language.python"},"2":{"name":"punctuation.separator.annotation.python"}},"end":"(,)|(?=\\))","endCaptures":{"1":{"name":"punctuation.separator.parameters.python"}},"patterns":[{"include":"#expression"},{"match":"=(?!=)","name":"keyword.operator.assignment.python"}]},"assignment-operator":{"match":"<<=|>>=|//=|\\*\\*=|\\+=|-=|/=|@=|\\*=|%=|~=|\\^=|&=|\\|=|=(?!=)","name":"keyword.operator.assignment.python"},"backticks":{"begin":"`","end":"`|(?<!\\\\)(\\n)","name":"invalid.deprecated.backtick.python","patterns":[{"include":"#expression"}]},"builtin-callables":{"patterns":[{"include":"#illegal-names"},{"include":"#illegal-object-name"},{"include":"#builtin-exceptions"},{"include":"#builtin-functions"},{"include":"#builtin-types"}]},"builtin-exceptions":{"match":"(?<!\\.)\\b((Arithmetic|Assertion|Attribute|Buffer|BlockingIO|BrokenPipe|ChildProcess|(Connection(Aborted|Refused|Reset)?)|EOF|Environment|FileExists|FileNotFound|FloatingPoint|IO|Import|Indentation|Index|Interrupted|IsADirectory|NotADirectory|Permission|ProcessLookup|Timeout|Key|Lookup|Memory|Name|NotImplemented|OS|Overflow|Reference|Runtime|Recursion|Syntax|System|Tab|Type|UnboundLocal|Unicode(Encode|Decode|Translate)?|Value|Windows|ZeroDivision|ModuleNotFound)Error|((Pending)?Deprecation|Runtime|Syntax|User|Future|Import|Unicode|Bytes|Resource)?Warning|SystemExit|Stop(Async)?Iteration|KeyboardInterrupt|GeneratorExit|(Base)?Exception)\\b","name":"support.type.exception.python"},"builtin-functions":{"patterns":[{"match":"(?<!\\.)\\b(__import__|abs|aiter|all|any|anext|ascii|bin|breakpoint|callable|chr|compile|copyright|credits|delattr|dir|divmod|enumerate|eval|exec|exit|filter|format|getattr|globals|hasattr|hash|help|hex|id|input|isinstance|issubclass|iter|len|license|locals|map|max|memoryview|min|next|oct|open|ord|pow|print|quit|range|reload|repr|reversed|round|setattr|sorted|sum|vars|zip)\\b","name":"support.function.builtin.python"},{"match":"(?<!\\.)\\b(file|reduce|intern|raw_input|unicode|cmp|basestring|execfile|long|xrange)\\b","name":"variable.legacy.builtin.python"}]},"builtin-possible-callables":{"patterns":[{"include":"#builtin-callables"},{"include":"#magic-names"}]},"builtin-types":{"match":"(?<!\\.)\\b(bool|bytearray|bytes|classmethod|complex|dict|float|frozenset|int|list|object|property|set|slice|staticmethod|str|tuple|type|super)\\b","name":"support.type.python"},"call-wrapper-inheritance":{"begin":"\\b(?=([_[:alpha:]]\\w*)\\s*(\\())","end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.arguments.end.python"}},"name":"meta.function-call.python","patterns":[{"include":"#inheritance-name"},{"include":"#function-arguments"}]},"class-declaration":{"patterns":[{"begin":"\\s*(class)\\s+(?=[_[:alpha:]]\\w*\\s*([(:]))","beginCaptures":{"1":{"name":"storage.type.class.python"}},"end":"(:)","endCaptures":{"1":{"name":"punctuation.section.class.begin.python"}},"name":"meta.class.python","patterns":[{"include":"#class-name"},{"include":"#class-inheritance"}]}]},"class-inheritance":{"begin":"(\\()","beginCaptures":{"1":{"name":"punctuation.definition.inheritance.begin.python"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.inheritance.end.python"}},"name":"meta.class.inheritance.python","patterns":[{"match":"(\\*\\*?)","name":"keyword.operator.unpacking.arguments.python"},{"match":",","name":"punctuation.separator.inheritance.python"},{"match":"=(?!=)","name":"keyword.operator.assignment.python"},{"match":"\\bmetaclass\\b","name":"support.type.metaclass.python"},{"include":"#illegal-names"},{"include":"#class-kwarg"},{"include":"#call-wrapper-inheritance"},{"include":"#expression-base"},{"include":"#member-access-class"},{"include":"#inheritance-identifier"}]},"class-kwarg":{"captures":{"1":{"name":"entity.other.inherited-class.python variable.parameter.class.python"},"2":{"name":"keyword.operator.assignment.python"}},"match":"\\b([_[:alpha:]]\\w*)\\s*(=)(?!=)"},"class-name":{"patterns":[{"include":"#illegal-object-name"},{"include":"#builtin-possible-callables"},{"match":"\\b([_[:alpha:]]\\w*)\\b","name":"entity.name.type.class.python"}]},"codetags":{"captures":{"1":{"name":"keyword.codetag.notation.python"}},"match":"\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b"},"comments":{"patterns":[{"begin":"#\\s*(type:)\\s*+(?!$|#)","beginCaptures":{"0":{"name":"meta.typehint.comment.python"},"1":{"name":"comment.typehint.directive.notation.python"}},"contentName":"meta.typehint.comment.python","end":"$|(?=#)","name":"comment.line.number-sign.python","patterns":[{"match":"\\Gignore(?=\\s*(?:$|#))","name":"comment.typehint.ignore.notation.python"},{"match":"(?<!\\.)\\b(bool|bytes|float|int|object|str|List|Dict|Iterable|Sequence|Set|FrozenSet|Callable|Union|Tuple|Any|None)\\b","name":"comment.typehint.type.notation.python"},{"match":"([]()*,.=\\[]|(->))","name":"comment.typehint.punctuation.notation.python"},{"match":"([_[:alpha:]]\\w*)","name":"comment.typehint.variable.notation.python"}]},{"include":"#comments-base"}]},"comments-base":{"begin":"(#)","beginCaptures":{"1":{"name":"punctuation.definition.comment.python"}},"end":"$()","name":"comment.line.number-sign.python","patterns":[{"include":"#codetags"}]},"comments-string-double-three":{"begin":"(#)","beginCaptures":{"1":{"name":"punctuation.definition.comment.python"}},"end":"($|(?=\"\"\"))","name":"comment.line.number-sign.python","patterns":[{"include":"#codetags"}]},"comments-string-single-three":{"begin":"(#)","beginCaptures":{"1":{"name":"punctuation.definition.comment.python"}},"end":"($|(?='''))","name":"comment.line.number-sign.python","patterns":[{"include":"#codetags"}]},"curly-braces":{"begin":"\\{","beginCaptures":{"0":{"name":"punctuation.definition.dict.begin.python"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.dict.end.python"}},"patterns":[{"match":":","name":"punctuation.separator.dict.python"},{"include":"#expression"}]},"decorator":{"begin":"^\\s*((@))\\s*(?=[_[:alpha:]]\\w*)","beginCaptures":{"1":{"name":"entity.name.function.decorator.python"},"2":{"name":"punctuation.definition.decorator.python"}},"end":"(\\))(.*?)(?=\\s*(?:#|$))|(?=[\\n#])","endCaptures":{"1":{"name":"punctuation.definition.arguments.end.python"},"2":{"name":"invalid.illegal.decorator.python"}},"name":"meta.function.decorator.python","patterns":[{"include":"#decorator-name"},{"include":"#function-arguments"}]},"decorator-name":{"patterns":[{"include":"#builtin-callables"},{"include":"#illegal-object-name"},{"captures":{"2":{"name":"punctuation.separator.period.python"}},"match":"([_[:alpha:]]\\w*)|(\\.)","name":"entity.name.function.decorator.python"},{"include":"#line-continuation"},{"captures":{"1":{"name":"invalid.illegal.decorator.python"}},"match":"\\s*([^#(.\\\\_[:alpha:]\\s].*?)(?=#|$)","name":"invalid.illegal.decorator.python"}]},"docstring":{"patterns":[{"begin":"('''|\"\"\")","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.python"}},"end":"(\\1)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"}},"name":"string.quoted.docstring.multi.python","patterns":[{"include":"#docstring-prompt"},{"include":"#codetags"},{"include":"#docstring-guts-unicode"}]},{"begin":"([Rr])('''|\"\"\")","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"end":"(\\2)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"}},"name":"string.quoted.docstring.raw.multi.python","patterns":[{"include":"#string-consume-escape"},{"include":"#docstring-prompt"},{"include":"#codetags"}]},{"begin":"([\"'])","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.python"}},"end":"(\\1)|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"string.quoted.docstring.single.python","patterns":[{"include":"#codetags"},{"include":"#docstring-guts-unicode"}]},{"begin":"([Rr])([\"'])","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"end":"(\\2)|(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"string.quoted.docstring.raw.single.python","patterns":[{"include":"#string-consume-escape"},{"include":"#codetags"}]}]},"docstring-guts-unicode":{"patterns":[{"include":"#escape-sequence-unicode"},{"include":"#escape-sequence"},{"include":"#string-line-continuation"}]},"docstring-prompt":{"captures":{"1":{"name":"keyword.control.flow.python"}},"match":"(?:^|\\G)\\s*((?:>>>|\\.\\.\\.)\\s)(?=\\s*\\S)"},"docstring-statement":{"begin":"^(?=\\s*[Rr]?('''|\"\"\"|[\"']))","end":"((?<=\\1)|^)(?!\\s*[Rr]?('''|\"\"\"|[\"']))","patterns":[{"include":"#docstring"}]},"double-one-regexp-character-set":{"patterns":[{"match":"\\[\\^?](?!.*?])"},{"begin":"(\\[)(\\^)?(])?","beginCaptures":{"1":{"name":"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{"name":"keyword.operator.negation.regexp"},"3":{"name":"constant.character.set.regexp"}},"end":"(]|(?=\"))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":"meta.character.set.regexp","patterns":[{"include":"#regexp-charecter-set-escapes"},{"match":"\\N","name":"constant.character.set.regexp"}]}]},"double-one-regexp-comments":{"begin":"\\(\\?#","beginCaptures":{"0":{"name":"punctuation.comment.begin.regexp"}},"end":"(\\)|(?=\"))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"punctuation.comment.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":"comment.regexp","patterns":[{"include":"#codetags"}]},"double-one-regexp-conditional":{"begin":"(\\()\\?\\((\\w+(?:\\s+\\p{alnum}+)?|\\d+)\\)","beginCaptures":{"0":{"name":"keyword.operator.conditional.regexp"},"1":{"name":"punctuation.parenthesis.conditional.begin.regexp"}},"end":"(\\)|(?=\"))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#double-one-regexp-expression"}]},"double-one-regexp-expression":{"patterns":[{"include":"#regexp-base-expression"},{"include":"#double-one-regexp-character-set"},{"include":"#double-one-regexp-comments"},{"include":"#regexp-flags"},{"include":"#double-one-regexp-named-group"},{"include":"#regexp-backreference"},{"include":"#double-one-regexp-lookahead"},{"include":"#double-one-regexp-lookahead-negative"},{"include":"#double-one-regexp-lookbehind"},{"include":"#double-one-regexp-lookbehind-negative"},{"include":"#double-one-regexp-conditional"},{"include":"#double-one-regexp-parentheses-non-capturing"},{"include":"#double-one-regexp-parentheses"}]},"double-one-regexp-lookahead":{"begin":"(\\()\\?=","beginCaptures":{"0":{"name":"keyword.operator.lookahead.regexp"},"1":{"name":"punctuation.parenthesis.lookahead.begin.regexp"}},"end":"(\\)|(?=\"))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#double-one-regexp-expression"}]},"double-one-regexp-lookahead-negative":{"begin":"(\\()\\?!","beginCaptures":{"0":{"name":"keyword.operator.lookahead.negative.regexp"},"1":{"name":"punctuation.parenthesis.lookahead.begin.regexp"}},"end":"(\\)|(?=\"))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind":{"begin":"(\\()\\?<=","beginCaptures":{"0":{"name":"keyword.operator.lookbehind.regexp"},"1":{"name":"punctuation.parenthesis.lookbehind.begin.regexp"}},"end":"(\\)|(?=\"))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind-negative":{"begin":"(\\()\\?<!","beginCaptures":{"0":{"name":"keyword.operator.lookbehind.negative.regexp"},"1":{"name":"punctuation.parenthesis.lookbehind.begin.regexp"}},"end":"(\\)|(?=\"))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#double-one-regexp-expression"}]},"double-one-regexp-named-group":{"begin":"(\\()(\\?P<\\w+(?:\\s+\\p{alnum}+)?>)","beginCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{"name":"entity.name.tag.named.group.regexp"}},"end":"(\\)|(?=\"))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":"meta.named.regexp","patterns":[{"include":"#double-one-regexp-expression"}]},"double-one-regexp-parentheses":{"begin":"\\(","beginCaptures":{"0":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},"end":"(\\)|(?=\"))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#double-one-regexp-expression"}]},"double-one-regexp-parentheses-non-capturing":{"begin":"\\(\\?:","beginCaptures":{"0":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},"end":"(\\)|(?=\"))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#double-one-regexp-expression"}]},"double-three-regexp-character-set":{"patterns":[{"match":"\\[\\^?](?!.*?])"},{"begin":"(\\[)(\\^)?(])?","beginCaptures":{"1":{"name":"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{"name":"keyword.operator.negation.regexp"},"3":{"name":"constant.character.set.regexp"}},"end":"(]|(?=\"\"\"))","endCaptures":{"1":{"name":"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":"meta.character.set.regexp","patterns":[{"include":"#regexp-charecter-set-escapes"},{"match":"\\N","name":"constant.character.set.regexp"}]}]},"double-three-regexp-comments":{"begin":"\\(\\?#","beginCaptures":{"0":{"name":"punctuation.comment.begin.regexp"}},"end":"(\\)|(?=\"\"\"))","endCaptures":{"1":{"name":"punctuation.comment.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":"comment.regexp","patterns":[{"include":"#codetags"}]},"double-three-regexp-conditional":{"begin":"(\\()\\?\\((\\w+(?:\\s+\\p{alnum}+)?|\\d+)\\)","beginCaptures":{"0":{"name":"keyword.operator.conditional.regexp"},"1":{"name":"punctuation.parenthesis.conditional.begin.regexp"}},"end":"(\\)|(?=\"\"\"))","endCaptures":{"1":{"name":"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#double-three-regexp-expression"},{"include":"#comments-string-double-three"}]},"double-three-regexp-expression":{"patterns":[{"include":"#regexp-base-expression"},{"include":"#double-three-regexp-character-set"},{"include":"#double-three-regexp-comments"},{"include":"#regexp-flags"},{"include":"#double-three-regexp-named-group"},{"include":"#regexp-backreference"},{"include":"#double-three-regexp-lookahead"},{"include":"#double-three-regexp-lookahead-negative"},{"include":"#double-three-regexp-lookbehind"},{"include":"#double-three-regexp-lookbehind-negative"},{"include":"#double-three-regexp-conditional"},{"include":"#double-three-regexp-parentheses-non-capturing"},{"include":"#double-three-regexp-parentheses"},{"include":"#comments-string-double-three"}]},"double-three-regexp-lookahead":{"begin":"(\\()\\?=","beginCaptures":{"0":{"name":"keyword.operator.lookahead.regexp"},"1":{"name":"punctuation.parenthesis.lookahead.begin.regexp"}},"end":"(\\)|(?=\"\"\"))","endCaptures":{"1":{"name":"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#double-three-regexp-expression"},{"include":"#comments-string-double-three"}]},"double-three-regexp-lookahead-negative":{"begin":"(\\()\\?!","beginCaptures":{"0":{"name":"keyword.operator.lookahead.negative.regexp"},"1":{"name":"punctuation.parenthesis.lookahead.begin.regexp"}},"end":"(\\)|(?=\"\"\"))","endCaptures":{"1":{"name":"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#double-three-regexp-expression"},{"include":"#comments-string-double-three"}]},"double-three-regexp-lookbehind":{"begin":"(\\()\\?<=","beginCaptures":{"0":{"name":"keyword.operator.lookbehind.regexp"},"1":{"name":"punctuation.parenthesis.lookbehind.begin.regexp"}},"end":"(\\)|(?=\"\"\"))","endCaptures":{"1":{"name":"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#double-three-regexp-expression"},{"include":"#comments-string-double-three"}]},"double-three-regexp-lookbehind-negative":{"begin":"(\\()\\?<!","beginCaptures":{"0":{"name":"keyword.operator.lookbehind.negative.regexp"},"1":{"name":"punctuation.parenthesis.lookbehind.begin.regexp"}},"end":"(\\)|(?=\"\"\"))","endCaptures":{"1":{"name":"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#double-three-regexp-expression"},{"include":"#comments-string-double-three"}]},"double-three-regexp-named-group":{"begin":"(\\()(\\?P<\\w+(?:\\s+\\p{alnum}+)?>)","beginCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{"name":"entity.name.tag.named.group.regexp"}},"end":"(\\)|(?=\"\"\"))","endCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":"meta.named.regexp","patterns":[{"include":"#double-three-regexp-expression"},{"include":"#comments-string-double-three"}]},"double-three-regexp-parentheses":{"begin":"\\(","beginCaptures":{"0":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},"end":"(\\)|(?=\"\"\"))","endCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#double-three-regexp-expression"},{"include":"#comments-string-double-three"}]},"double-three-regexp-parentheses-non-capturing":{"begin":"\\(\\?:","beginCaptures":{"0":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},"end":"(\\)|(?=\"\"\"))","endCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#double-three-regexp-expression"},{"include":"#comments-string-double-three"}]},"ellipsis":{"match":"\\.\\.\\.","name":"constant.other.ellipsis.python"},"escape-sequence":{"match":"\\\\(x\\h{2}|[0-7]{1,3}|[\"'\\\\abfnrtv])","name":"constant.character.escape.python"},"escape-sequence-unicode":{"patterns":[{"match":"\\\\(u\\h{4}|U\\h{8}|N\\{[\\w\\s]+?})","name":"constant.character.escape.python"}]},"expression":{"patterns":[{"include":"#expression-base"},{"include":"#member-access"},{"match":"\\b([_[:alpha:]]\\w*)\\b"}]},"expression-bare":{"patterns":[{"include":"#backticks"},{"include":"#illegal-anno"},{"include":"#literal"},{"include":"#regexp"},{"include":"#string"},{"include":"#lambda"},{"include":"#generator"},{"include":"#illegal-operator"},{"include":"#operator"},{"include":"#curly-braces"},{"include":"#item-access"},{"include":"#list"},{"include":"#odd-function-call"},{"include":"#round-braces"},{"include":"#function-call"},{"include":"#builtin-functions"},{"include":"#builtin-types"},{"include":"#builtin-exceptions"},{"include":"#magic-names"},{"include":"#special-names"},{"include":"#illegal-names"},{"include":"#special-variables"},{"include":"#ellipsis"},{"include":"#punctuation"},{"include":"#line-continuation"}]},"expression-base":{"patterns":[{"include":"#comments"},{"include":"#expression-bare"},{"include":"#line-continuation"}]},"f-expression":{"patterns":[{"include":"#expression-bare"},{"include":"#member-access"},{"match":"\\b([_[:alpha:]]\\w*)\\b"}]},"fregexp-base-expression":{"patterns":[{"include":"#fregexp-quantifier"},{"include":"#fstring-formatting-braces"},{"match":"\\{.*?}"},{"include":"#regexp-base-common"}]},"fregexp-quantifier":{"match":"\\{\\{(\\d+|\\d+,(\\d+)?|,\\d+)}}","name":"keyword.operator.quantifier.regexp"},"fstring-fnorm-quoted-multi-line":{"begin":"\\b([Ff])([BUbu])?('''|\"\"\")","beginCaptures":{"1":{"name":"string.interpolated.python string.quoted.multi.python storage.type.string.python"},"2":{"name":"invalid.illegal.prefix.python"},"3":{"name":"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python"}},"end":"(\\3)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"meta.fstring.python","patterns":[{"include":"#fstring-guts"},{"include":"#fstring-illegal-multi-brace"},{"include":"#fstring-multi-brace"},{"include":"#fstring-multi-core"}]},"fstring-fnorm-quoted-single-line":{"begin":"\\b([Ff])([BUbu])?(([\"']))","beginCaptures":{"1":{"name":"string.interpolated.python string.quoted.single.python storage.type.string.python"},"2":{"name":"invalid.illegal.prefix.python"},"3":{"name":"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python"}},"end":"(\\3)|((?<!\\\\)\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"meta.fstring.python","patterns":[{"include":"#fstring-guts"},{"include":"#fstring-illegal-single-brace"},{"include":"#fstring-single-brace"},{"include":"#fstring-single-core"}]},"fstring-formatting":{"patterns":[{"include":"#fstring-formatting-braces"},{"include":"#fstring-formatting-singe-brace"}]},"fstring-formatting-braces":{"patterns":[{"captures":{"1":{"name":"constant.character.format.placeholder.other.python"},"2":{"name":"invalid.illegal.brace.python"},"3":{"name":"constant.character.format.placeholder.other.python"}},"match":"(\\{)(\\s*?)(})"},{"match":"(\\{\\{|}})","name":"constant.character.escape.python"}]},"fstring-formatting-singe-brace":{"match":"(}(?!}))","name":"invalid.illegal.brace.python"},"fstring-guts":{"patterns":[{"include":"#escape-sequence-unicode"},{"include":"#escape-sequence"},{"include":"#string-line-continuation"},{"include":"#fstring-formatting"}]},"fstring-illegal-multi-brace":{"patterns":[{"include":"#impossible"}]},"fstring-illegal-single-brace":{"begin":"(\\{)(?=[^\\n}]*$\\n?)","beginCaptures":{"1":{"name":"constant.character.format.placeholder.other.python"}},"end":"(})|(?=\\n)","endCaptures":{"1":{"name":"constant.character.format.placeholder.other.python"}},"patterns":[{"include":"#fstring-terminator-single"},{"include":"#f-expression"}]},"fstring-multi-brace":{"begin":"(\\{)","beginCaptures":{"1":{"name":"constant.character.format.placeholder.other.python"}},"end":"(})","endCaptures":{"1":{"name":"constant.character.format.placeholder.other.python"}},"patterns":[{"include":"#fstring-terminator-multi"},{"include":"#f-expression"}]},"fstring-multi-core":{"match":"(.+?)($(\\n?)|(?=[\\\\{}]|'''|\"\"\"))|\\n","name":"string.interpolated.python string.quoted.multi.python"},"fstring-normf-quoted-multi-line":{"begin":"\\b([BUbu])([Ff])('''|\"\"\")","beginCaptures":{"1":{"name":"invalid.illegal.prefix.python"},"2":{"name":"string.interpolated.python string.quoted.multi.python storage.type.string.python"},"3":{"name":"punctuation.definition.string.begin.python string.quoted.multi.python"}},"end":"(\\3)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"meta.fstring.python","patterns":[{"include":"#fstring-guts"},{"include":"#fstring-illegal-multi-brace"},{"include":"#fstring-multi-brace"},{"include":"#fstring-multi-core"}]},"fstring-normf-quoted-single-line":{"begin":"\\b([BUbu])([Ff])(([\"']))","beginCaptures":{"1":{"name":"invalid.illegal.prefix.python"},"2":{"name":"string.interpolated.python string.quoted.single.python storage.type.string.python"},"3":{"name":"punctuation.definition.string.begin.python string.quoted.single.python"}},"end":"(\\3)|((?<!\\\\)\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"meta.fstring.python","patterns":[{"include":"#fstring-guts"},{"include":"#fstring-illegal-single-brace"},{"include":"#fstring-single-brace"},{"include":"#fstring-single-core"}]},"fstring-raw-guts":{"patterns":[{"include":"#string-consume-escape"},{"include":"#fstring-formatting"}]},"fstring-raw-multi-core":{"match":"(.+?)($(\\n?)|(?=[\\\\{}]|'''|\"\"\"))|\\n","name":"string.interpolated.python string.quoted.raw.multi.python"},"fstring-raw-quoted-multi-line":{"begin":"\\b([Rr][Ff]|[Ff][Rr])('''|\"\"\")","beginCaptures":{"1":{"name":"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python string.quoted.raw.multi.python"}},"end":"(\\2)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"meta.fstring.python","patterns":[{"include":"#fstring-raw-guts"},{"include":"#fstring-illegal-multi-brace"},{"include":"#fstring-multi-brace"},{"include":"#fstring-raw-multi-core"}]},"fstring-raw-quoted-single-line":{"begin":"\\b([Rr][Ff]|[Ff][Rr])(([\"']))","beginCaptures":{"1":{"name":"string.interpolated.python string.quoted.raw.single.python storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python string.quoted.raw.single.python"}},"end":"(\\2)|((?<!\\\\)\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"meta.fstring.python","patterns":[{"include":"#fstring-raw-guts"},{"include":"#fstring-illegal-single-brace"},{"include":"#fstring-single-brace"},{"include":"#fstring-raw-single-core"}]},"fstring-raw-single-core":{"match":"(.+?)($(\\n?)|(?=[\\\\{}]|([\"'])|((?<!\\\\)\\n)))|\\n","name":"string.interpolated.python string.quoted.raw.single.python"},"fstring-single-brace":{"begin":"(\\{)","beginCaptures":{"1":{"name":"constant.character.format.placeholder.other.python"}},"end":"(})|(?=\\n)","endCaptures":{"1":{"name":"constant.character.format.placeholder.other.python"}},"patterns":[{"include":"#fstring-terminator-single"},{"include":"#f-expression"}]},"fstring-single-core":{"match":"(.+?)($(\\n?)|(?=[\\\\{}]|([\"'])|((?<!\\\\)\\n)))|\\n","name":"string.interpolated.python string.quoted.single.python"},"fstring-terminator-multi":{"patterns":[{"match":"(=(![ars])?)(?=})","name":"storage.type.format.python"},{"match":"(=?![ars])(?=})","name":"storage.type.format.python"},{"captures":{"1":{"name":"storage.type.format.python"},"2":{"name":"storage.type.format.python"}},"match":"(=?(?:![ars])?)(:\\w?[<=>^]?[- +]?#?\\d*,?(\\.\\d+)?[%EFGXb-gnosx]?)(?=})"},{"include":"#fstring-terminator-multi-tail"}]},"fstring-terminator-multi-tail":{"begin":"(=?(?:![ars])?)(:)(?=.*?\\{)","beginCaptures":{"1":{"name":"storage.type.format.python"},"2":{"name":"storage.type.format.python"}},"end":"(?=})","patterns":[{"include":"#fstring-illegal-multi-brace"},{"include":"#fstring-multi-brace"},{"match":"([%EFGXb-gnosx])(?=})","name":"storage.type.format.python"},{"match":"(\\.\\d+)","name":"storage.type.format.python"},{"match":"(,)","name":"storage.type.format.python"},{"match":"(\\d+)","name":"storage.type.format.python"},{"match":"(#)","name":"storage.type.format.python"},{"match":"([- +])","name":"storage.type.format.python"},{"match":"([<=>^])","name":"storage.type.format.python"},{"match":"(\\w)","name":"storage.type.format.python"}]},"fstring-terminator-single":{"patterns":[{"match":"(=(![ars])?)(?=})","name":"storage.type.format.python"},{"match":"(=?![ars])(?=})","name":"storage.type.format.python"},{"captures":{"1":{"name":"storage.type.format.python"},"2":{"name":"storage.type.format.python"}},"match":"(=?(?:![ars])?)(:\\w?[<=>^]?[- +]?#?\\d*,?(\\.\\d+)?[%EFGXb-gnosx]?)(?=})"},{"include":"#fstring-terminator-single-tail"}]},"fstring-terminator-single-tail":{"begin":"(=?(?:![ars])?)(:)(?=.*?\\{)","beginCaptures":{"1":{"name":"storage.type.format.python"},"2":{"name":"storage.type.format.python"}},"end":"(?=})|(?=\\n)","patterns":[{"include":"#fstring-illegal-single-brace"},{"include":"#fstring-single-brace"},{"match":"([%EFGXb-gnosx])(?=})","name":"storage.type.format.python"},{"match":"(\\.\\d+)","name":"storage.type.format.python"},{"match":"(,)","name":"storage.type.format.python"},{"match":"(\\d+)","name":"storage.type.format.python"},{"match":"(#)","name":"storage.type.format.python"},{"match":"([- +])","name":"storage.type.format.python"},{"match":"([<=>^])","name":"storage.type.format.python"},{"match":"(\\w)","name":"storage.type.format.python"}]},"function-arguments":{"begin":"(\\()","beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.python"}},"contentName":"meta.function-call.arguments.python","end":"(?=\\))(?!\\)\\s*\\()","patterns":[{"match":"(,)","name":"punctuation.separator.arguments.python"},{"captures":{"1":{"name":"keyword.operator.unpacking.arguments.python"}},"match":"(?:(?<=[(,])|^)\\s*(\\*{1,2})"},{"include":"#lambda-incomplete"},{"include":"#illegal-names"},{"captures":{"1":{"name":"variable.parameter.function-call.python"},"2":{"name":"keyword.operator.assignment.python"}},"match":"\\b([_[:alpha:]]\\w*)\\s*(=)(?!=)"},{"match":"=(?!=)","name":"keyword.operator.assignment.python"},{"include":"#expression"},{"captures":{"1":{"name":"punctuation.definition.arguments.end.python"},"2":{"name":"punctuation.definition.arguments.begin.python"}},"match":"\\s*(\\))\\s*(\\()"}]},"function-call":{"begin":"\\b(?=([_[:alpha:]]\\w*)\\s*(\\())","end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.arguments.end.python"}},"name":"meta.function-call.python","patterns":[{"include":"#special-variables"},{"include":"#function-name"},{"include":"#function-arguments"}]},"function-declaration":{"begin":"\\s*(?:\\b(async)\\s+)?\\b(def)\\s+(?=[_[:alpha:]]\\p{word}*\\s*\\()","beginCaptures":{"1":{"name":"storage.type.function.async.python"},"2":{"name":"storage.type.function.python"}},"end":"(:|(?=[\\n\"#']))","endCaptures":{"1":{"name":"punctuation.section.function.begin.python"}},"name":"meta.function.python","patterns":[{"include":"#function-def-name"},{"include":"#parameters"},{"include":"#line-continuation"},{"include":"#return-annotation"}]},"function-def-name":{"patterns":[{"include":"#illegal-object-name"},{"include":"#builtin-possible-callables"},{"match":"\\b([_[:alpha:]]\\w*)\\b","name":"entity.name.function.python"}]},"function-name":{"patterns":[{"include":"#builtin-possible-callables"},{"match":"\\b([_[:alpha:]]\\w*)\\b","name":"meta.function-call.generic.python"}]},"generator":{"begin":"\\bfor\\b","beginCaptures":{"0":{"name":"keyword.control.flow.python"}},"end":"\\bin\\b","endCaptures":{"0":{"name":"keyword.control.flow.python"}},"patterns":[{"include":"#expression"}]},"illegal-anno":{"match":"->","name":"invalid.illegal.annotation.python"},"illegal-names":{"captures":{"1":{"name":"keyword.control.flow.python"},"2":{"name":"keyword.control.import.python"}},"match":"\\b(?:(and|assert|async|await|break|class|continue|def|del|elif|else|except|finally|for|from|global|if|in|is|(?<=\\.)lambda|lambda(?=\\s*[.=])|nonlocal|not|or|pass|raise|return|try|while|with|yield)|(as|import))\\b"},"illegal-object-name":{"match":"\\b(True|False|None)\\b","name":"keyword.illegal.name.python"},"illegal-operator":{"patterns":[{"match":"&&|\\|\\||--|\\+\\+","name":"invalid.illegal.operator.python"},{"match":"[$?]","name":"invalid.illegal.operator.python"},{"match":"!\\b","name":"invalid.illegal.operator.python"}]},"import":{"patterns":[{"begin":"\\b(?<!\\.)(from)\\b(?=.+import)","beginCaptures":{"1":{"name":"keyword.control.import.python"}},"end":"$|(?=import)","patterns":[{"match":"\\.+","name":"punctuation.separator.period.python"},{"include":"#expression"}]},{"begin":"\\b(?<!\\.)(import)\\b","beginCaptures":{"1":{"name":"keyword.control.import.python"}},"end":"$","patterns":[{"match":"\\b(?<!\\.)as\\b","name":"keyword.control.import.python"},{"include":"#expression"}]}]},"impossible":{"match":"$.^"},"inheritance-identifier":{"captures":{"1":{"name":"entity.other.inherited-class.python"}},"match":"\\b([_[:alpha:]]\\w*)\\b"},"inheritance-name":{"patterns":[{"include":"#lambda-incomplete"},{"include":"#builtin-possible-callables"},{"include":"#inheritance-identifier"}]},"item-access":{"patterns":[{"begin":"\\b(?=[_[:alpha:]]\\w*\\s*\\[)","end":"(])","endCaptures":{"1":{"name":"punctuation.definition.arguments.end.python"}},"name":"meta.item-access.python","patterns":[{"include":"#item-name"},{"include":"#item-index"},{"include":"#expression"}]}]},"item-index":{"begin":"(\\[)","beginCaptures":{"1":{"name":"punctuation.definition.arguments.begin.python"}},"contentName":"meta.item-access.arguments.python","end":"(?=])","patterns":[{"match":":","name":"punctuation.separator.slice.python"},{"include":"#expression"}]},"item-name":{"patterns":[{"include":"#special-variables"},{"include":"#builtin-functions"},{"include":"#special-names"},{"match":"\\b([_[:alpha:]]\\w*)\\b","name":"meta.indexed-name.python"}]},"lambda":{"patterns":[{"captures":{"1":{"name":"keyword.control.flow.python"}},"match":"((?<=\\.)lambda|lambda(?=\\s*[.=]))"},{"captures":{"1":{"name":"storage.type.function.lambda.python"}},"match":"\\b(lambda)\\s*?(?=[\\n,]|$)"},{"begin":"\\b(lambda)\\b","beginCaptures":{"1":{"name":"storage.type.function.lambda.python"}},"contentName":"meta.function.lambda.parameters.python","end":"(:)|(\\n)","endCaptures":{"1":{"name":"punctuation.section.function.lambda.begin.python"}},"name":"meta.lambda-function.python","patterns":[{"match":"/","name":"keyword.operator.positional.parameter.python"},{"match":"(\\*\\*?)","name":"keyword.operator.unpacking.parameter.python"},{"include":"#lambda-nested-incomplete"},{"include":"#illegal-names"},{"captures":{"1":{"name":"variable.parameter.function.language.python"},"2":{"name":"punctuation.separator.parameters.python"}},"match":"([_[:alpha:]]\\w*)\\s*(?:(,)|(?=:|$))"},{"include":"#comments"},{"include":"#backticks"},{"include":"#illegal-anno"},{"include":"#lambda-parameter-with-default"},{"include":"#line-continuation"},{"include":"#illegal-operator"}]}]},"lambda-incomplete":{"match":"\\blambda(?=\\s*[),])","name":"storage.type.function.lambda.python"},"lambda-nested-incomplete":{"match":"\\blambda(?=\\s*[),:])","name":"storage.type.function.lambda.python"},"lambda-parameter-with-default":{"begin":"\\b([_[:alpha:]]\\w*)\\s*(=)","beginCaptures":{"1":{"name":"variable.parameter.function.language.python"},"2":{"name":"keyword.operator.python"}},"end":"(,)|(?=:|$)","endCaptures":{"1":{"name":"punctuation.separator.parameters.python"}},"patterns":[{"include":"#expression"}]},"line-continuation":{"patterns":[{"captures":{"1":{"name":"punctuation.separator.continuation.line.python"},"2":{"name":"invalid.illegal.line.continuation.python"}},"match":"(\\\\)\\s*(\\S.*$\\n?)"},{"begin":"(\\\\)\\s*$\\n?","beginCaptures":{"1":{"name":"punctuation.separator.continuation.line.python"}},"end":"(?=^\\s*$)|(?!(\\s*[Rr]?('''|\"\"\"|[\"']))|\\G()$)","patterns":[{"include":"#regexp"},{"include":"#string"}]}]},"list":{"begin":"\\[","beginCaptures":{"0":{"name":"punctuation.definition.list.begin.python"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.list.end.python"}},"patterns":[{"include":"#expression"}]},"literal":{"patterns":[{"match":"\\b(True|False|None|NotImplemented|Ellipsis)\\b","name":"constant.language.python"},{"include":"#number"}]},"loose-default":{"begin":"(=)","beginCaptures":{"1":{"name":"keyword.operator.python"}},"end":"(,)|(?=\\))","endCaptures":{"1":{"name":"punctuation.separator.parameters.python"}},"patterns":[{"include":"#expression"}]},"magic-function-names":{"captures":{"1":{"name":"support.function.magic.python"}},"match":"\\b(__(?:abs|add|aenter|aexit|aiter|and|anext|await|bool|call|ceil|class_getitem|cmp|coerce|complex|contains|copy|deepcopy|del|delattr|delete|delitem|delslice|dir|div|divmod|enter|eq|exit|float|floor|floordiv|format|get??|getattr|getattribute|getinitargs|getitem|getnewargs|getslice|getstate|gt|hash|hex|iadd|iand|idiv|ifloordiv||ilshift|imod|imul|index|init|instancecheck|int|invert|ior|ipow|irshift|isub|iter|itruediv|ixor|len??|long|lshift|lt|missing|mod|mul|neg??|new|next|nonzero|oct|or|pos|pow|radd|rand|rdiv|rdivmod|reduce|reduce_ex|repr|reversed|rfloordiv||rlshift|rmod|rmul|ror|round|rpow|rrshift|rshift|rsub|rtruediv|rxor|set|setattr|setitem|set_name|setslice|setstate|sizeof|str|sub|subclasscheck|truediv|trunc|unicode|xor|matmul|rmatmul|imatmul|init_subclass|set_name|fspath|bytes|prepare|length_hint)__)\\b"},"magic-names":{"patterns":[{"include":"#magic-function-names"},{"include":"#magic-variable-names"}]},"magic-variable-names":{"captures":{"1":{"name":"support.variable.magic.python"}},"match":"\\b(__(?:all|annotations|bases|builtins|class|closure|code|debug|defaults|dict|doc|file|func|globals|kwdefaults|match_args|members|metaclass|methods|module|mro|mro_entries|name|qualname|post_init|self|signature|slots|subclasses|version|weakref|wrapped|classcell|spec|path|package|future|traceback)__)\\b"},"member-access":{"begin":"(\\.)\\s*(?!\\.)","beginCaptures":{"1":{"name":"punctuation.separator.period.python"}},"end":"(?<=\\S)(?=\\W)|(^|(?<=\\s))(?=[^\\\\\\w\\s])|$","name":"meta.member.access.python","patterns":[{"include":"#function-call"},{"include":"#member-access-base"},{"include":"#member-access-attribute"}]},"member-access-attribute":{"match":"\\b([_[:alpha:]]\\w*)\\b","name":"meta.attribute.python"},"member-access-base":{"patterns":[{"include":"#magic-names"},{"include":"#illegal-names"},{"include":"#illegal-object-name"},{"include":"#special-names"},{"include":"#line-continuation"},{"include":"#item-access"}]},"member-access-class":{"begin":"(\\.)\\s*(?!\\.)","beginCaptures":{"1":{"name":"punctuation.separator.period.python"}},"end":"(?<=\\S)(?=\\W)|$","name":"meta.member.access.python","patterns":[{"include":"#call-wrapper-inheritance"},{"include":"#member-access-base"},{"include":"#inheritance-identifier"}]},"number":{"name":"constant.numeric.python","patterns":[{"include":"#number-float"},{"include":"#number-dec"},{"include":"#number-hex"},{"include":"#number-oct"},{"include":"#number-bin"},{"include":"#number-long"},{"match":"\\b[0-9]+\\w+","name":"invalid.illegal.name.python"}]},"number-bin":{"captures":{"1":{"name":"storage.type.number.python"}},"match":"(?<![.\\w])(0[Bb])(_?[01])+\\b","name":"constant.numeric.bin.python"},"number-dec":{"captures":{"1":{"name":"storage.type.imaginary.number.python"},"2":{"name":"invalid.illegal.dec.python"}},"match":"(?<![.\\w])(?:[1-9](?:_?[0-9])*|0+|[0-9](?:_?[0-9])*([Jj])|0([0-9]+)(?![.Ee]))\\b","name":"constant.numeric.dec.python"},"number-float":{"captures":{"1":{"name":"storage.type.imaginary.number.python"}},"match":"(?<!\\w)(?:(?:\\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\\.[0-9](?:_?[0-9])*|[0-9](?:_?[0-9])*\\.)(?:[Ee][-+]?[0-9](?:_?[0-9])*)?|[0-9](?:_?[0-9])*[Ee][-+]?[0-9](?:_?[0-9])*)([Jj])?\\b","name":"constant.numeric.float.python"},"number-hex":{"captures":{"1":{"name":"storage.type.number.python"}},"match":"(?<![.\\w])(0[Xx])(_?\\h)+\\b","name":"constant.numeric.hex.python"},"number-long":{"captures":{"2":{"name":"storage.type.number.python"}},"match":"(?<![.\\w])([1-9][0-9]*|0)([Ll])\\b","name":"constant.numeric.bin.python"},"number-oct":{"captures":{"1":{"name":"storage.type.number.python"}},"match":"(?<![.\\w])(0[Oo])(_?[0-7])+\\b","name":"constant.numeric.oct.python"},"odd-function-call":{"begin":"(?<=[])])\\s*(?=\\()","end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.arguments.end.python"}},"patterns":[{"include":"#function-arguments"}]},"operator":{"captures":{"1":{"name":"keyword.operator.logical.python"},"2":{"name":"keyword.control.flow.python"},"3":{"name":"keyword.operator.bitwise.python"},"4":{"name":"keyword.operator.arithmetic.python"},"5":{"name":"keyword.operator.comparison.python"},"6":{"name":"keyword.operator.assignment.python"}},"match":"\\b(?<!\\.)(?:(and|or|not|in|is)|(for|if|else|await|yield(?:\\s+from)?))(?!\\s*:)\\b|(<<|>>|[\\&^|~])|(\\*\\*|[-%*+]|//|[/@])|(!=|==|>=|<=|[<>])|(:=)"},"parameter-special":{"captures":{"1":{"name":"variable.parameter.function.language.python"},"2":{"name":"variable.parameter.function.language.special.self.python"},"3":{"name":"variable.parameter.function.language.special.cls.python"},"4":{"name":"punctuation.separator.parameters.python"}},"match":"\\b((self)|(cls))\\b\\s*(?:(,)|(?=\\)))"},"parameters":{"begin":"(\\()","beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.python"}},"end":"(\\))","endCaptures":{"1":{"name":"punctuation.definition.parameters.end.python"}},"name":"meta.function.parameters.python","patterns":[{"match":"/","name":"keyword.operator.positional.parameter.python"},{"match":"(\\*\\*?)","name":"keyword.operator.unpacking.parameter.python"},{"include":"#lambda-incomplete"},{"include":"#illegal-names"},{"include":"#illegal-object-name"},{"include":"#parameter-special"},{"captures":{"1":{"name":"variable.parameter.function.language.python"},"2":{"name":"punctuation.separator.parameters.python"}},"match":"([_[:alpha:]]\\w*)\\s*(?:(,)|(?=[\\n#)=]))"},{"include":"#comments"},{"include":"#loose-default"},{"include":"#annotated-parameter"}]},"punctuation":{"patterns":[{"match":":","name":"punctuation.separator.colon.python"},{"match":",","name":"punctuation.separator.element.python"}]},"regexp":{"patterns":[{"include":"#regexp-single-three-line"},{"include":"#regexp-double-three-line"},{"include":"#regexp-single-one-line"},{"include":"#regexp-double-one-line"}]},"regexp-backreference":{"captures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},"2":{"name":"entity.name.tag.named.backreference.regexp"},"3":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}},"match":"(\\()(\\?P=\\w+(?:\\s+\\p{alnum}+)?)(\\))","name":"meta.backreference.named.regexp"},"regexp-backreference-number":{"captures":{"1":{"name":"entity.name.tag.backreference.regexp"}},"match":"(\\\\[1-9]\\d?)","name":"meta.backreference.regexp"},"regexp-base-common":{"patterns":[{"match":"\\.","name":"support.other.match.any.regexp"},{"match":"\\^","name":"support.other.match.begin.regexp"},{"match":"\\$","name":"support.other.match.end.regexp"},{"match":"[*+?]\\??","name":"keyword.operator.quantifier.regexp"},{"match":"\\|","name":"keyword.operator.disjunction.regexp"},{"include":"#regexp-escape-sequence"}]},"regexp-base-expression":{"patterns":[{"include":"#regexp-quantifier"},{"include":"#regexp-base-common"}]},"regexp-charecter-set-escapes":{"patterns":[{"match":"\\\\[\\\\abfnrtv]","name":"constant.character.escape.regexp"},{"include":"#regexp-escape-special"},{"match":"\\\\([0-7]{1,3})","name":"constant.character.escape.regexp"},{"include":"#regexp-escape-character"},{"include":"#regexp-escape-unicode"},{"include":"#regexp-escape-catchall"}]},"regexp-double-one-line":{"begin":"\\b(([Uu]r)|([Bb]r)|(r[Bb]?))(\")","beginCaptures":{"2":{"name":"invalid.deprecated.prefix.python"},"3":{"name":"storage.type.string.python"},"4":{"name":"storage.type.string.python"},"5":{"name":"punctuation.definition.string.begin.python"}},"end":"(\")|(?<!\\\\)(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"string.regexp.quoted.single.python","patterns":[{"include":"#double-one-regexp-expression"}]},"regexp-double-three-line":{"begin":"\\b(([Uu]r)|([Bb]r)|(r[Bb]?))(\"\"\")","beginCaptures":{"2":{"name":"invalid.deprecated.prefix.python"},"3":{"name":"storage.type.string.python"},"4":{"name":"storage.type.string.python"},"5":{"name":"punctuation.definition.string.begin.python"}},"end":"(\"\"\")","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"string.regexp.quoted.multi.python","patterns":[{"include":"#double-three-regexp-expression"}]},"regexp-escape-catchall":{"match":"\\\\(.|\\n)","name":"constant.character.escape.regexp"},"regexp-escape-character":{"match":"\\\\(x\\h{2}|0[0-7]{1,2}|[0-7]{3})","name":"constant.character.escape.regexp"},"regexp-escape-sequence":{"patterns":[{"include":"#regexp-escape-special"},{"include":"#regexp-escape-character"},{"include":"#regexp-escape-unicode"},{"include":"#regexp-backreference-number"},{"include":"#regexp-escape-catchall"}]},"regexp-escape-special":{"match":"\\\\([ABDSWZbdsw])","name":"support.other.escape.special.regexp"},"regexp-escape-unicode":{"match":"\\\\(u\\h{4}|U\\h{8})","name":"constant.character.unicode.regexp"},"regexp-flags":{"match":"\\(\\?[Laimsux]+\\)","name":"storage.modifier.flag.regexp"},"regexp-quantifier":{"match":"\\{(\\d+|\\d+,(\\d+)?|,\\d+)}","name":"keyword.operator.quantifier.regexp"},"regexp-single-one-line":{"begin":"\\b(([Uu]r)|([Bb]r)|(r[Bb]?))(')","beginCaptures":{"2":{"name":"invalid.deprecated.prefix.python"},"3":{"name":"storage.type.string.python"},"4":{"name":"storage.type.string.python"},"5":{"name":"punctuation.definition.string.begin.python"}},"end":"(')|(?<!\\\\)(\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"string.regexp.quoted.single.python","patterns":[{"include":"#single-one-regexp-expression"}]},"regexp-single-three-line":{"begin":"\\b(([Uu]r)|([Bb]r)|(r[Bb]?))(''')","beginCaptures":{"2":{"name":"invalid.deprecated.prefix.python"},"3":{"name":"storage.type.string.python"},"4":{"name":"storage.type.string.python"},"5":{"name":"punctuation.definition.string.begin.python"}},"end":"(''')","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"string.regexp.quoted.multi.python","patterns":[{"include":"#single-three-regexp-expression"}]},"return-annotation":{"begin":"(->)","beginCaptures":{"1":{"name":"punctuation.separator.annotation.result.python"}},"end":"(?=:)","patterns":[{"include":"#expression"}]},"round-braces":{"begin":"\\(","beginCaptures":{"0":{"name":"punctuation.parenthesis.begin.python"}},"end":"\\)","endCaptures":{"0":{"name":"punctuation.parenthesis.end.python"}},"patterns":[{"include":"#expression"}]},"semicolon":{"patterns":[{"match":";$","name":"invalid.deprecated.semicolon.python"}]},"single-one-regexp-character-set":{"patterns":[{"match":"\\[\\^?](?!.*?])"},{"begin":"(\\[)(\\^)?(])?","beginCaptures":{"1":{"name":"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{"name":"keyword.operator.negation.regexp"},"3":{"name":"constant.character.set.regexp"}},"end":"(]|(?='))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":"meta.character.set.regexp","patterns":[{"include":"#regexp-charecter-set-escapes"},{"match":"\\N","name":"constant.character.set.regexp"}]}]},"single-one-regexp-comments":{"begin":"\\(\\?#","beginCaptures":{"0":{"name":"punctuation.comment.begin.regexp"}},"end":"(\\)|(?='))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"punctuation.comment.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":"comment.regexp","patterns":[{"include":"#codetags"}]},"single-one-regexp-conditional":{"begin":"(\\()\\?\\((\\w+(?:\\s+\\p{alnum}+)?|\\d+)\\)","beginCaptures":{"0":{"name":"keyword.operator.conditional.regexp"},"1":{"name":"punctuation.parenthesis.conditional.begin.regexp"}},"end":"(\\)|(?='))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#single-one-regexp-expression"}]},"single-one-regexp-expression":{"patterns":[{"include":"#regexp-base-expression"},{"include":"#single-one-regexp-character-set"},{"include":"#single-one-regexp-comments"},{"include":"#regexp-flags"},{"include":"#single-one-regexp-named-group"},{"include":"#regexp-backreference"},{"include":"#single-one-regexp-lookahead"},{"include":"#single-one-regexp-lookahead-negative"},{"include":"#single-one-regexp-lookbehind"},{"include":"#single-one-regexp-lookbehind-negative"},{"include":"#single-one-regexp-conditional"},{"include":"#single-one-regexp-parentheses-non-capturing"},{"include":"#single-one-regexp-parentheses"}]},"single-one-regexp-lookahead":{"begin":"(\\()\\?=","beginCaptures":{"0":{"name":"keyword.operator.lookahead.regexp"},"1":{"name":"punctuation.parenthesis.lookahead.begin.regexp"}},"end":"(\\)|(?='))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#single-one-regexp-expression"}]},"single-one-regexp-lookahead-negative":{"begin":"(\\()\\?!","beginCaptures":{"0":{"name":"keyword.operator.lookahead.negative.regexp"},"1":{"name":"punctuation.parenthesis.lookahead.begin.regexp"}},"end":"(\\)|(?='))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind":{"begin":"(\\()\\?<=","beginCaptures":{"0":{"name":"keyword.operator.lookbehind.regexp"},"1":{"name":"punctuation.parenthesis.lookbehind.begin.regexp"}},"end":"(\\)|(?='))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind-negative":{"begin":"(\\()\\?<!","beginCaptures":{"0":{"name":"keyword.operator.lookbehind.negative.regexp"},"1":{"name":"punctuation.parenthesis.lookbehind.begin.regexp"}},"end":"(\\)|(?='))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#single-one-regexp-expression"}]},"single-one-regexp-named-group":{"begin":"(\\()(\\?P<\\w+(?:\\s+\\p{alnum}+)?>)","beginCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{"name":"entity.name.tag.named.group.regexp"}},"end":"(\\)|(?='))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":"meta.named.regexp","patterns":[{"include":"#single-one-regexp-expression"}]},"single-one-regexp-parentheses":{"begin":"\\(","beginCaptures":{"0":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},"end":"(\\)|(?='))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#single-one-regexp-expression"}]},"single-one-regexp-parentheses-non-capturing":{"begin":"\\(\\?:","beginCaptures":{"0":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},"end":"(\\)|(?='))|((?=(?<!\\\\)\\n))","endCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#single-one-regexp-expression"}]},"single-three-regexp-character-set":{"patterns":[{"match":"\\[\\^?](?!.*?])"},{"begin":"(\\[)(\\^)?(])?","beginCaptures":{"1":{"name":"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{"name":"keyword.operator.negation.regexp"},"3":{"name":"constant.character.set.regexp"}},"end":"(]|(?='''))","endCaptures":{"1":{"name":"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":"meta.character.set.regexp","patterns":[{"include":"#regexp-charecter-set-escapes"},{"match":"\\N","name":"constant.character.set.regexp"}]}]},"single-three-regexp-comments":{"begin":"\\(\\?#","beginCaptures":{"0":{"name":"punctuation.comment.begin.regexp"}},"end":"(\\)|(?='''))","endCaptures":{"1":{"name":"punctuation.comment.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":"comment.regexp","patterns":[{"include":"#codetags"}]},"single-three-regexp-conditional":{"begin":"(\\()\\?\\((\\w+(?:\\s+\\p{alnum}+)?|\\d+)\\)","beginCaptures":{"0":{"name":"keyword.operator.conditional.regexp"},"1":{"name":"punctuation.parenthesis.conditional.begin.regexp"}},"end":"(\\)|(?='''))","endCaptures":{"1":{"name":"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#single-three-regexp-expression"},{"include":"#comments-string-single-three"}]},"single-three-regexp-expression":{"patterns":[{"include":"#regexp-base-expression"},{"include":"#single-three-regexp-character-set"},{"include":"#single-three-regexp-comments"},{"include":"#regexp-flags"},{"include":"#single-three-regexp-named-group"},{"include":"#regexp-backreference"},{"include":"#single-three-regexp-lookahead"},{"include":"#single-three-regexp-lookahead-negative"},{"include":"#single-three-regexp-lookbehind"},{"include":"#single-three-regexp-lookbehind-negative"},{"include":"#single-three-regexp-conditional"},{"include":"#single-three-regexp-parentheses-non-capturing"},{"include":"#single-three-regexp-parentheses"},{"include":"#comments-string-single-three"}]},"single-three-regexp-lookahead":{"begin":"(\\()\\?=","beginCaptures":{"0":{"name":"keyword.operator.lookahead.regexp"},"1":{"name":"punctuation.parenthesis.lookahead.begin.regexp"}},"end":"(\\)|(?='''))","endCaptures":{"1":{"name":"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#single-three-regexp-expression"},{"include":"#comments-string-single-three"}]},"single-three-regexp-lookahead-negative":{"begin":"(\\()\\?!","beginCaptures":{"0":{"name":"keyword.operator.lookahead.negative.regexp"},"1":{"name":"punctuation.parenthesis.lookahead.begin.regexp"}},"end":"(\\)|(?='''))","endCaptures":{"1":{"name":"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#single-three-regexp-expression"},{"include":"#comments-string-single-three"}]},"single-three-regexp-lookbehind":{"begin":"(\\()\\?<=","beginCaptures":{"0":{"name":"keyword.operator.lookbehind.regexp"},"1":{"name":"punctuation.parenthesis.lookbehind.begin.regexp"}},"end":"(\\)|(?='''))","endCaptures":{"1":{"name":"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#single-three-regexp-expression"},{"include":"#comments-string-single-three"}]},"single-three-regexp-lookbehind-negative":{"begin":"(\\()\\?<!","beginCaptures":{"0":{"name":"keyword.operator.lookbehind.negative.regexp"},"1":{"name":"punctuation.parenthesis.lookbehind.begin.regexp"}},"end":"(\\)|(?='''))","endCaptures":{"1":{"name":"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#single-three-regexp-expression"},{"include":"#comments-string-single-three"}]},"single-three-regexp-named-group":{"begin":"(\\()(\\?P<\\w+(?:\\s+\\p{alnum}+)?>)","beginCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{"name":"entity.name.tag.named.group.regexp"}},"end":"(\\)|(?='''))","endCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"name":"meta.named.regexp","patterns":[{"include":"#single-three-regexp-expression"},{"include":"#comments-string-single-three"}]},"single-three-regexp-parentheses":{"begin":"\\(","beginCaptures":{"0":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},"end":"(\\)|(?='''))","endCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#single-three-regexp-expression"},{"include":"#comments-string-single-three"}]},"single-three-regexp-parentheses-non-capturing":{"begin":"\\(\\?:","beginCaptures":{"0":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},"end":"(\\)|(?='''))","endCaptures":{"1":{"name":"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{"name":"invalid.illegal.newline.python"}},"patterns":[{"include":"#single-three-regexp-expression"},{"include":"#comments-string-single-three"}]},"special-names":{"match":"\\b(_*\\p{upper}[_\\d]*\\p{upper})[[:upper:]\\d]*(_\\w*)?\\b","name":"constant.other.caps.python"},"special-variables":{"captures":{"1":{"name":"variable.language.special.self.python"},"2":{"name":"variable.language.special.cls.python"}},"match":"\\b(?<!\\.)(?:(self)|(cls))\\b"},"statement":{"patterns":[{"include":"#import"},{"include":"#class-declaration"},{"include":"#function-declaration"},{"include":"#generator"},{"include":"#statement-keyword"},{"include":"#assignment-operator"},{"include":"#decorator"},{"include":"#docstring-statement"},{"include":"#semicolon"}]},"statement-keyword":{"patterns":[{"match":"\\b((async\\s+)?\\s*def)\\b","name":"storage.type.function.python"},{"match":"\\b(?<!\\.)as\\b(?=.*[:\\\\])","name":"keyword.control.flow.python"},{"match":"\\b(?<!\\.)as\\b","name":"keyword.control.import.python"},{"match":"\\b(?<!\\.)(async|continue|del|assert|break|finally|for|from|elif|else|if|except|pass|raise|return|try|while|with)\\b","name":"keyword.control.flow.python"},{"match":"\\b(?<!\\.)(global|nonlocal)\\b","name":"storage.modifier.declaration.python"},{"match":"\\b(?<!\\.)(class)\\b","name":"storage.type.class.python"},{"captures":{"1":{"name":"keyword.control.flow.python"}},"match":"^\\s*(case|match)(?=\\s*([-\"#'(+:\\[{\\w\\d]|$))\\b"}]},"string":{"patterns":[{"include":"#string-quoted-multi-line"},{"include":"#string-quoted-single-line"},{"include":"#string-bin-quoted-multi-line"},{"include":"#string-bin-quoted-single-line"},{"include":"#string-raw-quoted-multi-line"},{"include":"#string-raw-quoted-single-line"},{"include":"#string-raw-bin-quoted-multi-line"},{"include":"#string-raw-bin-quoted-single-line"},{"include":"#fstring-fnorm-quoted-multi-line"},{"include":"#fstring-fnorm-quoted-single-line"},{"include":"#fstring-normf-quoted-multi-line"},{"include":"#fstring-normf-quoted-single-line"},{"include":"#fstring-raw-quoted-multi-line"},{"include":"#fstring-raw-quoted-single-line"}]},"string-bin-quoted-multi-line":{"begin":"\\b([Bb])('''|\"\"\")","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"end":"(\\2)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"string.quoted.binary.multi.python","patterns":[{"include":"#string-entity"}]},"string-bin-quoted-single-line":{"begin":"\\b([Bb])(([\"']))","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"end":"(\\2)|((?<!\\\\)\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"string.quoted.binary.single.python","patterns":[{"include":"#string-entity"}]},"string-brace-formatting":{"patterns":[{"captures":{"1":{"name":"constant.character.format.placeholder.other.python"},"3":{"name":"storage.type.format.python"},"4":{"name":"storage.type.format.python"}},"match":"(\\{\\{|}}|\\{\\w*(\\.[_[:alpha:]]\\w*|\\[[^]\"']+])*(![ars])?(:\\w?[<=>^]?[- +]?#?\\d*,?(\\.\\d+)?[%EFGXb-gnosx]?)?})","name":"meta.format.brace.python"},{"captures":{"1":{"name":"constant.character.format.placeholder.other.python"},"3":{"name":"storage.type.format.python"},"4":{"name":"storage.type.format.python"}},"match":"(\\{\\w*(\\.[_[:alpha:]]\\w*|\\[[^]\"']+])*(![ars])?(:)[^\\n\"'{}]*(?:\\{[^\\n\"'}]*?}[^\\n\"'{}]*)*})","name":"meta.format.brace.python"}]},"string-consume-escape":{"match":"\\\\[\\n\"'\\\\]"},"string-entity":{"patterns":[{"include":"#escape-sequence"},{"include":"#string-line-continuation"},{"include":"#string-formatting"}]},"string-formatting":{"captures":{"1":{"name":"constant.character.format.placeholder.other.python"}},"match":"(%(\\([\\w\\s]*\\))?[- #+0]*(\\d+|\\*)?(\\.(\\d+|\\*))?([Lhl])?[%EFGXa-giorsux])","name":"meta.format.percent.python"},"string-line-continuation":{"match":"\\\\$","name":"constant.language.python"},"string-multi-bad-brace1-formatting-raw":{"begin":"(?=\\{%(.*?(?!'''|\"\"\"))%})","end":"(?='''|\"\"\")","patterns":[{"include":"#string-consume-escape"}]},"string-multi-bad-brace1-formatting-unicode":{"begin":"(?=\\{%(.*?(?!'''|\"\"\"))%})","end":"(?='''|\"\"\")","patterns":[{"include":"#escape-sequence-unicode"},{"include":"#escape-sequence"},{"include":"#string-line-continuation"}]},"string-multi-bad-brace2-formatting-raw":{"begin":"(?!\\{\\{)(?=\\{(\\w*?(?!'''|\"\"\")[^!.:\\[}\\w]).*?(?!'''|\"\"\")})","end":"(?='''|\"\"\")","patterns":[{"include":"#string-consume-escape"},{"include":"#string-formatting"}]},"string-multi-bad-brace2-formatting-unicode":{"begin":"(?!\\{\\{)(?=\\{(\\w*?(?!'''|\"\"\")[^!.:\\[}\\w]).*?(?!'''|\"\"\")})","end":"(?='''|\"\"\")","patterns":[{"include":"#escape-sequence-unicode"},{"include":"#string-entity"}]},"string-quoted-multi-line":{"begin":"(?:\\b([Rr])(?=[Uu]))?([Uu])?('''|\"\"\")","beginCaptures":{"1":{"name":"invalid.illegal.prefix.python"},"2":{"name":"storage.type.string.python"},"3":{"name":"punctuation.definition.string.begin.python"}},"end":"(\\3)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"string.quoted.multi.python","patterns":[{"include":"#string-multi-bad-brace1-formatting-unicode"},{"include":"#string-multi-bad-brace2-formatting-unicode"},{"include":"#string-unicode-guts"}]},"string-quoted-single-line":{"begin":"(?:\\b([Rr])(?=[Uu]))?([Uu])?(([\"']))","beginCaptures":{"1":{"name":"invalid.illegal.prefix.python"},"2":{"name":"storage.type.string.python"},"3":{"name":"punctuation.definition.string.begin.python"}},"end":"(\\3)|((?<!\\\\)\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"string.quoted.single.python","patterns":[{"include":"#string-single-bad-brace1-formatting-unicode"},{"include":"#string-single-bad-brace2-formatting-unicode"},{"include":"#string-unicode-guts"}]},"string-raw-bin-guts":{"patterns":[{"include":"#string-consume-escape"},{"include":"#string-formatting"}]},"string-raw-bin-quoted-multi-line":{"begin":"\\b(R[Bb]|[Bb]R)('''|\"\"\")","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"end":"(\\2)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"string.quoted.raw.binary.multi.python","patterns":[{"include":"#string-raw-bin-guts"}]},"string-raw-bin-quoted-single-line":{"begin":"\\b(R[Bb]|[Bb]R)(([\"']))","beginCaptures":{"1":{"name":"storage.type.string.python"},"2":{"name":"punctuation.definition.string.begin.python"}},"end":"(\\2)|((?<!\\\\)\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"string.quoted.raw.binary.single.python","patterns":[{"include":"#string-raw-bin-guts"}]},"string-raw-guts":{"patterns":[{"include":"#string-consume-escape"},{"include":"#string-formatting"},{"include":"#string-brace-formatting"}]},"string-raw-quoted-multi-line":{"begin":"\\b(([Uu]R)|(R))('''|\"\"\")","beginCaptures":{"2":{"name":"invalid.deprecated.prefix.python"},"3":{"name":"storage.type.string.python"},"4":{"name":"punctuation.definition.string.begin.python"}},"end":"(\\4)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"string.quoted.raw.multi.python","patterns":[{"include":"#string-multi-bad-brace1-formatting-raw"},{"include":"#string-multi-bad-brace2-formatting-raw"},{"include":"#string-raw-guts"}]},"string-raw-quoted-single-line":{"begin":"\\b(([Uu]R)|(R))(([\"']))","beginCaptures":{"2":{"name":"invalid.deprecated.prefix.python"},"3":{"name":"storage.type.string.python"},"4":{"name":"punctuation.definition.string.begin.python"}},"end":"(\\4)|((?<!\\\\)\\n)","endCaptures":{"1":{"name":"punctuation.definition.string.end.python"},"2":{"name":"invalid.illegal.newline.python"}},"name":"string.quoted.raw.single.python","patterns":[{"include":"#string-single-bad-brace1-formatting-raw"},{"include":"#string-single-bad-brace2-formatting-raw"},{"include":"#string-raw-guts"}]},"string-single-bad-brace1-formatting-raw":{"begin":"(?=\\{%(.*?(?!([\"'])|((?<!\\\\)\\n)))%})","end":"(?=([\"'])|((?<!\\\\)\\n))","patterns":[{"include":"#string-consume-escape"}]},"string-single-bad-brace1-formatting-unicode":{"begin":"(?=\\{%(.*?(?!([\"'])|((?<!\\\\)\\n)))%})","end":"(?=([\"'])|((?<!\\\\)\\n))","patterns":[{"include":"#escape-sequence-unicode"},{"include":"#escape-sequence"},{"include":"#string-line-continuation"}]},"string-single-bad-brace2-formatting-raw":{"begin":"(?!\\{\\{)(?=\\{(\\w*?(?!([\"'])|((?<!\\\\)\\n))[^!.:\\[}\\w]).*?(?!([\"'])|((?<!\\\\)\\n))})","end":"(?=([\"'])|((?<!\\\\)\\n))","patterns":[{"include":"#string-consume-escape"},{"include":"#string-formatting"}]},"string-single-bad-brace2-formatting-unicode":{"begin":"(?!\\{\\{)(?=\\{(\\w*?(?!([\"'])|((?<!\\\\)\\n))[^!.:\\[}\\w]).*?(?!([\"'])|((?<!\\\\)\\n))})","end":"(?=([\"'])|((?<!\\\\)\\n))","patterns":[{"include":"#escape-sequence-unicode"},{"include":"#string-entity"}]},"string-unicode-guts":{"patterns":[{"include":"#escape-sequence-unicode"},{"include":"#string-entity"},{"include":"#string-brace-formatting"}]}},"scopeName":"source.python"}]