MCPcopy Index your code
hub / github.com/python/cpython / parse_inline_table

Function parse_inline_table

Lib/tomllib/_parser.py:514–545  ·  view source on GitHub ↗
(src: str, pos: Pos, parse_float: ParseFloat)

Source from the content-addressed store, hash-verified

512
513
514def parse_inline_table(src: str, pos: Pos, parse_float: ParseFloat) -> tuple[Pos, dict[str, Any]]:
515 pos += 1
516 nested_dict = NestedDict()
517 flags = Flags()
518
519 pos = skip_comments_and_array_ws(src, pos)
520 if src.startswith("}", pos):
521 return pos + 1, nested_dict.dict
522 while True:
523 pos, key, value = parse_key_value_pair(src, pos, parse_float)
524 key_parent, key_stem = key[:-1], key[-1]
525 if flags.is_(key, Flags.FROZEN):
526 raise TOMLDecodeError(f"Cannot mutate immutable namespace {key}", src, pos)
527 try:
528 nest = nested_dict.get_or_create_nest(key_parent, access_lists=False)
529 except KeyError:
530 raise TOMLDecodeError("Cannot overwrite a value", src, pos) from None
531 if key_stem in nest:
532 raise TOMLDecodeError(f"Duplicate inline table key {key_stem!r}", src, pos)
533 nest[key_stem] = value
534 pos = skip_comments_and_array_ws(src, pos)
535 c = src[pos : pos + 1]
536 if c == "}":
537 return pos + 1, nested_dict.dict
538 if c != ",":
539 raise TOMLDecodeError("Unclosed inline table", src, pos)
540 pos += 1
541 pos = skip_comments_and_array_ws(src, pos)
542 if src.startswith("}", pos):
543 return pos + 1, nested_dict.dict
544 if isinstance(value, (dict, list)):
545 flags.set(key, Flags.FROZEN, recursive=True)
546
547
548def parse_basic_str_escape(

Callers 1

parse_valueFunction · 0.85

Calls 9

is_Method · 0.95
get_or_create_nestMethod · 0.95
setMethod · 0.95
NestedDictClass · 0.85
FlagsClass · 0.85
parse_key_value_pairFunction · 0.85
TOMLDecodeErrorClass · 0.85
startswithMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…