MCPcopy Index your code
hub / github.com/clips/pattern / _iterencode_dict

Function _iterencode_dict

pattern/web/json/encoder.py:431–521  ·  view source on GitHub ↗
(dct, _current_indent_level)

Source from the content-addressed store, hash-verified

429 del markers[markerid]
430
431 def _iterencode_dict(dct, _current_indent_level):
432 if not dct:
433 yield '{}'
434 return
435 if markers is not None:
436 markerid = id(dct)
437 if markerid in markers:
438 raise ValueError("Circular reference detected")
439 markers[markerid] = dct
440 yield '{'
441 if _indent is not None:
442 _current_indent_level += 1
443 newline_indent = '\n' + (_indent * _current_indent_level)
444 item_separator = _item_separator + newline_indent
445 yield newline_indent
446 else:
447 newline_indent = None
448 item_separator = _item_separator
449 first = True
450 if _item_sort_key:
451 items = dct.items()
452 items.sort(key=_item_sort_key)
453 elif _sort_keys:
454 items = dct.items()
455 items.sort(key=lambda kv: kv[0])
456 else:
457 items = dct.iteritems()
458 for key, value in items:
459 if isinstance(key, basestring):
460 pass
461 # JavaScript is weakly typed for these, so it makes sense to
462 # also allow them. Many encoders seem to do something like this.
463 elif isinstance(key, float):
464 key = _floatstr(key)
465 elif key is True:
466 key = 'true'
467 elif key is False:
468 key = 'false'
469 elif key is None:
470 key = 'null'
471 elif isinstance(key, (int, long)):
472 key = str(key)
473 elif _skipkeys:
474 continue
475 else:
476 raise TypeError("key " + repr(key) + " is not a string")
477 if first:
478 first = False
479 else:
480 yield item_separator
481 yield _encoder(key)
482 yield _key_separator
483 if isinstance(value, basestring):
484 yield _encoder(value)
485 elif value is None:
486 yield 'null'
487 elif value is True:
488 yield 'true'

Callers 2

encoder.pyFile · 0.85
_iterencodeFunction · 0.85

Calls 5

strFunction · 0.85
_iterencodeFunction · 0.85
iteritemsMethod · 0.80
itemsMethod · 0.45
sortMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…