class_docstr: Simple JSON <http://json.org> decoder
  
  Performs the following translations in decoding by default:
  
  +---------------+-------------------+
  | JSON          | Python            |
  +===============+===================+
  | object        | dict              |
  +---------------+-------------------+
  | array         | list              |
  +---------------+-------------------+
  | string        | str, unicode      |
  +---------------+-------------------+
  | number (int)  | int, long         |
  +---------------+-------------------+
  | number (real) | float             |
  +---------------+-------------------+
  | true          | True              |
  +---------------+-------------------+
  | false         | False             |
  +---------------+-------------------+
  | null          | None              |
  +---------------+-------------------+
  
  It also understands ``NaN``, ``Infinity``, and ``-Infinity`` as
  their corresponding ``float`` values, which is outside the JSON spec.
docstr: *encoding* determines the encoding used to interpret any
  :class:`str` objects decoded by this instance (``'utf-8'`` by
  default).  It has no effect when decoding :class:`unicode` objects.
  
  Note that currently only encodings that are a superset of ASCII work,
  strings of other encodings should be passed in as :class:`unicode`.
  
  *object_hook*, if specified, will be called with the result of every
  JSON object decoded and its return value will be used in place of the
  given :class:`dict`.  This can be used to provide custom
  deserializations (e.g. to support JSON-RPC class hinting).
  
  *object_pairs_hook* is an optional function that will be called with
  the result of any object literal decode with an ordered list of pairs.
  The return value of *object_pairs_hook* will be used instead of the
  :class:`dict`.  This feature can be used to implement custom decoders
  that rely on the order that the key and value pairs are decoded (for
  example, :func:`collections.OrderedDict` will remember the order of
  insertion). If *object_hook* is also defined, the *object_pairs_hook*
  takes priority.
  
  *parse_float*, if specified, will be called with the string of every
  JSON float to be decoded.  By default, this is equivalent to
  ``float(num_str)``. This can be used to use another datatype or parser
  for JSON floats (e.g. :class:`decimal.Decimal`).
  
  *parse_int*, if specified, will be called with the string of every
  JSON int to be decoded.  By default, this is equivalent to
  ``int(num_str)``.  This can be used to use another datatype or parser
  for JSON integers (e.g. :class:`float`).
  
  *parse_constant*, if specified, will be called with one of the
  following strings: ``'-Infinity'``, ``'Infinity'``, ``'NaN'``.  This
  can be used to raise an exception if invalid JSON numbers are
  encountered.
  
  *strict* controls the parser's behavior when it encounters an
  invalid control character in a string. The default setting of
  ``True`` means that unescaped control characters are parse errors, if
  ``False`` then control characters will be allowed in strings.
