MCPcopy Create free account
hub / github.com/simplejson/simplejson / _iterencode_dict

Function _iterencode_dict

simplejson/encoder.py:607–705  ·  view source on GitHub ↗
(dct, _current_indent_level)

Source from the content-addressed store, hash-verified

605 return key
606
607 def _iterencode_dict(dct, _current_indent_level):
608 if not dct:
609 yield '{}'
610 return
611 if markers is not None:
612 markerid = id(dct)
613 if markerid in markers:
614 raise ValueError("Circular reference detected")
615 markers[markerid] = dct
616 yield '{'
617 if _indent is not None:
618 _current_indent_level += 1
619 newline_indent = '\n' + (_indent * _current_indent_level)
620 item_separator = _item_separator + newline_indent
621 yield newline_indent
622 else:
623 newline_indent = None
624 item_separator = _item_separator
625 first = True
626 if _PY3:
627 iteritems = dct.items()
628 else:
629 iteritems = dct.iteritems()
630 if _item_sort_key:
631 items = []
632 for k, v in dct.items():
633 if not isinstance(k, string_types):
634 k = _stringify_key(k)
635 if k is None:
636 continue
637 items.append((k, v))
638 items.sort(key=_item_sort_key)
639 else:
640 items = iteritems
641 for key, value in items:
642 if not (_item_sort_key or isinstance(key, string_types)):
643 key = _stringify_key(key)
644 if key is None:
645 # _skipkeys must be True
646 continue
647 if first:
648 first = False
649 else:
650 yield item_separator
651 yield _encoder(key)
652 yield _key_separator
653 try:
654 if isinstance(value, string_types):
655 yield _encoder(value)
656 elif _PY3 and isinstance(value, bytes) and _encoding is not None:
657 yield _encoder(value)
658 elif isinstance(value, RawJSON):
659 yield value.encoded_json
660 elif value is None:
661 yield 'null'
662 elif value is True:
663 yield 'true'
664 elif value is False:

Callers 2

_iterencode_listFunction · 0.85
_iterencodeFunction · 0.85

Calls 5

_stringify_keyFunction · 0.85
_encode_intFunction · 0.85
call_methodFunction · 0.85
_iterencodeFunction · 0.85
_iterencode_listFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…