docstr_tok: ["*","encoding","*","determines","the","encoding","used","to","interpret","any",":","class",":","`","str","`","objects","decoded","by","this","instance","(","``","'utf-8","'","``","by","default",")",".","It","has","no","effect","when","decoding",":","class",":","`","unicode","`","objects",".","Note","that","currently","only","encodings","that","are","a","superset","of","ASCII","work",",","strings","of","other","encodings","should","be","passed","in","as",":","class",":","`","unicode","`",".","*","object_hook","*",",","if","specified",",","will","be","called","with","the","result","of","every","JSON","object","decoded","and","its","return","value","will","be","used","in","place","of","the","given",":","class",":","`","dict","`",".","This","can","be","used","to","provide","custom","deserializations","(","e.g",".","to","support","JSON-RPC","class","hinting",")",".","*","object_pairs_hook","*","is","an","optional","function","that","will","be","called","with","the","result","of","any","object","literal","decode","with","an","ordered","list","of","pairs",".","The","return","value","of","*","object_pairs_hook","*","will","be","used","instead","of","the",":","class",":","`","dict","`",".","This","feature","can","be","used","to","implement","custom","decoders","that","rely","on","the","order","that","the","key","and","value","pairs","are","decoded","(","for","example",",",":","func",":","`","collections.OrderedDict","`","will","remember","the","order","of","insertion",")",".","If","*","object_hook","*","is","also","defined",",","the","*","object_pairs_hook","*","takes","priority",".","*","parse_float","*",",","if","specified",",","will","be","called","with","the","string","of","every","JSON","float","to","be","decoded",".","By","default",",","this","is","equivalent","to","``","float","(","num_str",")","``",".","This","can","be","used","to","use","another","datatype","or","parser","for","JSON","floats","(","e.g",".",":","class",":","`","decimal.Decimal","`",")",".","*","parse_int","*",",","if","specified",",","will","be","called","with","the","string","of","every","JSON","int","to","be","decoded",".","By","default",",","this","is","equivalent","to","``","int","(","num_str",")","``",".","This","can","be","used","to","use","another","datatype","or","parser","for","JSON","integers","(","e.g",".",":","class",":","`","float","`",")",".","*","parse_constant","*",",","if","specified",",","will","be","called","with","one","of","the","following","strings",":","``","'-Infinity","'","``",",","``","'Infinity","'","``",",","``","'NaN","'","``",".","This","can","be","used","to","raise","an","exception","if","invalid","JSON","numbers","are","encountered",".","*","strict","*","controls","the","parser","'s","behavior","when","it","encounters","an","invalid","control","character","in","a","string",".","The","default","setting","of","``","True","``","means","that","unescaped","control","characters","are","parse","errors",",","if","``","False","``","then","control","characters","will","be","allowed","in","strings","."]
code: def __init__(
      self,
      encoding=None,
      object_hook=None,
      parse_float=None,
      parse_int=None,
      parse_constant=None,
      strict=True,
      object_pairs_hook=None,
  ):
      """
      *encoding* determines the encoding used to interpret any
      :class:`str` objects decoded by this instance (``'utf-8'`` by
      default).  It has no effect when decoding :class:`unicode` objects.
  
      Note that currently only encodings that are a superset of ASCII work,
      strings of other encodings should be passed in as :class:`unicode`.
  
      *object_hook*, if specified, will be called with the result of every
      JSON object decoded and its return value will be used in place of the
      given :class:`dict`.  This can be used to provide custom
      deserializations (e.g. to support JSON-RPC class hinting).
  
      *object_pairs_hook* is an optional function that will be called with
      the result of any object literal decode with an ordered list of pairs.
      The return value of *object_pairs_hook* will be used instead of the
      :class:`dict`.  This feature can be used to implement custom decoders
      that rely on the order that the key and value pairs are decoded (for
      example, :func:`collections.OrderedDict` will remember the order of
      insertion). If *object_hook* is also defined, the *object_pairs_hook*
      takes priority.
  
      *parse_float*, if specified, will be called with the string of every
      JSON float to be decoded.  By default, this is equivalent to
      ``float(num_str)``. This can be used to use another datatype or parser
      for JSON floats (e.g. :class:`decimal.Decimal`).
  
      *parse_int*, if specified, will be called with the string of every
      JSON int to be decoded.  By default, this is equivalent to
      ``int(num_str)``.  This can be used to use another datatype or parser
      for JSON integers (e.g. :class:`float`).
  
      *parse_constant*, if specified, will be called with one of the
      following strings: ``'-Infinity'``, ``'Infinity'``, ``'NaN'``.  This
      can be used to raise an exception if invalid JSON numbers are
      encountered.
  
      *strict* controls the parser's behavior when it encounters an
      invalid control character in a string. The default setting of
      ``True`` means that unescaped control characters are parse errors, if
      ``False`` then control characters will be allowed in strings.
  
      """
      if encoding is None:
          encoding = DEFAULT_ENCODING
      self.encoding = encoding
      self.object_hook = object_hook
      self.object_pairs_hook = object_pairs_hook
      self.parse_float = parse_float or float
      self.parse_int = parse_int or int
      self.parse_constant = parse_constant or _CONSTANTS.__getitem__
      self.strict = strict
      self.parse_object = JSONObject
      self.parse_array = JSONArray
      self.parse_string = scanstring
      self.memo = {}
      self.scan_once = make_scanner(self)
  
file_path: catboost/contrib/python/simplejson/py2/simplejson/decoder.py
imports: from __future__ import absolute_import
  import re
  import sys
  import struct
  from .compat import PY3, unichr
  from .scanner import make_scanner, JSONDecodeError
label_desc: Use image node_id 1 to create a new JSONDecoder object from inherited base classes: object with example: obj = JSONDecoder(encoding, object_hook, parse_float, parse_int, parse_constant, strict, object_pairs_hook)