Bug 777068 - Move simplejson to python/; r=glandium
This commit is contained in:
503
python/simplejson-2.1.1/docs/_sources/index.txt
Normal file
503
python/simplejson-2.1.1/docs/_sources/index.txt
Normal file
@@ -0,0 +1,503 @@
|
||||
:mod:`simplejson` --- JSON encoder and decoder
|
||||
==============================================
|
||||
|
||||
.. module:: simplejson
|
||||
:synopsis: Encode and decode the JSON format.
|
||||
.. moduleauthor:: Bob Ippolito <bob@redivi.com>
|
||||
.. sectionauthor:: Bob Ippolito <bob@redivi.com>
|
||||
|
||||
JSON (JavaScript Object Notation) <http://json.org> is a subset of JavaScript
|
||||
syntax (ECMA-262 3rd edition) used as a lightweight data interchange format.
|
||||
|
||||
:mod:`simplejson` exposes an API familiar to users of the standard library
|
||||
:mod:`marshal` and :mod:`pickle` modules. It is the externally maintained
|
||||
version of the :mod:`json` library contained in Python 2.6, but maintains
|
||||
compatibility with Python 2.5 and (currently) has
|
||||
significant performance advantages, even without using the optional C
|
||||
extension for speedups.
|
||||
|
||||
Encoding basic Python object hierarchies::
|
||||
|
||||
>>> import simplejson as json
|
||||
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
|
||||
'["foo", {"bar": ["baz", null, 1.0, 2]}]'
|
||||
>>> print json.dumps("\"foo\bar")
|
||||
"\"foo\bar"
|
||||
>>> print json.dumps(u'\u1234')
|
||||
"\u1234"
|
||||
>>> print json.dumps('\\')
|
||||
"\\"
|
||||
>>> print json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True)
|
||||
{"a": 0, "b": 0, "c": 0}
|
||||
>>> from StringIO import StringIO
|
||||
>>> io = StringIO()
|
||||
>>> json.dump(['streaming API'], io)
|
||||
>>> io.getvalue()
|
||||
'["streaming API"]'
|
||||
|
||||
Compact encoding::
|
||||
|
||||
>>> import simplejson as json
|
||||
>>> json.dumps([1,2,3,{'4': 5, '6': 7}], separators=(',',':'))
|
||||
'[1,2,3,{"4":5,"6":7}]'
|
||||
|
||||
Pretty printing::
|
||||
|
||||
>>> import simplejson as json
|
||||
>>> s = json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4 * ' ')
|
||||
>>> print '\n'.join([l.rstrip() for l in s.splitlines()])
|
||||
{
|
||||
"4": 5,
|
||||
"6": 7
|
||||
}
|
||||
|
||||
Decoding JSON::
|
||||
|
||||
>>> import simplejson as json
|
||||
>>> obj = [u'foo', {u'bar': [u'baz', None, 1.0, 2]}]
|
||||
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]') == obj
|
||||
True
|
||||
>>> json.loads('"\\"foo\\bar"') == u'"foo\x08ar'
|
||||
True
|
||||
>>> from StringIO import StringIO
|
||||
>>> io = StringIO('["streaming API"]')
|
||||
>>> json.load(io)[0] == 'streaming API'
|
||||
True
|
||||
|
||||
Using Decimal instead of float::
|
||||
|
||||
>>> import simplejson as json
|
||||
>>> from decimal import Decimal
|
||||
>>> json.loads('1.1', use_decimal=True) == Decimal('1.1')
|
||||
True
|
||||
>>> json.dumps(Decimal('1.1'), use_decimal=True) == '1.1'
|
||||
True
|
||||
|
||||
Specializing JSON object decoding::
|
||||
|
||||
>>> import simplejson as json
|
||||
>>> def as_complex(dct):
|
||||
... if '__complex__' in dct:
|
||||
... return complex(dct['real'], dct['imag'])
|
||||
... return dct
|
||||
...
|
||||
>>> json.loads('{"__complex__": true, "real": 1, "imag": 2}',
|
||||
... object_hook=as_complex)
|
||||
(1+2j)
|
||||
>>> import decimal
|
||||
>>> json.loads('1.1', parse_float=decimal.Decimal) == decimal.Decimal('1.1')
|
||||
True
|
||||
|
||||
Specializing JSON object encoding::
|
||||
|
||||
>>> import simplejson as json
|
||||
>>> def encode_complex(obj):
|
||||
... if isinstance(obj, complex):
|
||||
... return [obj.real, obj.imag]
|
||||
... raise TypeError(repr(o) + " is not JSON serializable")
|
||||
...
|
||||
>>> json.dumps(2 + 1j, default=encode_complex)
|
||||
'[2.0, 1.0]'
|
||||
>>> json.JSONEncoder(default=encode_complex).encode(2 + 1j)
|
||||
'[2.0, 1.0]'
|
||||
>>> ''.join(json.JSONEncoder(default=encode_complex).iterencode(2 + 1j))
|
||||
'[2.0, 1.0]'
|
||||
|
||||
|
||||
.. highlight:: none
|
||||
|
||||
Using :mod:`simplejson.tool` from the shell to validate and pretty-print::
|
||||
|
||||
$ echo '{"json":"obj"}' | python -m simplejson.tool
|
||||
{
|
||||
"json": "obj"
|
||||
}
|
||||
$ echo '{ 1.2:3.4}' | python -m simplejson.tool
|
||||
Expecting property name: line 1 column 2 (char 2)
|
||||
|
||||
.. highlight:: python
|
||||
|
||||
.. note::
|
||||
|
||||
The JSON produced by this module's default settings is a subset of
|
||||
YAML, so it may be used as a serializer for that as well.
|
||||
|
||||
|
||||
Basic Usage
|
||||
-----------
|
||||
|
||||
.. function:: dump(obj, fp[, skipkeys[, ensure_ascii[, check_circular[, allow_nan[, cls[, indent[, separators[, encoding[, default[, use_decimal[, **kw]]]]]]]]]]])
|
||||
|
||||
Serialize *obj* as a JSON formatted stream to *fp* (a ``.write()``-supporting
|
||||
file-like object).
|
||||
|
||||
If *skipkeys* is true (default: ``False``), then dict keys that are not
|
||||
of a basic type (:class:`str`, :class:`unicode`, :class:`int`, :class:`long`,
|
||||
:class:`float`, :class:`bool`, ``None``) will be skipped instead of raising a
|
||||
:exc:`TypeError`.
|
||||
|
||||
If *ensure_ascii* is false (default: ``True``), then some chunks written
|
||||
to *fp* may be :class:`unicode` instances, subject to normal Python
|
||||
:class:`str` to :class:`unicode` coercion rules. Unless ``fp.write()``
|
||||
explicitly understands :class:`unicode` (as in :func:`codecs.getwriter`) this
|
||||
is likely to cause an error. It's best to leave the default settings, because
|
||||
they are safe and it is highly optimized.
|
||||
|
||||
If *check_circular* is false (default: ``True``), then the circular
|
||||
reference check for container types will be skipped and a circular reference
|
||||
will result in an :exc:`OverflowError` (or worse).
|
||||
|
||||
If *allow_nan* is false (default: ``True``), then it will be a
|
||||
:exc:`ValueError` to serialize out of range :class:`float` values (``nan``,
|
||||
``inf``, ``-inf``) in strict compliance of the JSON specification.
|
||||
If *allow_nan* is true, their JavaScript equivalents will be used
|
||||
(``NaN``, ``Infinity``, ``-Infinity``).
|
||||
|
||||
If *indent* is a string, then JSON array elements and object members
|
||||
will be pretty-printed with a newline followed by that string repeated
|
||||
for each level of nesting. ``None`` (the default) selects the most compact
|
||||
representation without any newlines. For backwards compatibility with
|
||||
versions of simplejson earlier than 2.1.0, an integer is also accepted
|
||||
and is converted to a string with that many spaces.
|
||||
|
||||
.. versionchanged:: 2.1.0
|
||||
Changed *indent* from an integer number of spaces to a string.
|
||||
|
||||
If specified, *separators* should be an ``(item_separator, dict_separator)``
|
||||
tuple. By default, ``(', ', ': ')`` are used. To get the most compact JSON
|
||||
representation, you should specify ``(',', ':')`` to eliminate whitespace.
|
||||
|
||||
*encoding* is the character encoding for str instances, default is
|
||||
``'utf-8'``.
|
||||
|
||||
*default(obj)* is a function that should return a serializable version of
|
||||
*obj* or raise :exc:`TypeError`. The default simply raises :exc:`TypeError`.
|
||||
|
||||
To use a custom :class:`JSONEncoder` subclass (e.g. one that overrides the
|
||||
:meth:`default` method to serialize additional types), specify it with the
|
||||
*cls* kwarg.
|
||||
|
||||
If *use_decimal* is true (default: ``False``) then :class:`decimal.Decimal`
|
||||
will be natively serialized to JSON with full precision.
|
||||
|
||||
.. versionchanged:: 2.1.0
|
||||
*use_decimal* is new in 2.1.0.
|
||||
|
||||
.. note::
|
||||
|
||||
JSON is not a framed protocol so unlike :mod:`pickle` or :mod:`marshal` it
|
||||
does not make sense to serialize more than one JSON document without some
|
||||
container protocol to delimit them.
|
||||
|
||||
|
||||
.. function:: dumps(obj[, skipkeys[, ensure_ascii[, check_circular[, allow_nan[, cls[, indent[, separators[, encoding[, default[, use_decimal[, **kw]]]]]]]]]]])
|
||||
|
||||
Serialize *obj* to a JSON formatted :class:`str`.
|
||||
|
||||
If *ensure_ascii* is false, then the return value will be a
|
||||
:class:`unicode` instance. The other arguments have the same meaning as in
|
||||
:func:`dump`. Note that the default *ensure_ascii* setting has much
|
||||
better performance.
|
||||
|
||||
|
||||
.. function:: load(fp[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, use_decimal[, **kw]]]]]]]]])
|
||||
|
||||
Deserialize *fp* (a ``.read()``-supporting file-like object containing a JSON
|
||||
document) to a Python object.
|
||||
|
||||
If the contents of *fp* are encoded with an ASCII based encoding other than
|
||||
UTF-8 (e.g. latin-1), then an appropriate *encoding* name must be specified.
|
||||
Encodings that are not ASCII based (such as UCS-2) are not allowed, and
|
||||
should be wrapped with ``codecs.getreader(fp)(encoding)``, or simply decoded
|
||||
to a :class:`unicode` object and passed to :func:`loads`. The default
|
||||
setting of ``'utf-8'`` is fastest and should be using whenever possible.
|
||||
|
||||
If *fp.read()* returns :class:`str` then decoded JSON strings that contain
|
||||
only ASCII characters may be parsed as :class:`str` for performance and
|
||||
memory reasons. If your code expects only :class:`unicode` the appropriate
|
||||
solution is to wrap fp with a reader as demonstrated above.
|
||||
|
||||
*object_hook* is an optional function that will be called with the result of
|
||||
any object literal decode (a :class:`dict`). The return value of
|
||||
*object_hook* will be used instead of the :class:`dict`. This feature can be used
|
||||
to implement custom decoders (e.g. 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,
|
||||
:class:`collections.OrderedDict` will remember the order of insertion). If
|
||||
*object_hook* is also defined, the *object_pairs_hook* takes priority.
|
||||
|
||||
.. versionchanged:: 2.1.0
|
||||
Added support for *object_pairs_hook*.
|
||||
|
||||
*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.
|
||||
|
||||
If *use_decimal* is true (default: ``False``) then *parse_float* is set to
|
||||
:class:`decimal.Decimal`. This is a convenience for parity with the
|
||||
:func:`dump` parameter.
|
||||
|
||||
.. versionchanged:: 2.1.0
|
||||
*use_decimal* is new in 2.1.0.
|
||||
|
||||
To use a custom :class:`JSONDecoder` subclass, specify it with the ``cls``
|
||||
kwarg. Additional keyword arguments will be passed to the constructor of the
|
||||
class.
|
||||
|
||||
.. note::
|
||||
|
||||
:func:`load` will read the rest of the file-like object as a string and
|
||||
then call :func:`loads`. It does not stop at the end of the first valid
|
||||
JSON document it finds and it will raise an error if there is anything
|
||||
other than whitespace after the document. Except for files containing
|
||||
only one JSON document, it is recommended to use :func:`loads`.
|
||||
|
||||
|
||||
.. function:: loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, use_decimal[, **kw]]]]]]]]])
|
||||
|
||||
Deserialize *s* (a :class:`str` or :class:`unicode` instance containing a JSON
|
||||
document) to a Python object.
|
||||
|
||||
If *s* is a :class:`str` instance and is encoded with an ASCII based encoding
|
||||
other than UTF-8 (e.g. latin-1), then an appropriate *encoding* name must be
|
||||
specified. Encodings that are not ASCII based (such as UCS-2) are not
|
||||
allowed and should be decoded to :class:`unicode` first.
|
||||
|
||||
If *s* is a :class:`str` then decoded JSON strings that contain
|
||||
only ASCII characters may be parsed as :class:`str` for performance and
|
||||
memory reasons. If your code expects only :class:`unicode` the appropriate
|
||||
solution is decode *s* to :class:`unicode` prior to calling loads.
|
||||
|
||||
The other arguments have the same meaning as in :func:`load`.
|
||||
|
||||
|
||||
Encoders and decoders
|
||||
---------------------
|
||||
|
||||
.. class:: JSONDecoder([encoding[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, strict]]]]]]])
|
||||
|
||||
Simple JSON decoder.
|
||||
|
||||
Performs the following translations in decoding by default:
|
||||
|
||||
+---------------+-------------------+
|
||||
| JSON | Python |
|
||||
+===============+===================+
|
||||
| object | dict |
|
||||
+---------------+-------------------+
|
||||
| array | list |
|
||||
+---------------+-------------------+
|
||||
| string | 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.
|
||||
|
||||
*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* is an optional function that 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,
|
||||
:class:`collections.OrderedDict` will remember the order of insertion). If
|
||||
*object_hook* is also defined, the *object_pairs_hook* takes priority.
|
||||
|
||||
.. versionchanged:: 2.1.0
|
||||
Added support for *object_pairs_hook*.
|
||||
|
||||
*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.
|
||||
|
||||
.. method:: decode(s)
|
||||
|
||||
Return the Python representation of *s* (a :class:`str` or
|
||||
:class:`unicode` instance containing a JSON document)
|
||||
|
||||
If *s* is a :class:`str` then decoded JSON strings that contain
|
||||
only ASCII characters may be parsed as :class:`str` for performance and
|
||||
memory reasons. If your code expects only :class:`unicode` the
|
||||
appropriate solution is decode *s* to :class:`unicode` prior to calling
|
||||
decode.
|
||||
|
||||
.. method:: raw_decode(s)
|
||||
|
||||
Decode a JSON document from *s* (a :class:`str` or :class:`unicode`
|
||||
beginning with a JSON document) and return a 2-tuple of the Python
|
||||
representation and the index in *s* where the document ended.
|
||||
|
||||
This can be used to decode a JSON document from a string that may have
|
||||
extraneous data at the end.
|
||||
|
||||
|
||||
.. class:: JSONEncoder([skipkeys[, ensure_ascii[, check_circular[, allow_nan[, sort_keys[, indent[, separators[, encoding[, default]]]]]]]]])
|
||||
|
||||
Extensible JSON encoder for Python data structures.
|
||||
|
||||
Supports the following objects and types by default:
|
||||
|
||||
+-------------------+---------------+
|
||||
| Python | JSON |
|
||||
+===================+===============+
|
||||
| dict | object |
|
||||
+-------------------+---------------+
|
||||
| list, tuple | array |
|
||||
+-------------------+---------------+
|
||||
| str, unicode | string |
|
||||
+-------------------+---------------+
|
||||
| int, long, float | number |
|
||||
+-------------------+---------------+
|
||||
| True | true |
|
||||
+-------------------+---------------+
|
||||
| False | false |
|
||||
+-------------------+---------------+
|
||||
| None | null |
|
||||
+-------------------+---------------+
|
||||
|
||||
To extend this to recognize other objects, subclass and implement a
|
||||
:meth:`default` method with another method that returns a serializable object
|
||||
for ``o`` if possible, otherwise it should call the superclass implementation
|
||||
(to raise :exc:`TypeError`).
|
||||
|
||||
If *skipkeys* is false (the default), then it is a :exc:`TypeError` to
|
||||
attempt encoding of keys that are not str, int, long, float or None. If
|
||||
*skipkeys* is true, such items are simply skipped.
|
||||
|
||||
If *ensure_ascii* is true (the default), the output is guaranteed to be
|
||||
:class:`str` objects with all incoming unicode characters escaped. If
|
||||
*ensure_ascii* is false, the output will be a unicode object.
|
||||
|
||||
If *check_circular* is false (the default), then lists, dicts, and custom
|
||||
encoded objects will be checked for circular references during encoding to
|
||||
prevent an infinite recursion (which would cause an :exc:`OverflowError`).
|
||||
Otherwise, no such check takes place.
|
||||
|
||||
If *allow_nan* is true (the default), then ``NaN``, ``Infinity``, and
|
||||
``-Infinity`` will be encoded as such. This behavior is not JSON
|
||||
specification compliant, but is consistent with most JavaScript based
|
||||
encoders and decoders. Otherwise, it will be a :exc:`ValueError` to encode
|
||||
such floats.
|
||||
|
||||
If *sort_keys* is true (not the default), then the output of dictionaries
|
||||
will be sorted by key; this is useful for regression tests to ensure that
|
||||
JSON serializations can be compared on a day-to-day basis.
|
||||
|
||||
If *indent* is a string, then JSON array elements and object members
|
||||
will be pretty-printed with a newline followed by that string repeated
|
||||
for each level of nesting. ``None`` (the default) selects the most compact
|
||||
representation without any newlines. For backwards compatibility with
|
||||
versions of simplejson earlier than 2.1.0, an integer is also accepted
|
||||
and is converted to a string with that many spaces.
|
||||
|
||||
.. versionchanged:: 2.1.0
|
||||
Changed *indent* from an integer number of spaces to a string.
|
||||
|
||||
If specified, *separators* should be an ``(item_separator, key_separator)``
|
||||
tuple. By default, ``(', ', ': ')`` are used. To get the most compact JSON
|
||||
representation, you should specify ``(',', ':')`` to eliminate whitespace.
|
||||
|
||||
If specified, *default* should be a function that gets called for objects
|
||||
that can't otherwise be serialized. It should return a JSON encodable
|
||||
version of the object or raise a :exc:`TypeError`.
|
||||
|
||||
If *encoding* is not ``None``, then all input strings will be transformed
|
||||
into unicode using that encoding prior to JSON-encoding. The default is
|
||||
``'utf-8'``.
|
||||
|
||||
|
||||
.. method:: default(o)
|
||||
|
||||
Implement this method in a subclass such that it returns a serializable
|
||||
object for *o*, or calls the base implementation (to raise a
|
||||
:exc:`TypeError`).
|
||||
|
||||
For example, to support arbitrary iterators, you could implement default
|
||||
like this::
|
||||
|
||||
def default(self, o):
|
||||
try:
|
||||
iterable = iter(o)
|
||||
except TypeError:
|
||||
pass
|
||||
else:
|
||||
return list(iterable)
|
||||
return JSONEncoder.default(self, o)
|
||||
|
||||
|
||||
.. method:: encode(o)
|
||||
|
||||
Return a JSON string representation of a Python data structure, *o*. For
|
||||
example::
|
||||
|
||||
>>> import simplejson as json
|
||||
>>> json.JSONEncoder().encode({"foo": ["bar", "baz"]})
|
||||
'{"foo": ["bar", "baz"]}'
|
||||
|
||||
|
||||
.. method:: iterencode(o)
|
||||
|
||||
Encode the given object, *o*, and yield each string representation as
|
||||
available. For example::
|
||||
|
||||
for chunk in JSONEncoder().iterencode(bigobject):
|
||||
mysocket.write(chunk)
|
||||
|
||||
Note that :meth:`encode` has much better performance than
|
||||
:meth:`iterencode`.
|
||||
|
||||
.. class:: JSONEncoderForHTML([skipkeys[, ensure_ascii[, check_circular[, allow_nan[, sort_keys[, indent[, separators[, encoding[, default]]]]]]]]])
|
||||
|
||||
Subclass of :class:`JSONEncoder` that escapes &, <, and > for embedding in HTML.
|
||||
|
||||
.. versionchanged:: 2.1.0
|
||||
New in 2.1.0
|
||||
BIN
python/simplejson-2.1.1/docs/_static/contents.png
vendored
Normal file
BIN
python/simplejson-2.1.1/docs/_static/contents.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 202 B |
833
python/simplejson-2.1.1/docs/_static/default.css
vendored
Normal file
833
python/simplejson-2.1.1/docs/_static/default.css
vendored
Normal file
@@ -0,0 +1,833 @@
|
||||
/**
|
||||
* Sphinx Doc Design
|
||||
*/
|
||||
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: 100%;
|
||||
background-color: #11303d;
|
||||
color: #000;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* :::: LAYOUT :::: */
|
||||
|
||||
div.document {
|
||||
background-color: #1c4e63;
|
||||
}
|
||||
|
||||
div.documentwrapper {
|
||||
float: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.bodywrapper {
|
||||
margin: 0 0 0 230px;
|
||||
}
|
||||
|
||||
div.body {
|
||||
background-color: white;
|
||||
padding: 0 20px 30px 20px;
|
||||
}
|
||||
|
||||
div.sphinxsidebarwrapper {
|
||||
padding: 10px 5px 0 10px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar {
|
||||
float: left;
|
||||
width: 230px;
|
||||
margin-left: -100%;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
div.clearer {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
div.footer {
|
||||
color: #fff;
|
||||
width: 100%;
|
||||
padding: 9px 0 9px 0;
|
||||
text-align: center;
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
div.footer a {
|
||||
color: #fff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
div.related {
|
||||
background-color: #133f52;
|
||||
color: #fff;
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
div.related h3 {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.related ul {
|
||||
margin: 0;
|
||||
padding: 0 0 0 10px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
div.related li {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
div.related li.right {
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
div.related a {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* ::: TOC :::: */
|
||||
div.sphinxsidebar h3 {
|
||||
font-family: 'Trebuchet MS', sans-serif;
|
||||
color: white;
|
||||
font-size: 1.4em;
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h4 {
|
||||
font-family: 'Trebuchet MS', sans-serif;
|
||||
color: white;
|
||||
font-size: 1.3em;
|
||||
font-weight: normal;
|
||||
margin: 5px 0 0 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar p {
|
||||
color: white;
|
||||
}
|
||||
|
||||
div.sphinxsidebar p.topless {
|
||||
margin: 5px 10px 10px 10px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul {
|
||||
margin: 10px;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
color: white;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul ul,
|
||||
div.sphinxsidebar ul.want-points {
|
||||
margin-left: 20px;
|
||||
list-style: square;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul ul {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar a {
|
||||
color: #98dbcc;
|
||||
}
|
||||
|
||||
div.sphinxsidebar form {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar input {
|
||||
border: 1px solid #98dbcc;
|
||||
font-family: sans-serif;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
/* :::: MODULE CLOUD :::: */
|
||||
div.modulecloud {
|
||||
margin: -5px 10px 5px 10px;
|
||||
padding: 10px;
|
||||
line-height: 160%;
|
||||
border: 1px solid #cbe7e5;
|
||||
background-color: #f2fbfd;
|
||||
}
|
||||
|
||||
div.modulecloud a {
|
||||
padding: 0 5px 0 5px;
|
||||
}
|
||||
|
||||
/* :::: SEARCH :::: */
|
||||
ul.search {
|
||||
margin: 10px 0 0 20px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul.search li {
|
||||
padding: 5px 0 5px 20px;
|
||||
background-image: url(file.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0 7px;
|
||||
}
|
||||
|
||||
ul.search li a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ul.search li div.context {
|
||||
color: #888;
|
||||
margin: 2px 0 0 30px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
ul.keywordmatches li.goodmatch a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* :::: COMMON FORM STYLES :::: */
|
||||
|
||||
div.actions {
|
||||
padding: 5px 10px 5px 10px;
|
||||
border-top: 1px solid #cbe7e5;
|
||||
border-bottom: 1px solid #cbe7e5;
|
||||
background-color: #e0f6f4;
|
||||
}
|
||||
|
||||
form dl {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
form dt {
|
||||
clear: both;
|
||||
float: left;
|
||||
min-width: 110px;
|
||||
margin-right: 10px;
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
input#homepage {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.error {
|
||||
margin: 5px 20px 0 0;
|
||||
padding: 5px;
|
||||
border: 1px solid #d00;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* :::: INLINE COMMENTS :::: */
|
||||
|
||||
div.inlinecomments {
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
}
|
||||
|
||||
div.inlinecomments a.bubble {
|
||||
display: block;
|
||||
float: right;
|
||||
background-image: url(style/comment.png);
|
||||
background-repeat: no-repeat;
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
text-align: center;
|
||||
padding-top: 3px;
|
||||
font-size: 0.9em;
|
||||
line-height: 14px;
|
||||
font-weight: bold;
|
||||
color: black;
|
||||
}
|
||||
|
||||
div.inlinecomments a.bubble span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.inlinecomments a.emptybubble {
|
||||
background-image: url(style/nocomment.png);
|
||||
}
|
||||
|
||||
div.inlinecomments a.bubble:hover {
|
||||
background-image: url(style/hovercomment.png);
|
||||
text-decoration: none;
|
||||
color: #3ca0a4;
|
||||
}
|
||||
|
||||
div.inlinecomments div.comments {
|
||||
float: right;
|
||||
margin: 25px 5px 0 0;
|
||||
max-width: 50em;
|
||||
min-width: 30em;
|
||||
border: 1px solid #2eabb0;
|
||||
background-color: #f2fbfd;
|
||||
z-index: 150;
|
||||
}
|
||||
|
||||
div#comments {
|
||||
border: 1px solid #2eabb0;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
div#comments div.nocomments {
|
||||
padding: 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.inlinecomments div.comments h3,
|
||||
div#comments h3 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #2eabb0;
|
||||
color: white;
|
||||
border: none;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
div.inlinecomments div.comments div.actions {
|
||||
padding: 4px;
|
||||
margin: 0;
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
div#comments div.comment {
|
||||
margin: 10px;
|
||||
border: 1px solid #2eabb0;
|
||||
}
|
||||
|
||||
div.inlinecomments div.comment h4,
|
||||
div.commentwindow div.comment h4,
|
||||
div#comments div.comment h4 {
|
||||
margin: 10px 0 0 0;
|
||||
background-color: #2eabb0;
|
||||
color: white;
|
||||
border: none;
|
||||
padding: 1px 4px 1px 4px;
|
||||
}
|
||||
|
||||
div#comments div.comment h4 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div#comments div.comment h4 a {
|
||||
color: #d5f4f4;
|
||||
}
|
||||
|
||||
div.inlinecomments div.comment div.text,
|
||||
div.commentwindow div.comment div.text,
|
||||
div#comments div.comment div.text {
|
||||
margin: -5px 0 -5px 0;
|
||||
padding: 0 10px 0 10px;
|
||||
}
|
||||
|
||||
div.inlinecomments div.comment div.meta,
|
||||
div.commentwindow div.comment div.meta,
|
||||
div#comments div.comment div.meta {
|
||||
text-align: right;
|
||||
padding: 2px 10px 2px 0;
|
||||
font-size: 95%;
|
||||
color: #538893;
|
||||
border-top: 1px solid #cbe7e5;
|
||||
background-color: #e0f6f4;
|
||||
}
|
||||
|
||||
div.commentwindow {
|
||||
position: absolute;
|
||||
width: 500px;
|
||||
border: 1px solid #cbe7e5;
|
||||
background-color: #f2fbfd;
|
||||
display: none;
|
||||
z-index: 130;
|
||||
}
|
||||
|
||||
div.commentwindow h3 {
|
||||
margin: 0;
|
||||
background-color: #2eabb0;
|
||||
color: white;
|
||||
border: none;
|
||||
padding: 5px;
|
||||
font-size: 1.5em;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
div.commentwindow div.actions {
|
||||
margin: 10px -10px 0 -10px;
|
||||
padding: 4px 10px 4px 10px;
|
||||
color: #538893;
|
||||
}
|
||||
|
||||
div.commentwindow div.actions input {
|
||||
border: 1px solid #2eabb0;
|
||||
background-color: white;
|
||||
color: #135355;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
div.commentwindow div.form {
|
||||
padding: 0 10px 0 10px;
|
||||
}
|
||||
|
||||
div.commentwindow div.form input,
|
||||
div.commentwindow div.form textarea {
|
||||
border: 1px solid #3c9ea2;
|
||||
background-color: white;
|
||||
color: black;
|
||||
}
|
||||
|
||||
div.commentwindow div.error {
|
||||
margin: 10px 5px 10px 5px;
|
||||
background-color: #fbe5dc;
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.commentwindow div.form textarea {
|
||||
width: 99%;
|
||||
}
|
||||
|
||||
div.commentwindow div.preview {
|
||||
margin: 10px 0 10px 0;
|
||||
background-color: #70d0d4;
|
||||
padding: 0 1px 1px 25px;
|
||||
}
|
||||
|
||||
div.commentwindow div.preview h4 {
|
||||
margin: 0 0 -5px -20px;
|
||||
padding: 4px 0 0 4px;
|
||||
color: white;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
div.commentwindow div.preview div.comment {
|
||||
background-color: #f2fbfd;
|
||||
}
|
||||
|
||||
div.commentwindow div.preview div.comment h4 {
|
||||
margin: 10px 0 0 0!important;
|
||||
padding: 1px 4px 1px 4px!important;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
/* :::: SUGGEST CHANGES :::: */
|
||||
div#suggest-changes-box input, div#suggest-changes-box textarea {
|
||||
border: 1px solid #ccc;
|
||||
background-color: white;
|
||||
color: black;
|
||||
}
|
||||
|
||||
div#suggest-changes-box textarea {
|
||||
width: 99%;
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
|
||||
/* :::: PREVIEW :::: */
|
||||
div.preview {
|
||||
background-image: url(style/preview.png);
|
||||
padding: 0 20px 20px 20px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
|
||||
/* :::: INDEX PAGE :::: */
|
||||
|
||||
table.contentstable {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
table.contentstable p.biglink {
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
a.biglink {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
span.linkdescr {
|
||||
font-style: italic;
|
||||
padding-top: 5px;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
/* :::: INDEX STYLES :::: */
|
||||
|
||||
table.indextable td {
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.indextable dl, table.indextable dd {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
table.indextable tr.pcap {
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
table.indextable tr.cap {
|
||||
margin-top: 10px;
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
|
||||
img.toggler {
|
||||
margin-right: 3px;
|
||||
margin-top: 3px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
form.pfform {
|
||||
margin: 10px 0 20px 0;
|
||||
}
|
||||
|
||||
/* :::: GLOBAL STYLES :::: */
|
||||
|
||||
.docwarning {
|
||||
background-color: #ffe4e4;
|
||||
padding: 10px;
|
||||
margin: 0 -20px 0 -20px;
|
||||
border-bottom: 1px solid #f66;
|
||||
}
|
||||
|
||||
p.subhead {
|
||||
font-weight: bold;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #355f7c;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
div.body h1,
|
||||
div.body h2,
|
||||
div.body h3,
|
||||
div.body h4,
|
||||
div.body h5,
|
||||
div.body h6 {
|
||||
font-family: 'Trebuchet MS', sans-serif;
|
||||
background-color: #f2f2f2;
|
||||
font-weight: normal;
|
||||
color: #20435c;
|
||||
border-bottom: 1px solid #ccc;
|
||||
margin: 20px -20px 10px -20px;
|
||||
padding: 3px 0 3px 10px;
|
||||
}
|
||||
|
||||
div.body h1 { margin-top: 0; font-size: 200%; }
|
||||
div.body h2 { font-size: 160%; }
|
||||
div.body h3 { font-size: 140%; }
|
||||
div.body h4 { font-size: 120%; }
|
||||
div.body h5 { font-size: 110%; }
|
||||
div.body h6 { font-size: 100%; }
|
||||
|
||||
a.headerlink {
|
||||
color: #c60f0f;
|
||||
font-size: 0.8em;
|
||||
padding: 0 4px 0 4px;
|
||||
text-decoration: none;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
h1:hover > a.headerlink,
|
||||
h2:hover > a.headerlink,
|
||||
h3:hover > a.headerlink,
|
||||
h4:hover > a.headerlink,
|
||||
h5:hover > a.headerlink,
|
||||
h6:hover > a.headerlink,
|
||||
dt:hover > a.headerlink {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
a.headerlink:hover {
|
||||
background-color: #c60f0f;
|
||||
color: white;
|
||||
}
|
||||
|
||||
div.body p, div.body dd, div.body li {
|
||||
text-align: justify;
|
||||
line-height: 130%;
|
||||
}
|
||||
|
||||
div.body p.caption {
|
||||
text-align: inherit;
|
||||
}
|
||||
|
||||
div.body td {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
ul.fakelist {
|
||||
list-style: none;
|
||||
margin: 10px 0 10px 20px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.field-list ul {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.first {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
/* "Footnotes" heading */
|
||||
p.rubric {
|
||||
margin-top: 30px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* "Topics" */
|
||||
|
||||
div.topic {
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
padding: 0 7px 0 7px;
|
||||
margin: 10px 0 10px 0;
|
||||
}
|
||||
|
||||
p.topic-title {
|
||||
font-size: 1.1em;
|
||||
font-weight: bold;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* Admonitions */
|
||||
|
||||
div.admonition {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
padding: 7px;
|
||||
}
|
||||
|
||||
div.admonition dt {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.admonition dl {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
div.admonition p {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
div.seealso {
|
||||
background-color: #ffc;
|
||||
border: 1px solid #ff6;
|
||||
}
|
||||
|
||||
div.warning {
|
||||
background-color: #ffe4e4;
|
||||
border: 1px solid #f66;
|
||||
}
|
||||
|
||||
div.note {
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
p.admonition-title {
|
||||
margin: 0px 10px 5px 0px;
|
||||
font-weight: bold;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
p.admonition-title:after {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
div.body p.centered {
|
||||
text-align: center;
|
||||
margin-top: 25px;
|
||||
}
|
||||
|
||||
table.docutils {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
table.docutils td, table.docutils th {
|
||||
padding: 1px 8px 1px 0;
|
||||
border-top: 0;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
border-bottom: 1px solid #aaa;
|
||||
}
|
||||
|
||||
table.field-list td, table.field-list th {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
table.footnote td, table.footnote th {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
.field-list ul {
|
||||
margin: 0;
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.field-list p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
dl {
|
||||
margin-bottom: 15px;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
dd p {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
dd ul, dd table {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 10px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
.refcount {
|
||||
color: #060;
|
||||
}
|
||||
|
||||
dt:target,
|
||||
.highlight {
|
||||
background-color: #fbe54e;
|
||||
}
|
||||
|
||||
dl.glossary dt {
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: left;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 5px;
|
||||
background-color: #efc;
|
||||
color: #333;
|
||||
border: 1px solid #ac9;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
td.linenos pre {
|
||||
padding: 5px 0px;
|
||||
border: 0;
|
||||
background-color: transparent;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
table.highlighttable {
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
|
||||
table.highlighttable td {
|
||||
padding: 0 0.5em 0 0.5em;
|
||||
}
|
||||
|
||||
tt {
|
||||
background-color: #ecf0f3;
|
||||
padding: 0 1px 0 1px;
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
tt.descname {
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
tt.descclassname {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
tt.xref, a tt {
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.footnote:target { background-color: #ffa }
|
||||
|
||||
h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.optional {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
.versionmodified {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
form.comment {
|
||||
margin: 0;
|
||||
padding: 10px 30px 10px 30px;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
form.comment h3 {
|
||||
background-color: #326591;
|
||||
color: white;
|
||||
margin: -10px -30px 10px -30px;
|
||||
padding: 5px;
|
||||
font-size: 1.4em;
|
||||
}
|
||||
|
||||
form.comment input,
|
||||
form.comment textarea {
|
||||
border: 1px solid #ccc;
|
||||
padding: 2px;
|
||||
font-family: sans-serif;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
form.comment input[type="text"] {
|
||||
width: 240px;
|
||||
}
|
||||
|
||||
form.comment textarea {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.system-message {
|
||||
background-color: #fda;
|
||||
padding: 5px;
|
||||
border: 3px solid red;
|
||||
}
|
||||
|
||||
/* :::: PRINT :::: */
|
||||
@media print {
|
||||
div.document,
|
||||
div.documentwrapper,
|
||||
div.bodywrapper {
|
||||
margin: 0;
|
||||
width : 100%;
|
||||
}
|
||||
|
||||
div.sphinxsidebar,
|
||||
div.related,
|
||||
div.footer,
|
||||
div#comments div.new-comment-box,
|
||||
#top-link {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
352
python/simplejson-2.1.1/docs/_static/doctools.js
vendored
Normal file
352
python/simplejson-2.1.1/docs/_static/doctools.js
vendored
Normal file
@@ -0,0 +1,352 @@
|
||||
/// XXX: make it cross browser
|
||||
|
||||
/**
|
||||
* make the code below compatible with browsers without
|
||||
* an installed firebug like debugger
|
||||
*/
|
||||
if (!window.console || !console.firebug) {
|
||||
var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
|
||||
"group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
|
||||
window.console = {};
|
||||
for (var i = 0; i < names.length; ++i)
|
||||
window.console[names[i]] = function() {}
|
||||
}
|
||||
|
||||
/**
|
||||
* small helper function to urldecode strings
|
||||
*/
|
||||
jQuery.urldecode = function(x) {
|
||||
return decodeURIComponent(x).replace(/\+/g, ' ');
|
||||
}
|
||||
|
||||
/**
|
||||
* small helper function to urlencode strings
|
||||
*/
|
||||
jQuery.urlencode = encodeURIComponent;
|
||||
|
||||
/**
|
||||
* This function returns the parsed url parameters of the
|
||||
* current request. Multiple values per key are supported,
|
||||
* it will always return arrays of strings for the value parts.
|
||||
*/
|
||||
jQuery.getQueryParameters = function(s) {
|
||||
if (typeof s == 'undefined')
|
||||
s = document.location.search;
|
||||
var parts = s.substr(s.indexOf('?') + 1).split('&');
|
||||
var result = {};
|
||||
for (var i = 0; i < parts.length; i++) {
|
||||
var tmp = parts[i].split('=', 2);
|
||||
var key = jQuery.urldecode(tmp[0]);
|
||||
var value = jQuery.urldecode(tmp[1]);
|
||||
if (key in result)
|
||||
result[key].push(value);
|
||||
else
|
||||
result[key] = [value];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* small function to check if an array contains
|
||||
* a given item.
|
||||
*/
|
||||
jQuery.contains = function(arr, item) {
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
if (arr[i] == item)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* highlight a given string on a jquery object by wrapping it in
|
||||
* span elements with the given class name.
|
||||
*/
|
||||
jQuery.fn.highlightText = function(text, className) {
|
||||
function highlight(node) {
|
||||
if (node.nodeType == 3) {
|
||||
var val = node.nodeValue;
|
||||
var pos = val.toLowerCase().indexOf(text);
|
||||
if (pos >= 0 && !jQuery.className.has(node.parentNode, className)) {
|
||||
var span = document.createElement("span");
|
||||
span.className = className;
|
||||
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
|
||||
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
|
||||
document.createTextNode(val.substr(pos + text.length)),
|
||||
node.nextSibling));
|
||||
node.nodeValue = val.substr(0, pos);
|
||||
}
|
||||
}
|
||||
else if (!jQuery(node).is("button, select, textarea")) {
|
||||
jQuery.each(node.childNodes, function() {
|
||||
highlight(this)
|
||||
});
|
||||
}
|
||||
}
|
||||
return this.each(function() {
|
||||
highlight(this);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Small JavaScript module for the documentation.
|
||||
*/
|
||||
var Documentation = {
|
||||
|
||||
init : function() {
|
||||
/* this.addContextElements(); -- now done statically */
|
||||
this.fixFirefoxAnchorBug();
|
||||
this.highlightSearchWords();
|
||||
this.initModIndex();
|
||||
this.initComments();
|
||||
},
|
||||
|
||||
/**
|
||||
* add context elements like header anchor links
|
||||
*/
|
||||
addContextElements : function() {
|
||||
for (var i = 1; i <= 6; i++) {
|
||||
$('h' + i + '[@id]').each(function() {
|
||||
$('<a class="headerlink">\u00B6</a>').
|
||||
attr('href', '#' + this.id).
|
||||
attr('title', 'Permalink to this headline').
|
||||
appendTo(this);
|
||||
});
|
||||
}
|
||||
$('dt[@id]').each(function() {
|
||||
$('<a class="headerlink">\u00B6</a>').
|
||||
attr('href', '#' + this.id).
|
||||
attr('title', 'Permalink to this definition').
|
||||
appendTo(this);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* workaround a firefox stupidity
|
||||
*/
|
||||
fixFirefoxAnchorBug : function() {
|
||||
if (document.location.hash && $.browser.mozilla)
|
||||
window.setTimeout(function() {
|
||||
document.location.href += '';
|
||||
}, 10);
|
||||
},
|
||||
|
||||
/**
|
||||
* highlight the search words provided in the url in the text
|
||||
*/
|
||||
highlightSearchWords : function() {
|
||||
var params = $.getQueryParameters();
|
||||
var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
|
||||
if (terms.length) {
|
||||
var body = $('div.body');
|
||||
window.setTimeout(function() {
|
||||
$.each(terms, function() {
|
||||
body.highlightText(this.toLowerCase(), 'highlight');
|
||||
});
|
||||
}, 10);
|
||||
$('<li class="highlight-link"><a href="javascript:Documentation.' +
|
||||
'hideSearchWords()">Hide Search Matches</a></li>')
|
||||
.appendTo($('.sidebar .this-page-menu'));
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* init the modindex toggle buttons
|
||||
*/
|
||||
initModIndex : function() {
|
||||
var togglers = $('img.toggler').click(function() {
|
||||
var src = $(this).attr('src');
|
||||
var idnum = $(this).attr('id').substr(7);
|
||||
console.log($('tr.cg-' + idnum).toggle());
|
||||
if (src.substr(-9) == 'minus.png')
|
||||
$(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
|
||||
else
|
||||
$(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
|
||||
}).css('display', '');
|
||||
if (DOCUMENTATION_OPTIONS.COLLAPSE_MODINDEX) {
|
||||
togglers.click();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* init the inline comments
|
||||
*/
|
||||
initComments : function() {
|
||||
$('.inlinecomments div.actions').each(function() {
|
||||
this.innerHTML += ' | ';
|
||||
$(this).append($('<a href="#">hide comments</a>').click(function() {
|
||||
$(this).parent().parent().toggle();
|
||||
return false;
|
||||
}));
|
||||
});
|
||||
$('.inlinecomments .comments').hide();
|
||||
$('.inlinecomments a.bubble').each(function() {
|
||||
$(this).click($(this).is('.emptybubble') ? function() {
|
||||
var params = $.getQueryParameters(this.href);
|
||||
Documentation.newComment(params.target[0]);
|
||||
return false;
|
||||
} : function() {
|
||||
$('.comments', $(this).parent().parent()[0]).toggle();
|
||||
return false;
|
||||
});
|
||||
});
|
||||
$('#comments div.actions a.newcomment').click(function() {
|
||||
Documentation.newComment();
|
||||
return false;
|
||||
});
|
||||
if (document.location.hash.match(/^#comment-/))
|
||||
$('.inlinecomments .comments ' + document.location.hash)
|
||||
.parent().toggle();
|
||||
},
|
||||
|
||||
/**
|
||||
* helper function to hide the search marks again
|
||||
*/
|
||||
hideSearchWords : function() {
|
||||
$('.sidebar .this-page-menu li.highlight-link').fadeOut(300);
|
||||
$('span.highlight').removeClass('highlight');
|
||||
},
|
||||
|
||||
/**
|
||||
* show the comment window for a certain id or the whole page.
|
||||
*/
|
||||
newComment : function(id) {
|
||||
Documentation.CommentWindow.openFor(id || '');
|
||||
},
|
||||
|
||||
/**
|
||||
* write a new comment from within a comment view box
|
||||
*/
|
||||
newCommentFromBox : function(link) {
|
||||
var params = $.getQueryParameters(link.href);
|
||||
$(link).parent().parent().fadeOut('slow');
|
||||
this.newComment(params.target);
|
||||
},
|
||||
|
||||
/**
|
||||
* make the url absolute
|
||||
*/
|
||||
makeURL : function(relativeURL) {
|
||||
return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
|
||||
},
|
||||
|
||||
/**
|
||||
* get the current relative url
|
||||
*/
|
||||
getCurrentURL : function() {
|
||||
var path = document.location.pathname;
|
||||
var parts = path.split(/\//);
|
||||
$.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
|
||||
if (this == '..')
|
||||
parts.pop();
|
||||
});
|
||||
var url = parts.join('/');
|
||||
return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
|
||||
},
|
||||
|
||||
/**
|
||||
* class that represents the comment window
|
||||
*/
|
||||
CommentWindow : (function() {
|
||||
var openWindows = {};
|
||||
|
||||
var Window = function(sectionID) {
|
||||
this.url = Documentation.makeURL('@comments/' + Documentation.getCurrentURL()
|
||||
+ '/?target=' + $.urlencode(sectionID) + '&mode=ajax');
|
||||
this.sectionID = sectionID;
|
||||
|
||||
this.root = $('<div class="commentwindow"></div>');
|
||||
this.root.appendTo($('body'));
|
||||
this.title = $('<h3>New Comment</h3>').appendTo(this.root);
|
||||
this.body = $('<div class="form">please wait...</div>').appendTo(this.root);
|
||||
this.resizeHandle = $('<div class="resizehandle"></div>').appendTo(this.root);
|
||||
|
||||
this.root.Draggable({
|
||||
handle: this.title[0]
|
||||
});
|
||||
|
||||
this.root.css({
|
||||
left: window.innerWidth / 2 - $(this.root).width() / 2,
|
||||
top: window.scrollY + (window.innerHeight / 2 - 150)
|
||||
});
|
||||
this.root.fadeIn('slow');
|
||||
this.updateView();
|
||||
};
|
||||
|
||||
Window.prototype.updateView = function(data) {
|
||||
var self = this;
|
||||
function update(data) {
|
||||
if (data.posted) {
|
||||
document.location.hash = '#comment-' + data.commentID;
|
||||
document.location.reload();
|
||||
}
|
||||
else {
|
||||
self.body.html(data.body);
|
||||
$('div.actions', self.body).append($('<input>')
|
||||
.attr('type', 'button')
|
||||
.attr('value', 'Close')
|
||||
.click(function() { self.close(); })
|
||||
);
|
||||
$('div.actions input[@name="preview"]')
|
||||
.attr('type', 'button')
|
||||
.click(function() { self.submitForm($('form', self.body)[0], true); });
|
||||
$('form', self.body).bind("submit", function() {
|
||||
self.submitForm(this);
|
||||
return false;
|
||||
});
|
||||
|
||||
if (data.error) {
|
||||
self.root.Highlight(1000, '#aadee1');
|
||||
$('div.error', self.root).slideDown(500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof data == 'undefined')
|
||||
$.getJSON(this.url, function(json) { update(json); });
|
||||
else
|
||||
$.ajax({
|
||||
url: this.url,
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: data,
|
||||
success: function(json) { update(json); }
|
||||
});
|
||||
}
|
||||
|
||||
Window.prototype.getFormValue = function(name) {
|
||||
return $('*[@name="' + name + '"]', this.body)[0].value;
|
||||
}
|
||||
|
||||
Window.prototype.submitForm = function(form, previewMode) {
|
||||
this.updateView({
|
||||
author: form.author.value,
|
||||
author_mail: form.author_mail.value,
|
||||
title: form.title.value,
|
||||
comment_body: form.comment_body.value,
|
||||
preview: previewMode ? 'yes' : ''
|
||||
});
|
||||
}
|
||||
|
||||
Window.prototype.close = function() {
|
||||
var self = this;
|
||||
delete openWindows[this.sectionID];
|
||||
this.root.fadeOut('slow', function() {
|
||||
self.root.remove();
|
||||
});
|
||||
}
|
||||
|
||||
Window.openFor = function(sectionID) {
|
||||
if (sectionID in openWindows)
|
||||
return openWindows[sectionID];
|
||||
return new Window(sectionID);
|
||||
}
|
||||
|
||||
return Window;
|
||||
})()
|
||||
};
|
||||
|
||||
|
||||
$(document).ready(function() {
|
||||
Documentation.init();
|
||||
});
|
||||
BIN
python/simplejson-2.1.1/docs/_static/file.png
vendored
Normal file
BIN
python/simplejson-2.1.1/docs/_static/file.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 392 B |
8
python/simplejson-2.1.1/docs/_static/interface.js
vendored
Normal file
8
python/simplejson-2.1.1/docs/_static/interface.js
vendored
Normal file
File diff suppressed because one or more lines are too long
32
python/simplejson-2.1.1/docs/_static/jquery.js
vendored
Normal file
32
python/simplejson-2.1.1/docs/_static/jquery.js
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
python/simplejson-2.1.1/docs/_static/minus.png
vendored
Normal file
BIN
python/simplejson-2.1.1/docs/_static/minus.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 199 B |
BIN
python/simplejson-2.1.1/docs/_static/navigation.png
vendored
Normal file
BIN
python/simplejson-2.1.1/docs/_static/navigation.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 218 B |
BIN
python/simplejson-2.1.1/docs/_static/plus.png
vendored
Normal file
BIN
python/simplejson-2.1.1/docs/_static/plus.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 199 B |
59
python/simplejson-2.1.1/docs/_static/pygments.css
vendored
Normal file
59
python/simplejson-2.1.1/docs/_static/pygments.css
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
.c { color: #408090; font-style: italic } /* Comment */
|
||||
.err { border: 1px solid #FF0000 } /* Error */
|
||||
.k { color: #007020; font-weight: bold } /* Keyword */
|
||||
.o { color: #666666 } /* Operator */
|
||||
.cm { color: #408090; font-style: italic } /* Comment.Multiline */
|
||||
.cp { color: #007020 } /* Comment.Preproc */
|
||||
.c1 { color: #408090; font-style: italic } /* Comment.Single */
|
||||
.cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
|
||||
.gd { color: #A00000 } /* Generic.Deleted */
|
||||
.ge { font-style: italic } /* Generic.Emph */
|
||||
.gr { color: #FF0000 } /* Generic.Error */
|
||||
.gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
||||
.gi { color: #00A000 } /* Generic.Inserted */
|
||||
.go { color: #303030 } /* Generic.Output */
|
||||
.gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
|
||||
.gs { font-weight: bold } /* Generic.Strong */
|
||||
.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
||||
.gt { color: #0040D0 } /* Generic.Traceback */
|
||||
.kc { color: #007020; font-weight: bold } /* Keyword.Constant */
|
||||
.kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
|
||||
.kp { color: #007020 } /* Keyword.Pseudo */
|
||||
.kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
|
||||
.kt { color: #902000 } /* Keyword.Type */
|
||||
.m { color: #208050 } /* Literal.Number */
|
||||
.s { color: #4070a0 } /* Literal.String */
|
||||
.na { color: #4070a0 } /* Name.Attribute */
|
||||
.nb { color: #007020 } /* Name.Builtin */
|
||||
.nc { color: #0e84b5; font-weight: bold } /* Name.Class */
|
||||
.no { color: #60add5 } /* Name.Constant */
|
||||
.nd { color: #555555; font-weight: bold } /* Name.Decorator */
|
||||
.ni { color: #d55537; font-weight: bold } /* Name.Entity */
|
||||
.ne { color: #007020 } /* Name.Exception */
|
||||
.nf { color: #06287e } /* Name.Function */
|
||||
.nl { color: #002070; font-weight: bold } /* Name.Label */
|
||||
.nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
|
||||
.nt { color: #062873; font-weight: bold } /* Name.Tag */
|
||||
.nv { color: #bb60d5 } /* Name.Variable */
|
||||
.ow { color: #007020; font-weight: bold } /* Operator.Word */
|
||||
.w { color: #bbbbbb } /* Text.Whitespace */
|
||||
.mf { color: #208050 } /* Literal.Number.Float */
|
||||
.mh { color: #208050 } /* Literal.Number.Hex */
|
||||
.mi { color: #208050 } /* Literal.Number.Integer */
|
||||
.mo { color: #208050 } /* Literal.Number.Oct */
|
||||
.sb { color: #4070a0 } /* Literal.String.Backtick */
|
||||
.sc { color: #4070a0 } /* Literal.String.Char */
|
||||
.sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
|
||||
.s2 { color: #4070a0 } /* Literal.String.Double */
|
||||
.se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
|
||||
.sh { color: #4070a0 } /* Literal.String.Heredoc */
|
||||
.si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
|
||||
.sx { color: #c65d09 } /* Literal.String.Other */
|
||||
.sr { color: #235388 } /* Literal.String.Regex */
|
||||
.s1 { color: #4070a0 } /* Literal.String.Single */
|
||||
.ss { color: #517918 } /* Literal.String.Symbol */
|
||||
.bp { color: #007020 } /* Name.Builtin.Pseudo */
|
||||
.vc { color: #bb60d5 } /* Name.Variable.Class */
|
||||
.vg { color: #bb60d5 } /* Name.Variable.Global */
|
||||
.vi { color: #bb60d5 } /* Name.Variable.Instance */
|
||||
.il { color: #208050 } /* Literal.Number.Integer.Long */
|
||||
16
python/simplejson-2.1.1/docs/_static/rightsidebar.css
vendored
Normal file
16
python/simplejson-2.1.1/docs/_static/rightsidebar.css
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Sphinx Doc Design -- Right Side Bar Overrides
|
||||
*/
|
||||
|
||||
|
||||
div.sphinxsidebar {
|
||||
float: right;
|
||||
}
|
||||
|
||||
div.bodywrapper {
|
||||
margin: 0 230px 0 0;
|
||||
}
|
||||
|
||||
div.inlinecomments {
|
||||
right: 250px;
|
||||
}
|
||||
404
python/simplejson-2.1.1/docs/_static/searchtools.js
vendored
Normal file
404
python/simplejson-2.1.1/docs/_static/searchtools.js
vendored
Normal file
@@ -0,0 +1,404 @@
|
||||
/**
|
||||
* helper function to return a node containing the
|
||||
* search summary for a given text. keywords is a list
|
||||
* of stemmed words, hlwords is the list of normal, unstemmed
|
||||
* words. the first one is used to find the occurance, the
|
||||
* latter for highlighting it.
|
||||
*/
|
||||
jQuery.makeSearchSummary = function(text, keywords, hlwords) {
|
||||
var textLower = text.toLowerCase();
|
||||
var start = 0;
|
||||
$.each(keywords, function() {
|
||||
var i = textLower.indexOf(this.toLowerCase());
|
||||
if (i > -1) {
|
||||
start = i;
|
||||
}
|
||||
});
|
||||
start = Math.max(start - 120, 0);
|
||||
var excerpt = ((start > 0) ? '...' : '') +
|
||||
$.trim(text.substr(start, 240)) +
|
||||
((start + 240 - text.length) ? '...' : '');
|
||||
var rv = $('<div class="context"></div>').text(excerpt);
|
||||
$.each(hlwords, function() {
|
||||
rv = rv.highlightText(this, 'highlight');
|
||||
});
|
||||
return rv;
|
||||
}
|
||||
|
||||
/**
|
||||
* Porter Stemmer
|
||||
*/
|
||||
var PorterStemmer = function() {
|
||||
|
||||
var step2list = {
|
||||
ational: 'ate',
|
||||
tional: 'tion',
|
||||
enci: 'ence',
|
||||
anci: 'ance',
|
||||
izer: 'ize',
|
||||
bli: 'ble',
|
||||
alli: 'al',
|
||||
entli: 'ent',
|
||||
eli: 'e',
|
||||
ousli: 'ous',
|
||||
ization: 'ize',
|
||||
ation: 'ate',
|
||||
ator: 'ate',
|
||||
alism: 'al',
|
||||
iveness: 'ive',
|
||||
fulness: 'ful',
|
||||
ousness: 'ous',
|
||||
aliti: 'al',
|
||||
iviti: 'ive',
|
||||
biliti: 'ble',
|
||||
logi: 'log'
|
||||
};
|
||||
|
||||
var step3list = {
|
||||
icate: 'ic',
|
||||
ative: '',
|
||||
alize: 'al',
|
||||
iciti: 'ic',
|
||||
ical: 'ic',
|
||||
ful: '',
|
||||
ness: ''
|
||||
};
|
||||
|
||||
var c = "[^aeiou]"; // consonant
|
||||
var v = "[aeiouy]"; // vowel
|
||||
var C = c + "[^aeiouy]*"; // consonant sequence
|
||||
var V = v + "[aeiou]*"; // vowel sequence
|
||||
|
||||
var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
|
||||
var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
|
||||
var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
|
||||
var s_v = "^(" + C + ")?" + v; // vowel in stem
|
||||
|
||||
this.stemWord = function (w) {
|
||||
var stem;
|
||||
var suffix;
|
||||
var firstch;
|
||||
var origword = w;
|
||||
|
||||
if (w.length < 3) {
|
||||
return w;
|
||||
}
|
||||
|
||||
var re;
|
||||
var re2;
|
||||
var re3;
|
||||
var re4;
|
||||
|
||||
firstch = w.substr(0,1);
|
||||
if (firstch == "y") {
|
||||
w = firstch.toUpperCase() + w.substr(1);
|
||||
}
|
||||
|
||||
// Step 1a
|
||||
re = /^(.+?)(ss|i)es$/;
|
||||
re2 = /^(.+?)([^s])s$/;
|
||||
|
||||
if (re.test(w)) {
|
||||
w = w.replace(re,"$1$2");
|
||||
}
|
||||
else if (re2.test(w)) {
|
||||
w = w.replace(re2,"$1$2");
|
||||
}
|
||||
|
||||
// Step 1b
|
||||
re = /^(.+?)eed$/;
|
||||
re2 = /^(.+?)(ed|ing)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
re = new RegExp(mgr0);
|
||||
if (re.test(fp[1])) {
|
||||
re = /.$/;
|
||||
w = w.replace(re,"");
|
||||
}
|
||||
}
|
||||
else if (re2.test(w)) {
|
||||
var fp = re2.exec(w);
|
||||
stem = fp[1];
|
||||
re2 = new RegExp(s_v);
|
||||
if (re2.test(stem)) {
|
||||
w = stem;
|
||||
re2 = /(at|bl|iz)$/;
|
||||
re3 = new RegExp("([^aeiouylsz])\\1$");
|
||||
re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
|
||||
if (re2.test(w)) {
|
||||
w = w + "e";
|
||||
}
|
||||
else if (re3.test(w)) {
|
||||
re = /.$/; w = w.replace(re,"");
|
||||
}
|
||||
else if (re4.test(w)) {
|
||||
w = w + "e";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Step 1c
|
||||
re = /^(.+?)y$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
re = new RegExp(s_v);
|
||||
if (re.test(stem)) { w = stem + "i"; }
|
||||
}
|
||||
|
||||
// Step 2
|
||||
re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
suffix = fp[2];
|
||||
re = new RegExp(mgr0);
|
||||
if (re.test(stem)) {
|
||||
w = stem + step2list[suffix];
|
||||
}
|
||||
}
|
||||
|
||||
// Step 3
|
||||
re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
suffix = fp[2];
|
||||
re = new RegExp(mgr0);
|
||||
if (re.test(stem)) {
|
||||
w = stem + step3list[suffix];
|
||||
}
|
||||
}
|
||||
|
||||
// Step 4
|
||||
re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
|
||||
re2 = /^(.+?)(s|t)(ion)$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
re = new RegExp(mgr1);
|
||||
if (re.test(stem)) {
|
||||
w = stem;
|
||||
}
|
||||
}
|
||||
else if (re2.test(w)) {
|
||||
var fp = re2.exec(w);
|
||||
stem = fp[1] + fp[2];
|
||||
re2 = new RegExp(mgr1);
|
||||
if (re2.test(stem)) {
|
||||
w = stem;
|
||||
}
|
||||
}
|
||||
|
||||
// Step 5
|
||||
re = /^(.+?)e$/;
|
||||
if (re.test(w)) {
|
||||
var fp = re.exec(w);
|
||||
stem = fp[1];
|
||||
re = new RegExp(mgr1);
|
||||
re2 = new RegExp(meq1);
|
||||
re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
|
||||
if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {
|
||||
w = stem;
|
||||
}
|
||||
}
|
||||
re = /ll$/;
|
||||
re2 = new RegExp(mgr1);
|
||||
if (re.test(w) && re2.test(w)) {
|
||||
re = /.$/;
|
||||
w = w.replace(re,"");
|
||||
}
|
||||
|
||||
// and turn initial Y back to y
|
||||
if (firstch == "y") {
|
||||
w = firstch.toLowerCase() + w.substr(1);
|
||||
}
|
||||
return w;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Search Module
|
||||
*/
|
||||
var Search = {
|
||||
|
||||
init : function() {
|
||||
var params = $.getQueryParameters();
|
||||
if (params.q) {
|
||||
var query = params.q[0];
|
||||
$('input[@name="q"]')[0].value = query;
|
||||
this.performSearch(query);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* perform a search for something
|
||||
*/
|
||||
performSearch : function(query) {
|
||||
// create the required interface elements
|
||||
var out = $('#search-results');
|
||||
var title = $('<h2>Searching</h2>').appendTo(out);
|
||||
var dots = $('<span></span>').appendTo(title);
|
||||
var status = $('<p style="display: none"></p>').appendTo(out);
|
||||
var output = $('<ul class="search"/>').appendTo(out);
|
||||
|
||||
// spawn a background runner for updating the dots
|
||||
// until the search has finished
|
||||
var pulseStatus = 0;
|
||||
function pulse() {
|
||||
pulseStatus = (pulseStatus + 1) % 4;
|
||||
var dotString = '';
|
||||
for (var i = 0; i < pulseStatus; i++) {
|
||||
dotString += '.';
|
||||
}
|
||||
dots.text(dotString);
|
||||
if (pulseStatus > -1) {
|
||||
window.setTimeout(pulse, 500);
|
||||
}
|
||||
};
|
||||
pulse();
|
||||
|
||||
// stem the searchwords and add them to the
|
||||
// correct list
|
||||
var stemmer = new PorterStemmer();
|
||||
var searchwords = [];
|
||||
var excluded = [];
|
||||
var hlwords = [];
|
||||
var tmp = query.split(/\s+/);
|
||||
for (var i = 0; i < tmp.length; i++) {
|
||||
// stem the word
|
||||
var word = stemmer.stemWord(tmp[i]).toLowerCase();
|
||||
// select the correct list
|
||||
if (word[0] == '-') {
|
||||
var toAppend = excluded;
|
||||
word = word.substr(1);
|
||||
}
|
||||
else {
|
||||
var toAppend = searchwords;
|
||||
hlwords.push(tmp[i].toLowerCase());
|
||||
}
|
||||
// only add if not already in the list
|
||||
if (!$.contains(toAppend, word)) {
|
||||
toAppend.push(word);
|
||||
}
|
||||
};
|
||||
var highlightstring = '?highlight=' + $.urlencode(hlwords.join(" "));
|
||||
|
||||
console.debug('SEARCH: searching for:');
|
||||
console.info('required: ', searchwords);
|
||||
console.info('excluded: ', excluded);
|
||||
|
||||
// fetch searchindex and perform search
|
||||
$.getJSON('searchindex.json', function(data) {
|
||||
|
||||
// prepare search
|
||||
var filenames = data[0];
|
||||
var titles = data[1]
|
||||
var words = data[2];
|
||||
var fileMap = {};
|
||||
var files = null;
|
||||
|
||||
// perform the search on the required words
|
||||
for (var i = 0; i < searchwords.length; i++) {
|
||||
var word = searchwords[i];
|
||||
// no match but word was a required one
|
||||
if ((files = words[word]) == null) {
|
||||
break;
|
||||
}
|
||||
// create the mapping
|
||||
for (var j = 0; j < files.length; j++) {
|
||||
var file = files[j];
|
||||
if (file in fileMap) {
|
||||
fileMap[file].push(word);
|
||||
}
|
||||
else {
|
||||
fileMap[file] = [word];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// now check if the files are in the correct
|
||||
// areas and if the don't contain excluded words
|
||||
var results = [];
|
||||
for (var file in fileMap) {
|
||||
var valid = true;
|
||||
|
||||
// check if all requirements are matched
|
||||
if (fileMap[file].length != searchwords.length) {
|
||||
continue;
|
||||
}
|
||||
// ensure that none of the excluded words is in the
|
||||
// search result.
|
||||
for (var i = 0; i < excluded.length; i++) {
|
||||
if ($.contains(words[excluded[i]] || [], file)) {
|
||||
valid = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// if we have still a valid result we can add it
|
||||
// to the result list
|
||||
if (valid) {
|
||||
results.push([filenames[file], titles[file]]);
|
||||
}
|
||||
}
|
||||
|
||||
// delete unused variables in order to not waste
|
||||
// memory until list is retrieved completely
|
||||
delete filenames, titles, words, data;
|
||||
|
||||
// now sort the results by title
|
||||
results.sort(function(a, b) {
|
||||
var left = a[1].toLowerCase();
|
||||
var right = b[1].toLowerCase();
|
||||
return (left > right) ? -1 : ((left < right) ? 1 : 0);
|
||||
});
|
||||
|
||||
// print the results
|
||||
var resultCount = results.length;
|
||||
function displayNextItem() {
|
||||
// results left, load the summary and display it
|
||||
if (results.length) {
|
||||
var item = results.pop();
|
||||
var listItem = $('<li style="display:none"></li>');
|
||||
listItem.append($('<a/>').attr(
|
||||
'href',
|
||||
item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
|
||||
highlightstring).html(item[1]));
|
||||
$.get('_sources/' + item[0] + '.txt', function(data) {
|
||||
listItem.append($.makeSearchSummary(data, searchwords, hlwords));
|
||||
output.append(listItem);
|
||||
listItem.slideDown(10, function() {
|
||||
displayNextItem();
|
||||
});
|
||||
});
|
||||
}
|
||||
// search finished, update title and status message
|
||||
else {
|
||||
pulseStatus = -1;
|
||||
title.text('Search Results');
|
||||
if (!resultCount) {
|
||||
status.text('Your search did not match any documents. ' +
|
||||
'Please make sure that all words are spelled ' +
|
||||
'correctly and that you\'ve selected enough ' +
|
||||
'categories.');
|
||||
}
|
||||
else {
|
||||
status.text('Search finished, found ' + resultCount +
|
||||
' page' + (resultCount != 1 ? 's' : '') +
|
||||
' matching the search query.');
|
||||
}
|
||||
status.fadeIn(500);
|
||||
}
|
||||
}
|
||||
displayNextItem();
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
Search.init();
|
||||
});
|
||||
504
python/simplejson-2.1.1/docs/_static/sphinxdoc.css
vendored
Normal file
504
python/simplejson-2.1.1/docs/_static/sphinxdoc.css
vendored
Normal file
@@ -0,0 +1,504 @@
|
||||
/**
|
||||
* Alternate Sphinx design
|
||||
* Originally created by Armin Ronacher for Werkzeug, adapted by Georg Brandl.
|
||||
*/
|
||||
|
||||
body {
|
||||
font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif;
|
||||
font-size: 14px;
|
||||
letter-spacing: -0.01em;
|
||||
line-height: 150%;
|
||||
text-align: center;
|
||||
/*background-color: #AFC1C4; */
|
||||
background-color: #BFD1D4;
|
||||
color: black;
|
||||
padding: 0;
|
||||
border: 1px solid #aaa;
|
||||
|
||||
margin: 0px 80px 0px 80px;
|
||||
min-width: 740px;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #CA7900;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #2491CF;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
|
||||
font-size: 0.95em;
|
||||
letter-spacing: 0.015em;
|
||||
padding: 0.5em;
|
||||
border: 1px solid #ccc;
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
|
||||
td.linenos pre {
|
||||
padding: 0.5em 0;
|
||||
border: 0;
|
||||
background-color: transparent;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
table.highlighttable {
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
|
||||
table.highlighttable td {
|
||||
padding: 0 0.5em 0 0.5em;
|
||||
}
|
||||
|
||||
cite, code, tt {
|
||||
font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
|
||||
font-size: 0.95em;
|
||||
letter-spacing: 0.01em;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 1px solid #abc;
|
||||
margin: 2em;
|
||||
}
|
||||
|
||||
tt {
|
||||
background-color: #f2f2f2;
|
||||
border-bottom: 1px solid #ddd;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
tt.descname {
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
font-size: 1.2em;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
tt.descclassname {
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
tt.xref {
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
a tt {
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
border: 0;
|
||||
color: #CA7900;
|
||||
}
|
||||
|
||||
a tt:hover {
|
||||
color: #2491CF;
|
||||
}
|
||||
|
||||
.field-list ul {
|
||||
margin: 0;
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.field-list p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
dl {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
dd p {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
dd ul, dd table {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 10px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
.refcount {
|
||||
color: #060;
|
||||
}
|
||||
|
||||
dt:target,
|
||||
.highlight {
|
||||
background-color: #fbe54e;
|
||||
}
|
||||
|
||||
dl.glossary dt {
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
pre {
|
||||
line-height: 120%;
|
||||
}
|
||||
|
||||
pre a {
|
||||
color: inherit;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.first {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
div.document {
|
||||
background-color: white;
|
||||
text-align: left;
|
||||
background-image: url(contents.png);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
/*
|
||||
div.documentwrapper {
|
||||
width: 100%;
|
||||
}
|
||||
*/
|
||||
|
||||
div.clearer {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
div.related h3 {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.related ul {
|
||||
background-image: url(navigation.png);
|
||||
height: 2em;
|
||||
list-style: none;
|
||||
border-top: 1px solid #ddd;
|
||||
border-bottom: 1px solid #ddd;
|
||||
margin: 0;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
div.related ul li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 2em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
div.related ul li.right {
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
div.related ul li a {
|
||||
margin: 0;
|
||||
padding: 0 5px 0 5px;
|
||||
line-height: 1.75em;
|
||||
color: #EE9816;
|
||||
}
|
||||
|
||||
div.related ul li a:hover {
|
||||
color: #3CA8E7;
|
||||
}
|
||||
|
||||
div.body {
|
||||
margin: 0;
|
||||
padding: 0.5em 20px 20px 20px;
|
||||
}
|
||||
|
||||
div.bodywrapper {
|
||||
margin: 0 240px 0 0;
|
||||
border-right: 1px solid #ccc;
|
||||
}
|
||||
|
||||
div.body a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
div.sphinxsidebar {
|
||||
margin: 0;
|
||||
padding: 0.5em 15px 15px 0;
|
||||
width: 210px;
|
||||
float: right;
|
||||
text-align: left;
|
||||
/* margin-left: -100%; */
|
||||
}
|
||||
|
||||
div.sphinxsidebar h4, div.sphinxsidebar h3 {
|
||||
margin: 1em 0 0.5em 0;
|
||||
font-size: 0.9em;
|
||||
padding: 0.1em 0 0.1em 0.5em;
|
||||
color: white;
|
||||
border: 1px solid #86989B;
|
||||
background-color: #AFC1C4;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul {
|
||||
padding-left: 1.5em;
|
||||
margin-top: 7px;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
line-height: 130%;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul ul {
|
||||
list-style: square;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0.8em 0 0.5em 0;
|
||||
}
|
||||
|
||||
p.rubric {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin: 0;
|
||||
padding: 0.7em 0 0.3em 0;
|
||||
font-size: 1.5em;
|
||||
color: #11557C;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin: 1.3em 0 0.2em 0;
|
||||
font-size: 1.35em;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 1em 0 -0.3em 0;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
|
||||
color: black!important;
|
||||
}
|
||||
|
||||
h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor {
|
||||
display: none;
|
||||
margin: 0 0 0 0.3em;
|
||||
padding: 0 0.2em 0 0.2em;
|
||||
color: #aaa!important;
|
||||
}
|
||||
|
||||
h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor,
|
||||
h5:hover a.anchor, h6:hover a.anchor {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover,
|
||||
h5 a.anchor:hover, h6 a.anchor:hover {
|
||||
color: #777;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
margin: 0 -0.5em 0 -0.5em;
|
||||
}
|
||||
|
||||
table td, table th {
|
||||
padding: 0.2em 0.5em 0.2em 0.5em;
|
||||
}
|
||||
|
||||
div.footer {
|
||||
background-color: #E3EFF1;
|
||||
color: #86989B;
|
||||
padding: 3px 8px 3px 0;
|
||||
clear: both;
|
||||
font-size: 0.8em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.footer a {
|
||||
color: #86989B;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
div.pagination {
|
||||
margin-top: 2em;
|
||||
padding-top: 0.5em;
|
||||
border-top: 1px solid black;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul.toc {
|
||||
margin: 1em 0 1em 0;
|
||||
padding: 0 0 0 0.5em;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul.toc li {
|
||||
margin: 0.5em 0 0.5em 0;
|
||||
font-size: 0.9em;
|
||||
line-height: 130%;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul.toc li p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul.toc ul {
|
||||
margin: 0.2em 0 0.2em 0;
|
||||
padding: 0 0 0 1.8em;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul.toc ul li {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.admonition, div.warning {
|
||||
font-size: 0.9em;
|
||||
margin: 1em 0 0 0;
|
||||
border: 1px solid #86989B;
|
||||
background-color: #f7f7f7;
|
||||
}
|
||||
|
||||
div.admonition p, div.warning p {
|
||||
margin: 0.5em 1em 0.5em 1em;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.admonition pre, div.warning pre {
|
||||
margin: 0.4em 1em 0.4em 1em;
|
||||
}
|
||||
|
||||
div.admonition p.admonition-title,
|
||||
div.warning p.admonition-title {
|
||||
margin: 0;
|
||||
padding: 0.1em 0 0.1em 0.5em;
|
||||
color: white;
|
||||
border-bottom: 1px solid #86989B;
|
||||
font-weight: bold;
|
||||
background-color: #AFC1C4;
|
||||
}
|
||||
|
||||
div.warning {
|
||||
border: 1px solid #940000;
|
||||
}
|
||||
|
||||
div.warning p.admonition-title {
|
||||
background-color: #CF0000;
|
||||
border-bottom-color: #940000;
|
||||
}
|
||||
|
||||
div.admonition ul, div.admonition ol,
|
||||
div.warning ul, div.warning ol {
|
||||
margin: 0.1em 0.5em 0.5em 3em;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.versioninfo {
|
||||
margin: 1em 0 0 0;
|
||||
border: 1px solid #ccc;
|
||||
background-color: #DDEAF0;
|
||||
padding: 8px;
|
||||
line-height: 1.3em;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
|
||||
a.headerlink {
|
||||
color: #c60f0f!important;
|
||||
font-size: 1em;
|
||||
margin-left: 6px;
|
||||
padding: 0 4px 0 4px;
|
||||
text-decoration: none!important;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
h1:hover > a.headerlink,
|
||||
h2:hover > a.headerlink,
|
||||
h3:hover > a.headerlink,
|
||||
h4:hover > a.headerlink,
|
||||
h5:hover > a.headerlink,
|
||||
h6:hover > a.headerlink,
|
||||
dt:hover > a.headerlink {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
a.headerlink:hover {
|
||||
background-color: #ccc;
|
||||
color: white!important;
|
||||
}
|
||||
|
||||
table.indextable td {
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.indextable dl, table.indextable dd {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
table.indextable tr.pcap {
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
table.indextable tr.cap {
|
||||
margin-top: 10px;
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
|
||||
img.toggler {
|
||||
margin-right: 3px;
|
||||
margin-top: 3px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
form.pfform {
|
||||
margin: 10px 0 20px 0;
|
||||
}
|
||||
|
||||
table.contentstable {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
table.contentstable p.biglink {
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
a.biglink {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
span.linkdescr {
|
||||
font-style: italic;
|
||||
padding-top: 5px;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
ul.search {
|
||||
margin: 10px 0 0 20px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul.search li {
|
||||
padding: 5px 0 5px 20px;
|
||||
background-image: url(file.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0 7px;
|
||||
}
|
||||
|
||||
ul.search li a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ul.search li div.context {
|
||||
color: #888;
|
||||
margin: 2px 0 0 30px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
ul.keywordmatches li.goodmatch a {
|
||||
font-weight: bold;
|
||||
}
|
||||
19
python/simplejson-2.1.1/docs/_static/stickysidebar.css
vendored
Normal file
19
python/simplejson-2.1.1/docs/_static/stickysidebar.css
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Sphinx Doc Design -- Sticky sidebar Overrides
|
||||
*/
|
||||
|
||||
div.sphinxsidebar {
|
||||
top: 30px;
|
||||
left: 0px;
|
||||
position: fixed;
|
||||
margin: 0;
|
||||
float: none;
|
||||
}
|
||||
|
||||
div.related {
|
||||
position: fixed;
|
||||
}
|
||||
|
||||
div.documentwrapper {
|
||||
margin-top: 30px;
|
||||
}
|
||||
700
python/simplejson-2.1.1/docs/_static/traditional.css
vendored
Normal file
700
python/simplejson-2.1.1/docs/_static/traditional.css
vendored
Normal file
@@ -0,0 +1,700 @@
|
||||
/**
|
||||
* Sphinx Doc Design -- traditional python.org style
|
||||
*/
|
||||
|
||||
body {
|
||||
color: #000;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* :::: LAYOUT :::: */
|
||||
|
||||
div.documentwrapper {
|
||||
float: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.bodywrapper {
|
||||
margin: 0 230px 0 0;
|
||||
}
|
||||
|
||||
div.body {
|
||||
background-color: white;
|
||||
padding: 0 20px 30px 20px;
|
||||
}
|
||||
|
||||
div.sphinxsidebarwrapper {
|
||||
border: 1px solid #99ccff;
|
||||
padding: 10px;
|
||||
margin: 10px 15px 10px 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar {
|
||||
float: right;
|
||||
margin-left: -100%;
|
||||
width: 230px;
|
||||
}
|
||||
|
||||
div.clearer {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
div.footer {
|
||||
clear: both;
|
||||
width: 100%;
|
||||
background-color: #99ccff;
|
||||
padding: 9px 0 9px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.related {
|
||||
background-color: #99ccff;
|
||||
color: #333;
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
border-bottom: 5px solid white;
|
||||
}
|
||||
|
||||
div.related h3 {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.related ul {
|
||||
margin: 0;
|
||||
padding: 0 0 0 10px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
div.related li {
|
||||
display: inline;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.related li.right {
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
/* ::: SIDEBAR :::: */
|
||||
div.sphinxsidebar h3 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar h4 {
|
||||
margin: 5px 0 0 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar p.topless {
|
||||
margin: 5px 10px 10px 10px;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul {
|
||||
margin: 10px;
|
||||
margin-left: 15px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar ul ul {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar form {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
|
||||
/* :::: SEARCH :::: */
|
||||
ul.search {
|
||||
margin: 10px 0 0 20px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul.search li {
|
||||
padding: 5px 0 5px 20px;
|
||||
background-image: url(file.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0 7px;
|
||||
}
|
||||
|
||||
ul.search li a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ul.search li div.context {
|
||||
color: #888;
|
||||
margin: 2px 0 0 30px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
ul.keywordmatches li.goodmatch a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* :::: COMMON FORM STYLES :::: */
|
||||
|
||||
div.actions {
|
||||
border-top: 1px solid #aaa;
|
||||
background-color: #ddd;
|
||||
margin: 10px 0 0 -20px;
|
||||
padding: 5px 0 5px 20px;
|
||||
}
|
||||
|
||||
form dl {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
form dt {
|
||||
clear: both;
|
||||
float: left;
|
||||
min-width: 110px;
|
||||
margin-right: 10px;
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
input#homepage {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.error {
|
||||
margin: 5px 20px 0 0;
|
||||
padding: 5px;
|
||||
border: 1px solid #d00;
|
||||
/*border: 2px solid #05171e;
|
||||
background-color: #092835;
|
||||
color: white;*/
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* :::: INLINE COMMENTS :::: */
|
||||
|
||||
div.inlinecommentswrapper {
|
||||
float: right;
|
||||
max-width: 40%;
|
||||
}
|
||||
|
||||
div.commentmarker {
|
||||
float: right;
|
||||
background-image: url(style/comment.png);
|
||||
background-repeat: no-repeat;
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
text-align: center;
|
||||
padding-top: 3px;
|
||||
}
|
||||
|
||||
div.nocommentmarker {
|
||||
float: right;
|
||||
background-image: url(style/nocomment.png);
|
||||
background-repeat: no-repeat;
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
div.inlinecomments {
|
||||
margin-left: 10px;
|
||||
margin-bottom: 5px;
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
div.inlinecomment {
|
||||
border-top: 1px solid #ccc;
|
||||
padding-top: 5px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.inlinecomments p {
|
||||
margin: 5px 0 5px 0;
|
||||
}
|
||||
|
||||
.inlinecomments .head {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.inlinecomments .meta {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
|
||||
/* :::: COMMENTS :::: */
|
||||
|
||||
div#comments h3 {
|
||||
border-top: 1px solid #aaa;
|
||||
padding: 5px 20px 5px 20px;
|
||||
margin: 20px -20px 20px -20px;
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
/*
|
||||
div#comments {
|
||||
background-color: #ccc;
|
||||
margin: 40px -20px -30px -20px;
|
||||
padding: 0 0 1px 0;
|
||||
}
|
||||
|
||||
div#comments h4 {
|
||||
margin: 30px 0 20px 0;
|
||||
background-color: #aaa;
|
||||
border-bottom: 1px solid #09232e;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
div#comments form {
|
||||
display: block;
|
||||
margin: 0 0 0 20px;
|
||||
}
|
||||
|
||||
div#comments textarea {
|
||||
width: 98%;
|
||||
height: 160px;
|
||||
}
|
||||
|
||||
div#comments div.help {
|
||||
margin: 20px 20px 10px 0;
|
||||
background-color: #ccc;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
div#comments div.help p {
|
||||
margin: 0;
|
||||
padding: 0 0 10px 0;
|
||||
}
|
||||
|
||||
div#comments input, div#comments textarea {
|
||||
font-family: 'Bitstream Vera Sans', 'Arial', sans-serif;
|
||||
font-size: 13px;
|
||||
color: black;
|
||||
background-color: #aaa;
|
||||
border: 1px solid #092835;
|
||||
}
|
||||
|
||||
div#comments input[type="reset"],
|
||||
div#comments input[type="submit"] {
|
||||
cursor: pointer;
|
||||
font-weight: bold;
|
||||
padding: 2px;
|
||||
margin: 5px 5px 5px 0;
|
||||
background-color: #666;
|
||||
color: white;
|
||||
}
|
||||
|
||||
div#comments div.comment {
|
||||
margin: 10px 10px 10px 20px;
|
||||
padding: 10px;
|
||||
border: 1px solid #0f3646;
|
||||
background-color: #aaa;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
div#comments div.comment p {
|
||||
margin: 5px 0 5px 0;
|
||||
}
|
||||
|
||||
div#comments div.comment p.meta {
|
||||
font-style: italic;
|
||||
color: #444;
|
||||
text-align: right;
|
||||
margin: -5px 0 -5px 0;
|
||||
}
|
||||
|
||||
div#comments div.comment h4 {
|
||||
margin: -10px -10px 5px -10px;
|
||||
padding: 3px;
|
||||
font-size: 15px;
|
||||
background-color: #888;
|
||||
color: white;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
div#comments div.comment pre,
|
||||
div#comments div.comment tt {
|
||||
background-color: #ddd;
|
||||
color: #111;
|
||||
border: none;
|
||||
}
|
||||
|
||||
div#comments div.comment a {
|
||||
color: #fff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
div#comments div.comment blockquote {
|
||||
margin: 10px;
|
||||
padding: 10px;
|
||||
border-left: 1px solid #0f3646;
|
||||
/*border: 1px solid #0f3646;
|
||||
background-color: #071c25;*/
|
||||
}
|
||||
|
||||
div#comments em.important {
|
||||
color: #d00;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}*/
|
||||
|
||||
/* :::: SUGGEST CHANGES :::: */
|
||||
div#suggest-changes-box input, div#suggest-changes-box textarea {
|
||||
border: 1px solid #ccc;
|
||||
background-color: white;
|
||||
color: black;
|
||||
}
|
||||
|
||||
div#suggest-changes-box textarea {
|
||||
width: 99%;
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
|
||||
/* :::: PREVIEW :::: */
|
||||
div.preview {
|
||||
background-image: url(style/preview.png);
|
||||
padding: 0 20px 20px 20px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
|
||||
/* :::: INDEX PAGE :::: */
|
||||
|
||||
table.contentstable {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
table.contentstable p.biglink {
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
a.biglink {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
span.linkdescr {
|
||||
font-style: italic;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
/* :::: GENINDEX STYLES :::: */
|
||||
|
||||
table.indextable td {
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
table.indextable dl, table.indextable dd {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
table.indextable tr.pcap {
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
table.indextable tr.cap {
|
||||
margin-top: 10px;
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
|
||||
img.toggler {
|
||||
margin-right: 3px;
|
||||
margin-top: 3px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* :::: GLOBAL STYLES :::: */
|
||||
|
||||
p.subhead {
|
||||
font-weight: bold;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
a:link:active { color: #ff0000; }
|
||||
a:link:hover { background-color: #bbeeff; }
|
||||
a:visited:hover { background-color: #bbeeff; }
|
||||
a:visited { color: #551a8b; }
|
||||
a:link { color: #0000bb; }
|
||||
|
||||
div.body h1,
|
||||
div.body h2,
|
||||
div.body h3,
|
||||
div.body h4,
|
||||
div.body h5,
|
||||
div.body h6 {
|
||||
font-family: avantgarde, sans-serif;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.body h1 { font-size: 180%; }
|
||||
div.body h2 { font-size: 150%; }
|
||||
div.body h3 { font-size: 120%; }
|
||||
div.body h4 { font-size: 120%; }
|
||||
|
||||
a.headerlink,
|
||||
a.headerlink,
|
||||
a.headerlink,
|
||||
a.headerlink,
|
||||
a.headerlink,
|
||||
a.headerlink {
|
||||
color: #c60f0f;
|
||||
font-size: 0.8em;
|
||||
padding: 0 4px 0 4px;
|
||||
text-decoration: none;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
*:hover > a.headerlink,
|
||||
*:hover > a.headerlink,
|
||||
*:hover > a.headerlink,
|
||||
*:hover > a.headerlink,
|
||||
*:hover > a.headerlink,
|
||||
*:hover > a.headerlink {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
a.headerlink:hover,
|
||||
a.headerlink:hover,
|
||||
a.headerlink:hover,
|
||||
a.headerlink:hover,
|
||||
a.headerlink:hover,
|
||||
a.headerlink:hover {
|
||||
background-color: #c60f0f;
|
||||
color: white;
|
||||
}
|
||||
|
||||
div.body p, div.body dd, div.body li {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
div.body td {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
ul.fakelist {
|
||||
list-style: none;
|
||||
margin: 10px 0 10px 20px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* "Footnotes" heading */
|
||||
p.rubric {
|
||||
margin-top: 30px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* "Topics" */
|
||||
|
||||
div.topic {
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
padding: 0 7px 0 7px;
|
||||
margin: 10px 0 10px 0;
|
||||
}
|
||||
|
||||
p.topic-title {
|
||||
font-size: 1.1em;
|
||||
font-weight: bold;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* Admonitions */
|
||||
|
||||
div.admonition {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
padding: 7px;
|
||||
}
|
||||
|
||||
div.admonition dt {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.admonition dd {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
div.admonition dl {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
div.admonition p {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
div.seealso {
|
||||
background-color: #ffc;
|
||||
border: 1px solid #ff6;
|
||||
}
|
||||
|
||||
div.warning {
|
||||
background-color: #ffe4e4;
|
||||
border: 1px solid #f66;
|
||||
}
|
||||
|
||||
div.note {
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
p.admonition-title {
|
||||
margin: 0px 10px 5px 0px;
|
||||
font-weight: bold;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
p.admonition-title:after {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
div.body p.centered {
|
||||
text-align: center;
|
||||
margin-top: 25px;
|
||||
}
|
||||
|
||||
table.docutils {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
table.docutils td, table.docutils th {
|
||||
padding: 0 8px 2px 0;
|
||||
border-top: 0;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
border-bottom: 1px solid #aaa;
|
||||
}
|
||||
|
||||
table.field-list td, table.field-list th {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
table.footnote td, table.footnote th {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
dl {
|
||||
margin-bottom: 15px;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
dd p {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
dd ul, dd table {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 10px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
dl.glossary dt {
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.refcount {
|
||||
color: #060;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: left;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: monospace;
|
||||
padding: 5px;
|
||||
color: #00008b;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
tt {
|
||||
font-family: monospace;
|
||||
background-color: #ecf0f3;
|
||||
padding: 0 1px 0 1px;
|
||||
}
|
||||
|
||||
tt.descname {
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
tt.descclassname {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
tt.xref, a tt {
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.footnote:target { background-color: #ffa }
|
||||
|
||||
h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.optional {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
.versionmodified {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
form.comment {
|
||||
margin: 0;
|
||||
padding: 10px 30px 10px 30px;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
form.comment h3 {
|
||||
background-color: #326591;
|
||||
color: white;
|
||||
margin: -10px -30px 10px -30px;
|
||||
padding: 5px;
|
||||
font-size: 1.4em;
|
||||
}
|
||||
|
||||
form.comment input,
|
||||
form.comment textarea {
|
||||
border: 1px solid #ccc;
|
||||
padding: 2px;
|
||||
font-family: sans-serif;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
form.comment input[type="text"] {
|
||||
width: 240px;
|
||||
}
|
||||
|
||||
form.comment textarea {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
/* :::: PRINT :::: */
|
||||
@media print {
|
||||
div.documentwrapper {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.sphinxsidebar,
|
||||
div.related,
|
||||
div.footer,
|
||||
div#comments div.new-comment-box,
|
||||
#top-link {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
136
python/simplejson-2.1.1/docs/genindex.html
Normal file
136
python/simplejson-2.1.1/docs/genindex.html
Normal file
@@ -0,0 +1,136 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>Index — simplejson v2.1.1 documentation</title>
|
||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
VERSION: '2.1.1',
|
||||
COLLAPSE_MODINDEX: false,
|
||||
FILE_SUFFIX: '.html'
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/interface.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="contents" title="Global table of contents" href="contents.html" />
|
||||
<link rel="index" title="Global index" href="" />
|
||||
<link rel="search" title="Search" href="search.html" />
|
||||
<link rel="top" title="simplejson v2.1.1 documentation" href="index.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="index.html">simplejson v2.1.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
|
||||
<h1 id="index">Index</h1>
|
||||
|
||||
<a href="#D"><strong>D</strong></a> | <a href="#E"><strong>E</strong></a> | <a href="#I"><strong>I</strong></a> | <a href="#J"><strong>J</strong></a> | <a href="#L"><strong>L</strong></a> | <a href="#R"><strong>R</strong></a> | <a href="#S"><strong>S</strong></a>
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
<h2 id="D">D</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="index.html#simplejson.JSONDecoder.decode">decode() (simplejson.JSONDecoder method)</a></dt>
|
||||
<dt><a href="index.html#simplejson.JSONEncoder.default">default() (simplejson.JSONEncoder method)</a></dt>
|
||||
<dt><a href="index.html#simplejson.dump">dump() (in module simplejson)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
<dt><a href="index.html#simplejson.dumps">dumps() (in module simplejson)</a></dt>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="E">E</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="index.html#simplejson.JSONEncoder.encode">encode() (simplejson.JSONEncoder method)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="I">I</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="index.html#simplejson.JSONEncoder.iterencode">iterencode() (simplejson.JSONEncoder method)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="J">J</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="index.html#simplejson.JSONDecoder">JSONDecoder (class in simplejson)</a></dt>
|
||||
<dt><a href="index.html#simplejson.JSONEncoder">JSONEncoder (class in simplejson)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
<dt><a href="index.html#simplejson.JSONEncoderForHTML">JSONEncoderForHTML (class in simplejson)</a></dt>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="L">L</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="index.html#simplejson.load">load() (in module simplejson)</a></dt>
|
||||
<dt><a href="index.html#simplejson.loads">loads() (in module simplejson)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="R">R</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="index.html#simplejson.JSONDecoder.raw_decode">raw_decode() (simplejson.JSONDecoder method)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
</dl></td></tr></table>
|
||||
|
||||
<h2 id="S">S</h2>
|
||||
<table width="100%" class="indextable"><tr><td width="33%" valign="top">
|
||||
<dl>
|
||||
|
||||
<dt><a href="index.html#module-simplejson">simplejson (module)</a></dt></dl></td><td width="33%" valign="top"><dl>
|
||||
</dl></td></tr></table>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
|
||||
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<input type="text" name="q" size="18" /> <input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="index.html">simplejson v2.1.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2008, Bob Ippolito.
|
||||
Last updated on Mar 31, 2010.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a>.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
564
python/simplejson-2.1.1/docs/index.html
Normal file
564
python/simplejson-2.1.1/docs/index.html
Normal file
@@ -0,0 +1,564 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>simplejson — JSON encoder and decoder — simplejson v2.1.1 documentation</title>
|
||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
VERSION: '2.1.1',
|
||||
COLLAPSE_MODINDEX: false,
|
||||
FILE_SUFFIX: '.html'
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/interface.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="contents" title="Global table of contents" href="contents.html" />
|
||||
<link rel="index" title="Global index" href="genindex.html" />
|
||||
<link rel="search" title="Search" href="search.html" />
|
||||
<link rel="top" title="simplejson v2.1.1 documentation" href="" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="">simplejson v2.1.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
|
||||
<div class="section" id="module-simplejson">
|
||||
<h1 id="module-simplejson"><tt class="xref docutils literal"><span class="pre">simplejson</span></tt> — JSON encoder and decoder<a class="headerlink" href="#module-simplejson" title="Permalink to this headline">¶</a></h1>
|
||||
<p>JSON (JavaScript Object Notation) <<a class="reference external" href="http://json.org">http://json.org</a>> is a subset of JavaScript
|
||||
syntax (ECMA-262 3rd edition) used as a lightweight data interchange format.</p>
|
||||
<p><tt class="xref docutils literal"><span class="pre">simplejson</span></tt> exposes an API familiar to users of the standard library
|
||||
<tt class="xref docutils literal"><span class="pre">marshal</span></tt> and <tt class="xref docutils literal"><span class="pre">pickle</span></tt> modules. It is the externally maintained
|
||||
version of the <tt class="xref docutils literal"><span class="pre">json</span></tt> library contained in Python 2.6, but maintains
|
||||
compatibility with Python 2.5 and (currently) has
|
||||
significant performance advantages, even without using the optional C
|
||||
extension for speedups.</p>
|
||||
<p>Encoding basic Python object hierarchies:</p>
|
||||
<div class="highlight"><pre><span class="gp">>>> </span><span class="k">import</span> <span class="nn">simplejson</span> <span class="k">as</span> <span class="nn">json</span>
|
||||
<span class="gp">>>> </span><span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">([</span><span class="s">'foo'</span><span class="p">,</span> <span class="p">{</span><span class="s">'bar'</span><span class="p">:</span> <span class="p">(</span><span class="s">'baz'</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">,</span> <span class="mf">2</span><span class="p">)}])</span>
|
||||
<span class="go">'["foo", {"bar": ["baz", null, 1.0, 2]}]'</span>
|
||||
<span class="gp">>>> </span><span class="k">print</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="s">"</span><span class="se">\"</span><span class="s">foo</span><span class="se">\b</span><span class="s">ar"</span><span class="p">)</span>
|
||||
<span class="go">"\"foo\bar"</span>
|
||||
<span class="gp">>>> </span><span class="k">print</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="s">u'</span><span class="se">\u1234</span><span class="s">'</span><span class="p">)</span>
|
||||
<span class="go">"\u1234"</span>
|
||||
<span class="gp">>>> </span><span class="k">print</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="s">'</span><span class="se">\\</span><span class="s">'</span><span class="p">)</span>
|
||||
<span class="go">"\\"</span>
|
||||
<span class="gp">>>> </span><span class="k">print</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">({</span><span class="s">"c"</span><span class="p">:</span> <span class="mf">0</span><span class="p">,</span> <span class="s">"b"</span><span class="p">:</span> <span class="mf">0</span><span class="p">,</span> <span class="s">"a"</span><span class="p">:</span> <span class="mf">0</span><span class="p">},</span> <span class="n">sort_keys</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
|
||||
<span class="go">{"a": 0, "b": 0, "c": 0}</span>
|
||||
<span class="gp">>>> </span><span class="k">from</span> <span class="nn">StringIO</span> <span class="k">import</span> <span class="n">StringIO</span>
|
||||
<span class="gp">>>> </span><span class="n">io</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">()</span>
|
||||
<span class="gp">>>> </span><span class="n">json</span><span class="o">.</span><span class="n">dump</span><span class="p">([</span><span class="s">'streaming API'</span><span class="p">],</span> <span class="n">io</span><span class="p">)</span>
|
||||
<span class="gp">>>> </span><span class="n">io</span><span class="o">.</span><span class="n">getvalue</span><span class="p">()</span>
|
||||
<span class="go">'["streaming API"]'</span>
|
||||
</pre></div>
|
||||
<p>Compact encoding:</p>
|
||||
<div class="highlight"><pre><span class="gp">>>> </span><span class="k">import</span> <span class="nn">simplejson</span> <span class="k">as</span> <span class="nn">json</span>
|
||||
<span class="gp">>>> </span><span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">([</span><span class="mf">1</span><span class="p">,</span><span class="mf">2</span><span class="p">,</span><span class="mf">3</span><span class="p">,{</span><span class="s">'4'</span><span class="p">:</span> <span class="mf">5</span><span class="p">,</span> <span class="s">'6'</span><span class="p">:</span> <span class="mf">7</span><span class="p">}],</span> <span class="n">separators</span><span class="o">=</span><span class="p">(</span><span class="s">','</span><span class="p">,</span><span class="s">':'</span><span class="p">))</span>
|
||||
<span class="go">'[1,2,3,{"4":5,"6":7}]'</span>
|
||||
</pre></div>
|
||||
<p>Pretty printing:</p>
|
||||
<div class="highlight"><pre><span class="gp">>>> </span><span class="k">import</span> <span class="nn">simplejson</span> <span class="k">as</span> <span class="nn">json</span>
|
||||
<span class="gp">>>> </span><span class="n">s</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">({</span><span class="s">'4'</span><span class="p">:</span> <span class="mf">5</span><span class="p">,</span> <span class="s">'6'</span><span class="p">:</span> <span class="mf">7</span><span class="p">},</span> <span class="n">sort_keys</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mf">4</span> <span class="o">*</span> <span class="s">' '</span><span class="p">)</span>
|
||||
<span class="gp">>>> </span><span class="k">print</span> <span class="s">'</span><span class="se">\n</span><span class="s">'</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">l</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span> <span class="k">for</span> <span class="n">l</span> <span class="ow">in</span> <span class="n">s</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()])</span>
|
||||
<span class="go">{</span>
|
||||
<span class="go"> "4": 5,</span>
|
||||
<span class="go"> "6": 7</span>
|
||||
<span class="go">}</span>
|
||||
</pre></div>
|
||||
<p>Decoding JSON:</p>
|
||||
<div class="highlight"><pre><span class="gp">>>> </span><span class="k">import</span> <span class="nn">simplejson</span> <span class="k">as</span> <span class="nn">json</span>
|
||||
<span class="gp">>>> </span><span class="n">obj</span> <span class="o">=</span> <span class="p">[</span><span class="s">u'foo'</span><span class="p">,</span> <span class="p">{</span><span class="s">u'bar'</span><span class="p">:</span> <span class="p">[</span><span class="s">u'baz'</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">,</span> <span class="mf">2</span><span class="p">]}]</span>
|
||||
<span class="gp">>>> </span><span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="s">'["foo", {"bar":["baz", null, 1.0, 2]}]'</span><span class="p">)</span> <span class="o">==</span> <span class="n">obj</span>
|
||||
<span class="go">True</span>
|
||||
<span class="gp">>>> </span><span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="s">'"</span><span class="se">\\</span><span class="s">"foo</span><span class="se">\\</span><span class="s">bar"'</span><span class="p">)</span> <span class="o">==</span> <span class="s">u'"foo</span><span class="se">\x08</span><span class="s">ar'</span>
|
||||
<span class="go">True</span>
|
||||
<span class="gp">>>> </span><span class="k">from</span> <span class="nn">StringIO</span> <span class="k">import</span> <span class="n">StringIO</span>
|
||||
<span class="gp">>>> </span><span class="n">io</span> <span class="o">=</span> <span class="n">StringIO</span><span class="p">(</span><span class="s">'["streaming API"]'</span><span class="p">)</span>
|
||||
<span class="gp">>>> </span><span class="n">json</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">io</span><span class="p">)[</span><span class="mf">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">'streaming API'</span>
|
||||
<span class="go">True</span>
|
||||
</pre></div>
|
||||
<p>Using Decimal instead of float:</p>
|
||||
<div class="highlight"><pre><span class="gp">>>> </span><span class="k">import</span> <span class="nn">simplejson</span> <span class="k">as</span> <span class="nn">json</span>
|
||||
<span class="gp">>>> </span><span class="k">from</span> <span class="nn">decimal</span> <span class="k">import</span> <span class="n">Decimal</span>
|
||||
<span class="gp">>>> </span><span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="s">'1.1'</span><span class="p">,</span> <span class="n">use_decimal</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="o">==</span> <span class="n">Decimal</span><span class="p">(</span><span class="s">'1.1'</span><span class="p">)</span>
|
||||
<span class="go">True</span>
|
||||
<span class="gp">>>> </span><span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">Decimal</span><span class="p">(</span><span class="s">'1.1'</span><span class="p">),</span> <span class="n">use_decimal</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="o">==</span> <span class="s">'1.1'</span>
|
||||
<span class="go">True</span>
|
||||
</pre></div>
|
||||
<p>Specializing JSON object decoding:</p>
|
||||
<div class="highlight"><pre><span class="gp">>>> </span><span class="k">import</span> <span class="nn">simplejson</span> <span class="k">as</span> <span class="nn">json</span>
|
||||
<span class="gp">>>> </span><span class="k">def</span> <span class="nf">as_complex</span><span class="p">(</span><span class="n">dct</span><span class="p">):</span>
|
||||
<span class="gp">... </span> <span class="k">if</span> <span class="s">'__complex__'</span> <span class="ow">in</span> <span class="n">dct</span><span class="p">:</span>
|
||||
<span class="gp">... </span> <span class="k">return</span> <span class="nb">complex</span><span class="p">(</span><span class="n">dct</span><span class="p">[</span><span class="s">'real'</span><span class="p">],</span> <span class="n">dct</span><span class="p">[</span><span class="s">'imag'</span><span class="p">])</span>
|
||||
<span class="gp">... </span> <span class="k">return</span> <span class="n">dct</span>
|
||||
<span class="gp">...</span>
|
||||
<span class="gp">>>> </span><span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="s">'{"__complex__": true, "real": 1, "imag": 2}'</span><span class="p">,</span>
|
||||
<span class="gp">... </span> <span class="n">object_hook</span><span class="o">=</span><span class="n">as_complex</span><span class="p">)</span>
|
||||
<span class="go">(1+2j)</span>
|
||||
<span class="gp">>>> </span><span class="k">import</span> <span class="nn">decimal</span>
|
||||
<span class="gp">>>> </span><span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="s">'1.1'</span><span class="p">,</span> <span class="n">parse_float</span><span class="o">=</span><span class="n">decimal</span><span class="o">.</span><span class="n">Decimal</span><span class="p">)</span> <span class="o">==</span> <span class="n">decimal</span><span class="o">.</span><span class="n">Decimal</span><span class="p">(</span><span class="s">'1.1'</span><span class="p">)</span>
|
||||
<span class="go">True</span>
|
||||
</pre></div>
|
||||
<p>Specializing JSON object encoding:</p>
|
||||
<div class="highlight"><pre><span class="gp">>>> </span><span class="k">import</span> <span class="nn">simplejson</span> <span class="k">as</span> <span class="nn">json</span>
|
||||
<span class="gp">>>> </span><span class="k">def</span> <span class="nf">encode_complex</span><span class="p">(</span><span class="n">obj</span><span class="p">):</span>
|
||||
<span class="gp">... </span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="nb">complex</span><span class="p">):</span>
|
||||
<span class="gp">... </span> <span class="k">return</span> <span class="p">[</span><span class="n">obj</span><span class="o">.</span><span class="n">real</span><span class="p">,</span> <span class="n">obj</span><span class="o">.</span><span class="n">imag</span><span class="p">]</span>
|
||||
<span class="gp">... </span> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="nb">repr</span><span class="p">(</span><span class="n">o</span><span class="p">)</span> <span class="o">+</span> <span class="s">" is not JSON serializable"</span><span class="p">)</span>
|
||||
<span class="gp">...</span>
|
||||
<span class="gp">>>> </span><span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="mf">2</span> <span class="o">+</span> <span class="mf">1</span><span class="n">j</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="n">encode_complex</span><span class="p">)</span>
|
||||
<span class="go">'[2.0, 1.0]'</span>
|
||||
<span class="gp">>>> </span><span class="n">json</span><span class="o">.</span><span class="n">JSONEncoder</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="n">encode_complex</span><span class="p">)</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="mf">2</span> <span class="o">+</span> <span class="mf">1</span><span class="n">j</span><span class="p">)</span>
|
||||
<span class="go">'[2.0, 1.0]'</span>
|
||||
<span class="gp">>>> </span><span class="s">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">json</span><span class="o">.</span><span class="n">JSONEncoder</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="n">encode_complex</span><span class="p">)</span><span class="o">.</span><span class="n">iterencode</span><span class="p">(</span><span class="mf">2</span> <span class="o">+</span> <span class="mf">1</span><span class="n">j</span><span class="p">))</span>
|
||||
<span class="go">'[2.0, 1.0]'</span>
|
||||
</pre></div>
|
||||
<p>Using <tt class="xref docutils literal"><span class="pre">simplejson.tool</span></tt> from the shell to validate and pretty-print:</p>
|
||||
<div class="highlight"><pre>$ echo '{"json":"obj"}' | python -m simplejson.tool
|
||||
{
|
||||
"json": "obj"
|
||||
}
|
||||
$ echo '{ 1.2:3.4}' | python -m simplejson.tool
|
||||
Expecting property name: line 1 column 2 (char 2)
|
||||
</pre></div>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">The JSON produced by this module’s default settings is a subset of
|
||||
YAML, so it may be used as a serializer for that as well.</p>
|
||||
</div>
|
||||
<div class="section" id="basic-usage">
|
||||
<h2 id="basic-usage">Basic Usage<a class="headerlink" href="#basic-usage" title="Permalink to this headline">¶</a></h2>
|
||||
<dl class="function">
|
||||
<dt id="simplejson.dump">
|
||||
<!--[simplejson.dump]--><tt class="descclassname">simplejson.</tt><tt class="descname">dump</tt><big>(</big><em>obj</em>, <em>fp</em><span class="optional">[</span>, <em>skipkeys</em><span class="optional">[</span>, <em>ensure_ascii</em><span class="optional">[</span>, <em>check_circular</em><span class="optional">[</span>, <em>allow_nan</em><span class="optional">[</span>, <em>cls</em><span class="optional">[</span>, <em>indent</em><span class="optional">[</span>, <em>separators</em><span class="optional">[</span>, <em>encoding</em><span class="optional">[</span>, <em>default</em><span class="optional">[</span>, <em>use_decimal</em><span class="optional">[</span>, <em>**kw</em><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#simplejson.dump" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Serialize <em>obj</em> as a JSON formatted stream to <em>fp</em> (a <tt class="docutils literal"><span class="pre">.write()</span></tt>-supporting
|
||||
file-like object).</p>
|
||||
<p>If <em>skipkeys</em> is true (default: <tt class="xref docutils literal"><span class="pre">False</span></tt>), then dict keys that are not
|
||||
of a basic type (<tt class="xref docutils literal"><span class="pre">str</span></tt>, <tt class="xref docutils literal"><span class="pre">unicode</span></tt>, <tt class="xref docutils literal"><span class="pre">int</span></tt>, <tt class="xref docutils literal"><span class="pre">long</span></tt>,
|
||||
<tt class="xref docutils literal"><span class="pre">float</span></tt>, <tt class="xref docutils literal"><span class="pre">bool</span></tt>, <tt class="xref docutils literal"><span class="pre">None</span></tt>) will be skipped instead of raising a
|
||||
<tt class="xref docutils literal"><span class="pre">TypeError</span></tt>.</p>
|
||||
<p>If <em>ensure_ascii</em> is false (default: <tt class="xref docutils literal"><span class="pre">True</span></tt>), then some chunks written
|
||||
to <em>fp</em> may be <tt class="xref docutils literal"><span class="pre">unicode</span></tt> instances, subject to normal Python
|
||||
<tt class="xref docutils literal"><span class="pre">str</span></tt> to <tt class="xref docutils literal"><span class="pre">unicode</span></tt> coercion rules. Unless <tt class="docutils literal"><span class="pre">fp.write()</span></tt>
|
||||
explicitly understands <tt class="xref docutils literal"><span class="pre">unicode</span></tt> (as in <tt class="xref docutils literal"><span class="pre">codecs.getwriter()</span></tt>) this
|
||||
is likely to cause an error. It’s best to leave the default settings, because
|
||||
they are safe and it is highly optimized.</p>
|
||||
<p>If <em>check_circular</em> is false (default: <tt class="xref docutils literal"><span class="pre">True</span></tt>), then the circular
|
||||
reference check for container types will be skipped and a circular reference
|
||||
will result in an <tt class="xref docutils literal"><span class="pre">OverflowError</span></tt> (or worse).</p>
|
||||
<p>If <em>allow_nan</em> is false (default: <tt class="xref docutils literal"><span class="pre">True</span></tt>), then it will be a
|
||||
<tt class="xref docutils literal"><span class="pre">ValueError</span></tt> to serialize out of range <tt class="xref docutils literal"><span class="pre">float</span></tt> values (<tt class="docutils literal"><span class="pre">nan</span></tt>,
|
||||
<tt class="docutils literal"><span class="pre">inf</span></tt>, <tt class="docutils literal"><span class="pre">-inf</span></tt>) in strict compliance of the JSON specification.
|
||||
If <em>allow_nan</em> is true, their JavaScript equivalents will be used
|
||||
(<tt class="docutils literal"><span class="pre">NaN</span></tt>, <tt class="docutils literal"><span class="pre">Infinity</span></tt>, <tt class="docutils literal"><span class="pre">-Infinity</span></tt>).</p>
|
||||
<p>If <em>indent</em> is a string, then JSON array elements and object members
|
||||
will be pretty-printed with a newline followed by that string repeated
|
||||
for each level of nesting. <tt class="xref docutils literal"><span class="pre">None</span></tt> (the default) selects the most compact
|
||||
representation without any newlines. For backwards compatibility with
|
||||
versions of simplejson earlier than 2.1.0, an integer is also accepted
|
||||
and is converted to a string with that many spaces.</p>
|
||||
<p>
|
||||
<span class="versionmodified">Changed in version 2.1.0: </span>Changed <em>indent</em> from an integer number of spaces to a string.</p>
|
||||
<p>If specified, <em>separators</em> should be an <tt class="docutils literal"><span class="pre">(item_separator,</span> <span class="pre">dict_separator)</span></tt>
|
||||
tuple. By default, <tt class="docutils literal"><span class="pre">(',</span> <span class="pre">',</span> <span class="pre">':</span> <span class="pre">')</span></tt> are used. To get the most compact JSON
|
||||
representation, you should specify <tt class="docutils literal"><span class="pre">(',',</span> <span class="pre">':')</span></tt> to eliminate whitespace.</p>
|
||||
<p><em>encoding</em> is the character encoding for str instances, default is
|
||||
<tt class="docutils literal"><span class="pre">'utf-8'</span></tt>.</p>
|
||||
<p><em>default(obj)</em> is a function that should return a serializable version of
|
||||
<em>obj</em> or raise <tt class="xref docutils literal"><span class="pre">TypeError</span></tt>. The default simply raises <tt class="xref docutils literal"><span class="pre">TypeError</span></tt>.</p>
|
||||
<p>To use a custom <a title="simplejson.JSONEncoder" class="reference internal" href="#simplejson.JSONEncoder"><tt class="xref docutils literal"><span class="pre">JSONEncoder</span></tt></a> subclass (e.g. one that overrides the
|
||||
<tt class="xref docutils literal"><span class="pre">default()</span></tt> method to serialize additional types), specify it with the
|
||||
<em>cls</em> kwarg.</p>
|
||||
<p>If <em>use_decimal</em> is true (default: <tt class="xref docutils literal"><span class="pre">False</span></tt>) then <tt class="xref docutils literal"><span class="pre">decimal.Decimal</span></tt>
|
||||
will be natively serialized to JSON with full precision.</p>
|
||||
<p>
|
||||
<span class="versionmodified">Changed in version 2.1.0: </span><em>use_decimal</em> is new in 2.1.0.<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">JSON is not a framed protocol so unlike <tt class="xref docutils literal"><span class="pre">pickle</span></tt> or <tt class="xref docutils literal"><span class="pre">marshal</span></tt> it
|
||||
does not make sense to serialize more than one JSON document without some
|
||||
container protocol to delimit them.</p>
|
||||
</div>
|
||||
</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="simplejson.dumps">
|
||||
<!--[simplejson.dumps]--><tt class="descclassname">simplejson.</tt><tt class="descname">dumps</tt><big>(</big><em>obj</em><span class="optional">[</span>, <em>skipkeys</em><span class="optional">[</span>, <em>ensure_ascii</em><span class="optional">[</span>, <em>check_circular</em><span class="optional">[</span>, <em>allow_nan</em><span class="optional">[</span>, <em>cls</em><span class="optional">[</span>, <em>indent</em><span class="optional">[</span>, <em>separators</em><span class="optional">[</span>, <em>encoding</em><span class="optional">[</span>, <em>default</em><span class="optional">[</span>, <em>use_decimal</em><span class="optional">[</span>, <em>**kw</em><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#simplejson.dumps" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Serialize <em>obj</em> to a JSON formatted <tt class="xref docutils literal"><span class="pre">str</span></tt>.</p>
|
||||
<p>If <em>ensure_ascii</em> is false, then the return value will be a
|
||||
<tt class="xref docutils literal"><span class="pre">unicode</span></tt> instance. The other arguments have the same meaning as in
|
||||
<a title="simplejson.dump" class="reference internal" href="#simplejson.dump"><tt class="xref docutils literal"><span class="pre">dump()</span></tt></a>. Note that the default <em>ensure_ascii</em> setting has much
|
||||
better performance.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="simplejson.load">
|
||||
<!--[simplejson.load]--><tt class="descclassname">simplejson.</tt><tt class="descname">load</tt><big>(</big><em>fp</em><span class="optional">[</span>, <em>encoding</em><span class="optional">[</span>, <em>cls</em><span class="optional">[</span>, <em>object_hook</em><span class="optional">[</span>, <em>parse_float</em><span class="optional">[</span>, <em>parse_int</em><span class="optional">[</span>, <em>parse_constant</em><span class="optional">[</span>, <em>object_pairs_hook</em><span class="optional">[</span>, <em>use_decimal</em><span class="optional">[</span>, <em>**kw</em><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#simplejson.load" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Deserialize <em>fp</em> (a <tt class="docutils literal"><span class="pre">.read()</span></tt>-supporting file-like object containing a JSON
|
||||
document) to a Python object.</p>
|
||||
<p>If the contents of <em>fp</em> are encoded with an ASCII based encoding other than
|
||||
UTF-8 (e.g. latin-1), then an appropriate <em>encoding</em> name must be specified.
|
||||
Encodings that are not ASCII based (such as UCS-2) are not allowed, and
|
||||
should be wrapped with <tt class="docutils literal"><span class="pre">codecs.getreader(fp)(encoding)</span></tt>, or simply decoded
|
||||
to a <tt class="xref docutils literal"><span class="pre">unicode</span></tt> object and passed to <a title="simplejson.loads" class="reference internal" href="#simplejson.loads"><tt class="xref docutils literal"><span class="pre">loads()</span></tt></a>. The default
|
||||
setting of <tt class="docutils literal"><span class="pre">'utf-8'</span></tt> is fastest and should be using whenever possible.</p>
|
||||
<p>If <em>fp.read()</em> returns <tt class="xref docutils literal"><span class="pre">str</span></tt> then decoded JSON strings that contain
|
||||
only ASCII characters may be parsed as <tt class="xref docutils literal"><span class="pre">str</span></tt> for performance and
|
||||
memory reasons. If your code expects only <tt class="xref docutils literal"><span class="pre">unicode</span></tt> the appropriate
|
||||
solution is to wrap fp with a reader as demonstrated above.</p>
|
||||
<p><em>object_hook</em> is an optional function that will be called with the result of
|
||||
any object literal decode (a <tt class="xref docutils literal"><span class="pre">dict</span></tt>). The return value of
|
||||
<em>object_hook</em> will be used instead of the <tt class="xref docutils literal"><span class="pre">dict</span></tt>. This feature can be used
|
||||
to implement custom decoders (e.g. JSON-RPC class hinting).</p>
|
||||
<p><em>object_pairs_hook</em> 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 <em>object_pairs_hook</em> will be used instead of the
|
||||
<tt class="xref docutils literal"><span class="pre">dict</span></tt>. This feature can be used to implement custom decoders that
|
||||
rely on the order that the key and value pairs are decoded (for example,
|
||||
<tt class="xref docutils literal"><span class="pre">collections.OrderedDict</span></tt> will remember the order of insertion). If
|
||||
<em>object_hook</em> is also defined, the <em>object_pairs_hook</em> takes priority.</p>
|
||||
<p>
|
||||
<span class="versionmodified">Changed in version 2.1.0: </span>Added support for <em>object_pairs_hook</em>.</p>
|
||||
<p><em>parse_float</em>, if specified, will be called with the string of every JSON
|
||||
float to be decoded. By default, this is equivalent to <tt class="docutils literal"><span class="pre">float(num_str)</span></tt>.
|
||||
This can be used to use another datatype or parser for JSON floats
|
||||
(e.g. <tt class="xref docutils literal"><span class="pre">decimal.Decimal</span></tt>).</p>
|
||||
<p><em>parse_int</em>, if specified, will be called with the string of every JSON int
|
||||
to be decoded. By default, this is equivalent to <tt class="docutils literal"><span class="pre">int(num_str)</span></tt>. This can
|
||||
be used to use another datatype or parser for JSON integers
|
||||
(e.g. <tt class="xref docutils literal"><span class="pre">float</span></tt>).</p>
|
||||
<p><em>parse_constant</em>, if specified, will be called with one of the following
|
||||
strings: <tt class="docutils literal"><span class="pre">'-Infinity'</span></tt>, <tt class="docutils literal"><span class="pre">'Infinity'</span></tt>, <tt class="docutils literal"><span class="pre">'NaN'</span></tt>. This can be used to
|
||||
raise an exception if invalid JSON numbers are encountered.</p>
|
||||
<p>If <em>use_decimal</em> is true (default: <tt class="xref docutils literal"><span class="pre">False</span></tt>) then <em>parse_float</em> is set to
|
||||
<tt class="xref docutils literal"><span class="pre">decimal.Decimal</span></tt>. This is a convenience for parity with the
|
||||
<a title="simplejson.dump" class="reference internal" href="#simplejson.dump"><tt class="xref docutils literal"><span class="pre">dump()</span></tt></a> parameter.</p>
|
||||
<p>
|
||||
<span class="versionmodified">Changed in version 2.1.0: </span><em>use_decimal</em> is new in 2.1.0.</p>
|
||||
<p>To use a custom <a title="simplejson.JSONDecoder" class="reference internal" href="#simplejson.JSONDecoder"><tt class="xref docutils literal"><span class="pre">JSONDecoder</span></tt></a> subclass, specify it with the <tt class="docutils literal"><span class="pre">cls</span></tt>
|
||||
kwarg. Additional keyword arguments will be passed to the constructor of the
|
||||
class.</p>
|
||||
<blockquote>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last"><a title="simplejson.load" class="reference internal" href="#simplejson.load"><tt class="xref docutils literal"><span class="pre">load()</span></tt></a> will read the rest of the file-like object as a string and
|
||||
then call <a title="simplejson.loads" class="reference internal" href="#simplejson.loads"><tt class="xref docutils literal"><span class="pre">loads()</span></tt></a>. It does not stop at the end of the first valid
|
||||
JSON document it finds and it will raise an error if there is anything
|
||||
other than whitespace after the document. Except for files containing
|
||||
only one JSON document, it is recommended to use <a title="simplejson.loads" class="reference internal" href="#simplejson.loads"><tt class="xref docutils literal"><span class="pre">loads()</span></tt></a>.</p>
|
||||
</div>
|
||||
</blockquote>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="simplejson.loads">
|
||||
<!--[simplejson.loads]--><tt class="descclassname">simplejson.</tt><tt class="descname">loads</tt><big>(</big><em>s</em><span class="optional">[</span>, <em>encoding</em><span class="optional">[</span>, <em>cls</em><span class="optional">[</span>, <em>object_hook</em><span class="optional">[</span>, <em>parse_float</em><span class="optional">[</span>, <em>parse_int</em><span class="optional">[</span>, <em>parse_constant</em><span class="optional">[</span>, <em>object_pairs_hook</em><span class="optional">[</span>, <em>use_decimal</em><span class="optional">[</span>, <em>**kw</em><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#simplejson.loads" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Deserialize <em>s</em> (a <tt class="xref docutils literal"><span class="pre">str</span></tt> or <tt class="xref docutils literal"><span class="pre">unicode</span></tt> instance containing a JSON
|
||||
document) to a Python object.</p>
|
||||
<p>If <em>s</em> is a <tt class="xref docutils literal"><span class="pre">str</span></tt> instance and is encoded with an ASCII based encoding
|
||||
other than UTF-8 (e.g. latin-1), then an appropriate <em>encoding</em> name must be
|
||||
specified. Encodings that are not ASCII based (such as UCS-2) are not
|
||||
allowed and should be decoded to <tt class="xref docutils literal"><span class="pre">unicode</span></tt> first.</p>
|
||||
<p>If <em>s</em> is a <tt class="xref docutils literal"><span class="pre">str</span></tt> then decoded JSON strings that contain
|
||||
only ASCII characters may be parsed as <tt class="xref docutils literal"><span class="pre">str</span></tt> for performance and
|
||||
memory reasons. If your code expects only <tt class="xref docutils literal"><span class="pre">unicode</span></tt> the appropriate
|
||||
solution is decode <em>s</em> to <tt class="xref docutils literal"><span class="pre">unicode</span></tt> prior to calling loads.</p>
|
||||
<p>The other arguments have the same meaning as in <a title="simplejson.load" class="reference internal" href="#simplejson.load"><tt class="xref docutils literal"><span class="pre">load()</span></tt></a>.</p>
|
||||
</dd></dl>
|
||||
|
||||
</div>
|
||||
<div class="section" id="encoders-and-decoders">
|
||||
<h2 id="encoders-and-decoders">Encoders and decoders<a class="headerlink" href="#encoders-and-decoders" title="Permalink to this headline">¶</a></h2>
|
||||
<dl class="class">
|
||||
<dt id="simplejson.JSONDecoder">
|
||||
<!--[simplejson.JSONDecoder]-->class <tt class="descclassname">simplejson.</tt><tt class="descname">JSONDecoder</tt><big>(</big><span class="optional">[</span><em>encoding</em><span class="optional">[</span>, <em>object_hook</em><span class="optional">[</span>, <em>parse_float</em><span class="optional">[</span>, <em>parse_int</em><span class="optional">[</span>, <em>parse_constant</em><span class="optional">[</span>, <em>object_pairs_hook</em><span class="optional">[</span>, <em>strict</em><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#simplejson.JSONDecoder" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Simple JSON decoder.</p>
|
||||
<p>Performs the following translations in decoding by default:</p>
|
||||
<table border="1" class="docutils">
|
||||
<colgroup>
|
||||
<col width="44%" />
|
||||
<col width="56%" />
|
||||
</colgroup>
|
||||
<thead valign="bottom">
|
||||
<tr><th class="head">JSON</th>
|
||||
<th class="head">Python</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<tr><td>object</td>
|
||||
<td>dict</td>
|
||||
</tr>
|
||||
<tr><td>array</td>
|
||||
<td>list</td>
|
||||
</tr>
|
||||
<tr><td>string</td>
|
||||
<td>unicode</td>
|
||||
</tr>
|
||||
<tr><td>number (int)</td>
|
||||
<td>int, long</td>
|
||||
</tr>
|
||||
<tr><td>number (real)</td>
|
||||
<td>float</td>
|
||||
</tr>
|
||||
<tr><td>true</td>
|
||||
<td>True</td>
|
||||
</tr>
|
||||
<tr><td>false</td>
|
||||
<td>False</td>
|
||||
</tr>
|
||||
<tr><td>null</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>It also understands <tt class="docutils literal"><span class="pre">NaN</span></tt>, <tt class="docutils literal"><span class="pre">Infinity</span></tt>, and <tt class="docutils literal"><span class="pre">-Infinity</span></tt> as their
|
||||
corresponding <tt class="docutils literal"><span class="pre">float</span></tt> values, which is outside the JSON spec.</p>
|
||||
<p><em>encoding</em> determines the encoding used to interpret any <tt class="xref docutils literal"><span class="pre">str</span></tt> objects
|
||||
decoded by this instance (<tt class="docutils literal"><span class="pre">'utf-8'</span></tt> by default). It has no effect when decoding
|
||||
<tt class="xref docutils literal"><span class="pre">unicode</span></tt> objects.</p>
|
||||
<p>Note that currently only encodings that are a superset of ASCII work, strings
|
||||
of other encodings should be passed in as <tt class="xref docutils literal"><span class="pre">unicode</span></tt>.</p>
|
||||
<p><em>object_hook</em> is an optional function that will be called with the result of
|
||||
every JSON object decoded and its return value will be used in place of the
|
||||
given <tt class="xref docutils literal"><span class="pre">dict</span></tt>. This can be used to provide custom deserializations
|
||||
(e.g. to support JSON-RPC class hinting).</p>
|
||||
<p><em>object_pairs_hook</em> 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 <em>object_pairs_hook</em> will be used instead of the
|
||||
<tt class="xref docutils literal"><span class="pre">dict</span></tt>. This feature can be used to implement custom decoders that
|
||||
rely on the order that the key and value pairs are decoded (for example,
|
||||
<tt class="xref docutils literal"><span class="pre">collections.OrderedDict</span></tt> will remember the order of insertion). If
|
||||
<em>object_hook</em> is also defined, the <em>object_pairs_hook</em> takes priority.</p>
|
||||
<p>
|
||||
<span class="versionmodified">Changed in version 2.1.0: </span>Added support for <em>object_pairs_hook</em>.</p>
|
||||
<p><em>parse_float</em>, if specified, will be called with the string of every JSON
|
||||
float to be decoded. By default, this is equivalent to <tt class="docutils literal"><span class="pre">float(num_str)</span></tt>.
|
||||
This can be used to use another datatype or parser for JSON floats
|
||||
(e.g. <tt class="xref docutils literal"><span class="pre">decimal.Decimal</span></tt>).</p>
|
||||
<p><em>parse_int</em>, if specified, will be called with the string of every JSON int
|
||||
to be decoded. By default, this is equivalent to <tt class="docutils literal"><span class="pre">int(num_str)</span></tt>. This can
|
||||
be used to use another datatype or parser for JSON integers
|
||||
(e.g. <tt class="xref docutils literal"><span class="pre">float</span></tt>).</p>
|
||||
<p><em>parse_constant</em>, if specified, will be called with one of the following
|
||||
strings: <tt class="docutils literal"><span class="pre">'-Infinity'</span></tt>, <tt class="docutils literal"><span class="pre">'Infinity'</span></tt>, <tt class="docutils literal"><span class="pre">'NaN'</span></tt>. This can be used to
|
||||
raise an exception if invalid JSON numbers are encountered.</p>
|
||||
<p><em>strict</em> controls the parser’s behavior when it encounters an invalid
|
||||
control character in a string. The default setting of <tt class="xref docutils literal"><span class="pre">True</span></tt> means that
|
||||
unescaped control characters are parse errors, if <tt class="xref docutils literal"><span class="pre">False</span></tt> then control
|
||||
characters will be allowed in strings.</p>
|
||||
<dl class="method">
|
||||
<dt id="simplejson.JSONDecoder.decode">
|
||||
<!--[simplejson.JSONDecoder.decode]--><tt class="descname">decode</tt><big>(</big><em>s</em><big>)</big><a class="headerlink" href="#simplejson.JSONDecoder.decode" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return the Python representation of <em>s</em> (a <tt class="xref docutils literal"><span class="pre">str</span></tt> or
|
||||
<tt class="xref docutils literal"><span class="pre">unicode</span></tt> instance containing a JSON document)</p>
|
||||
<p>If <em>s</em> is a <tt class="xref docutils literal"><span class="pre">str</span></tt> then decoded JSON strings that contain
|
||||
only ASCII characters may be parsed as <tt class="xref docutils literal"><span class="pre">str</span></tt> for performance and
|
||||
memory reasons. If your code expects only <tt class="xref docutils literal"><span class="pre">unicode</span></tt> the
|
||||
appropriate solution is decode <em>s</em> to <tt class="xref docutils literal"><span class="pre">unicode</span></tt> prior to calling
|
||||
decode.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="simplejson.JSONDecoder.raw_decode">
|
||||
<!--[simplejson.JSONDecoder.raw_decode]--><tt class="descname">raw_decode</tt><big>(</big><em>s</em><big>)</big><a class="headerlink" href="#simplejson.JSONDecoder.raw_decode" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Decode a JSON document from <em>s</em> (a <tt class="xref docutils literal"><span class="pre">str</span></tt> or <tt class="xref docutils literal"><span class="pre">unicode</span></tt>
|
||||
beginning with a JSON document) and return a 2-tuple of the Python
|
||||
representation and the index in <em>s</em> where the document ended.</p>
|
||||
<p>This can be used to decode a JSON document from a string that may have
|
||||
extraneous data at the end.</p>
|
||||
</dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="class">
|
||||
<dt id="simplejson.JSONEncoder">
|
||||
<!--[simplejson.JSONEncoder]-->class <tt class="descclassname">simplejson.</tt><tt class="descname">JSONEncoder</tt><big>(</big><span class="optional">[</span><em>skipkeys</em><span class="optional">[</span>, <em>ensure_ascii</em><span class="optional">[</span>, <em>check_circular</em><span class="optional">[</span>, <em>allow_nan</em><span class="optional">[</span>, <em>sort_keys</em><span class="optional">[</span>, <em>indent</em><span class="optional">[</span>, <em>separators</em><span class="optional">[</span>, <em>encoding</em><span class="optional">[</span>, <em>default</em><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#simplejson.JSONEncoder" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Extensible JSON encoder for Python data structures.</p>
|
||||
<p>Supports the following objects and types by default:</p>
|
||||
<table border="1" class="docutils">
|
||||
<colgroup>
|
||||
<col width="56%" />
|
||||
<col width="44%" />
|
||||
</colgroup>
|
||||
<thead valign="bottom">
|
||||
<tr><th class="head">Python</th>
|
||||
<th class="head">JSON</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<tr><td>dict</td>
|
||||
<td>object</td>
|
||||
</tr>
|
||||
<tr><td>list, tuple</td>
|
||||
<td>array</td>
|
||||
</tr>
|
||||
<tr><td>str, unicode</td>
|
||||
<td>string</td>
|
||||
</tr>
|
||||
<tr><td>int, long, float</td>
|
||||
<td>number</td>
|
||||
</tr>
|
||||
<tr><td>True</td>
|
||||
<td>true</td>
|
||||
</tr>
|
||||
<tr><td>False</td>
|
||||
<td>false</td>
|
||||
</tr>
|
||||
<tr><td>None</td>
|
||||
<td>null</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>To extend this to recognize other objects, subclass and implement a
|
||||
<a title="simplejson.JSONEncoder.default" class="reference internal" href="#simplejson.JSONEncoder.default"><tt class="xref docutils literal"><span class="pre">default()</span></tt></a> method with another method that returns a serializable object
|
||||
for <tt class="docutils literal"><span class="pre">o</span></tt> if possible, otherwise it should call the superclass implementation
|
||||
(to raise <tt class="xref docutils literal"><span class="pre">TypeError</span></tt>).</p>
|
||||
<p>If <em>skipkeys</em> is false (the default), then it is a <tt class="xref docutils literal"><span class="pre">TypeError</span></tt> to
|
||||
attempt encoding of keys that are not str, int, long, float or None. If
|
||||
<em>skipkeys</em> is true, such items are simply skipped.</p>
|
||||
<p>If <em>ensure_ascii</em> is true (the default), the output is guaranteed to be
|
||||
<tt class="xref docutils literal"><span class="pre">str</span></tt> objects with all incoming unicode characters escaped. If
|
||||
<em>ensure_ascii</em> is false, the output will be a unicode object.</p>
|
||||
<p>If <em>check_circular</em> is false (the default), then lists, dicts, and custom
|
||||
encoded objects will be checked for circular references during encoding to
|
||||
prevent an infinite recursion (which would cause an <tt class="xref docutils literal"><span class="pre">OverflowError</span></tt>).
|
||||
Otherwise, no such check takes place.</p>
|
||||
<p>If <em>allow_nan</em> is true (the default), then <tt class="docutils literal"><span class="pre">NaN</span></tt>, <tt class="docutils literal"><span class="pre">Infinity</span></tt>, and
|
||||
<tt class="docutils literal"><span class="pre">-Infinity</span></tt> will be encoded as such. This behavior is not JSON
|
||||
specification compliant, but is consistent with most JavaScript based
|
||||
encoders and decoders. Otherwise, it will be a <tt class="xref docutils literal"><span class="pre">ValueError</span></tt> to encode
|
||||
such floats.</p>
|
||||
<p>If <em>sort_keys</em> is true (not the default), then the output of dictionaries
|
||||
will be sorted by key; this is useful for regression tests to ensure that
|
||||
JSON serializations can be compared on a day-to-day basis.</p>
|
||||
<p>If <em>indent</em> is a string, then JSON array elements and object members
|
||||
will be pretty-printed with a newline followed by that string repeated
|
||||
for each level of nesting. <tt class="xref docutils literal"><span class="pre">None</span></tt> (the default) selects the most compact
|
||||
representation without any newlines. For backwards compatibility with
|
||||
versions of simplejson earlier than 2.1.0, an integer is also accepted
|
||||
and is converted to a string with that many spaces.</p>
|
||||
<p>
|
||||
<span class="versionmodified">Changed in version 2.1.0: </span>Changed <em>indent</em> from an integer number of spaces to a string.</p>
|
||||
<p>If specified, <em>separators</em> should be an <tt class="docutils literal"><span class="pre">(item_separator,</span> <span class="pre">key_separator)</span></tt>
|
||||
tuple. By default, <tt class="docutils literal"><span class="pre">(',</span> <span class="pre">',</span> <span class="pre">':</span> <span class="pre">')</span></tt> are used. To get the most compact JSON
|
||||
representation, you should specify <tt class="docutils literal"><span class="pre">(',',</span> <span class="pre">':')</span></tt> to eliminate whitespace.</p>
|
||||
<p>If specified, <em>default</em> should be a function that gets called for objects
|
||||
that can’t otherwise be serialized. It should return a JSON encodable
|
||||
version of the object or raise a <tt class="xref docutils literal"><span class="pre">TypeError</span></tt>.</p>
|
||||
<p>If <em>encoding</em> is not <tt class="xref docutils literal"><span class="pre">None</span></tt>, then all input strings will be transformed
|
||||
into unicode using that encoding prior to JSON-encoding. The default is
|
||||
<tt class="docutils literal"><span class="pre">'utf-8'</span></tt>.</p>
|
||||
<dl class="method">
|
||||
<dt id="simplejson.JSONEncoder.default">
|
||||
<!--[simplejson.JSONEncoder.default]--><tt class="descname">default</tt><big>(</big><em>o</em><big>)</big><a class="headerlink" href="#simplejson.JSONEncoder.default" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Implement this method in a subclass such that it returns a serializable
|
||||
object for <em>o</em>, or calls the base implementation (to raise a
|
||||
<tt class="xref docutils literal"><span class="pre">TypeError</span></tt>).</p>
|
||||
<p>For example, to support arbitrary iterators, you could implement default
|
||||
like this:</p>
|
||||
<div class="highlight"><pre><span class="k">def</span> <span class="nf">default</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">o</span><span class="p">):</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">iterable</span> <span class="o">=</span> <span class="nb">iter</span><span class="p">(</span><span class="n">o</span><span class="p">)</span>
|
||||
<span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
|
||||
<span class="k">pass</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="n">iterable</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">JSONEncoder</span><span class="o">.</span><span class="n">default</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">o</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="simplejson.JSONEncoder.encode">
|
||||
<!--[simplejson.JSONEncoder.encode]--><tt class="descname">encode</tt><big>(</big><em>o</em><big>)</big><a class="headerlink" href="#simplejson.JSONEncoder.encode" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return a JSON string representation of a Python data structure, <em>o</em>. For
|
||||
example:</p>
|
||||
<div class="highlight"><pre><span class="gp">>>> </span><span class="k">import</span> <span class="nn">simplejson</span> <span class="k">as</span> <span class="nn">json</span>
|
||||
<span class="gp">>>> </span><span class="n">json</span><span class="o">.</span><span class="n">JSONEncoder</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">({</span><span class="s">"foo"</span><span class="p">:</span> <span class="p">[</span><span class="s">"bar"</span><span class="p">,</span> <span class="s">"baz"</span><span class="p">]})</span>
|
||||
<span class="go">'{"foo": ["bar", "baz"]}'</span>
|
||||
</pre></div>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="simplejson.JSONEncoder.iterencode">
|
||||
<!--[simplejson.JSONEncoder.iterencode]--><tt class="descname">iterencode</tt><big>(</big><em>o</em><big>)</big><a class="headerlink" href="#simplejson.JSONEncoder.iterencode" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Encode the given object, <em>o</em>, and yield each string representation as
|
||||
available. For example:</p>
|
||||
<div class="highlight"><pre><span class="k">for</span> <span class="n">chunk</span> <span class="ow">in</span> <span class="n">JSONEncoder</span><span class="p">()</span><span class="o">.</span><span class="n">iterencode</span><span class="p">(</span><span class="n">bigobject</span><span class="p">):</span>
|
||||
<span class="n">mysocket</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">chunk</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
<p>Note that <a title="simplejson.JSONEncoder.encode" class="reference internal" href="#simplejson.JSONEncoder.encode"><tt class="xref docutils literal"><span class="pre">encode()</span></tt></a> has much better performance than
|
||||
<a title="simplejson.JSONEncoder.iterencode" class="reference internal" href="#simplejson.JSONEncoder.iterencode"><tt class="xref docutils literal"><span class="pre">iterencode()</span></tt></a>.</p>
|
||||
</dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="class">
|
||||
<dt id="simplejson.JSONEncoderForHTML">
|
||||
<!--[simplejson.JSONEncoderForHTML]-->class <tt class="descclassname">simplejson.</tt><tt class="descname">JSONEncoderForHTML</tt><big>(</big><span class="optional">[</span><em>skipkeys</em><span class="optional">[</span>, <em>ensure_ascii</em><span class="optional">[</span>, <em>check_circular</em><span class="optional">[</span>, <em>allow_nan</em><span class="optional">[</span>, <em>sort_keys</em><span class="optional">[</span>, <em>indent</em><span class="optional">[</span>, <em>separators</em><span class="optional">[</span>, <em>encoding</em><span class="optional">[</span>, <em>default</em><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#simplejson.JSONEncoderForHTML" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Subclass of <a title="simplejson.JSONEncoder" class="reference internal" href="#simplejson.JSONEncoder"><tt class="xref docutils literal"><span class="pre">JSONEncoder</span></tt></a> that escapes &, <, and > for embedding in HTML.</p>
|
||||
<p>
|
||||
<span class="versionmodified">Changed in version 2.1.0: </span>New in 2.1.0</p>
|
||||
</dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h3>Table Of Contents</h3>
|
||||
<ul>
|
||||
<li><a class="reference external" href=""><tt class="docutils literal"><span class="pre">simplejson</span></tt> — JSON encoder and decoder</a><ul>
|
||||
<li><a class="reference external" href="#basic-usage">Basic Usage</a></li>
|
||||
<li><a class="reference external" href="#encoders-and-decoders">Encoders and decoders</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/index.txt">Show Source</a></li>
|
||||
</ul>
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="search.html" method="get">
|
||||
<input type="text" name="q" size="18" /> <input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="">simplejson v2.1.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2008, Bob Ippolito.
|
||||
Last updated on Mar 31, 2010.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a>.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
16
python/simplejson-2.1.1/docs/objects.inv
Normal file
16
python/simplejson-2.1.1/docs/objects.inv
Normal file
@@ -0,0 +1,16 @@
|
||||
# Sphinx inventory version 1
|
||||
# Project: simplejson
|
||||
# Version: 2.1
|
||||
simplejson mod index.html
|
||||
simplejson.JSONEncoderForHTML class index.html
|
||||
simplejson.JSONDecoder.raw_decode method index.html
|
||||
simplejson.dump function index.html
|
||||
simplejson.loads function index.html
|
||||
simplejson.JSONDecoder class index.html
|
||||
simplejson.dumps function index.html
|
||||
simplejson.JSONDecoder.decode method index.html
|
||||
simplejson.JSONEncoder.default method index.html
|
||||
simplejson.load function index.html
|
||||
simplejson.JSONEncoder class index.html
|
||||
simplejson.JSONEncoder.iterencode method index.html
|
||||
simplejson.JSONEncoder.encode method index.html
|
||||
81
python/simplejson-2.1.1/docs/search.html
Normal file
81
python/simplejson-2.1.1/docs/search.html
Normal file
@@ -0,0 +1,81 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>Search — simplejson v2.1.1 documentation</title>
|
||||
<link rel="stylesheet" href="_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '',
|
||||
VERSION: '2.1.1',
|
||||
COLLAPSE_MODINDEX: false,
|
||||
FILE_SUFFIX: '.html'
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/interface.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<link rel="contents" title="Global table of contents" href="contents.html" />
|
||||
<link rel="index" title="Global index" href="genindex.html" />
|
||||
<link rel="search" title="Search" href="" />
|
||||
<link rel="top" title="simplejson v2.1.1 documentation" href="index.html" />
|
||||
<script type="text/javascript" src="_static/searchtools.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="index.html">simplejson v2.1.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<h1 id="search-documentation">Search</h1>
|
||||
<p>
|
||||
From here you can search these documents. Enter your search
|
||||
words into the box below and click "search". Note that the search
|
||||
function will automatically search for all of the words. Pages
|
||||
containing less words won't appear in the result list.
|
||||
</p>
|
||||
<form action="" method="get">
|
||||
<input type="text" name="q" value="" />
|
||||
<input type="submit" value="search" />
|
||||
</form>
|
||||
|
||||
<div id="search-results">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="index.html">simplejson v2.1.1 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2008, Bob Ippolito.
|
||||
Last updated on Mar 31, 2010.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a>.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
1
python/simplejson-2.1.1/docs/searchindex.js
Normal file
1
python/simplejson-2.1.1/docs/searchindex.js
Normal file
@@ -0,0 +1 @@
|
||||
Search.setIndex({desctypes:{"0":"class","1":"method","2":"function"},terms:{represent:0,all:0,code:0,skip:0,interchang:0,signific:0,follow:0,compact:0,typeerror:0,decim:0,rstrip:0,sens:0,spec:0,isinst:0,liter:0,everi:0,string:0,raw_decod:0,fals:0,jsonencod:0,level:0,list:0,iter:0,"try":0,item:0,prevent:0,pass:0,compat:0,index:0,compar:0,current:0,version:0,"new":0,method:0,item_separ:0,elimin:0,full:0,abov:0,valu:0,num_str:0,convert:0,precis:0,prior:0,chang:0,overrid:0,modul:0,api:0,coercion:0,select:0,highli:0,from:0,would:0,memori:0,call:0,recommend:0,type:0,more:0,sort:0,unescap:0,must:0,none:0,join:0,bigobject:0,work:0,skipkei:0,wors:0,can:0,def:0,control:0,stream:0,accept:0,object_pairs_hook:0,serial:0,alwai:[],end:0,newlin:0,anoth:0,write:0,instead:0,simpl:0,circular:0,recogn:0,earlier:0,mai:0,data:0,demonstr:0,attempt:0,correspond:0,marshal:0,caus:0,jsonencoderforhtml:0,maintain:0,allow:0,order:0,becaus:0,hierarchi:0,paramet:0,better:0,yaml:0,html:0,them:0,"return":0,thei:0,python:0,safe:0,dai:0,allow_nan:0,jsondecod:0,superset:0,name:0,anyth:0,edit:0,separ:0,getvalu:0,each:0,unicod:0,mean:0,subset:0,chunk:0,wrap:0,expect:0,special:0,out:0,"3rd":0,space:0,content:0,reader:0,print:0,after:0,infin:0,standard:0,reason:0,base:0,dictionari:0,element:0,org:0,basi:0,indent:0,could:0,place:0,outsid:0,regress:0,first:0,rang:0,arrai:0,number:0,echo:0,unlik:0,prioriti:0,given:0,reli:0,conveni:0,shell:0,option:0,tool:0,specifi:0,pars:0,than:0,keyword:0,whenev:0,provid:0,structur:0,charact:0,str:0,pre:0,encode_complex:0,ani:0,have:0,"null":0,equival:0,self:0,note:0,also:0,exampl:0,take:0,which:0,even:0,begin:0,unless:0,normal:0,object:0,most:0,getread:0,pair:0,"class":0,doe:0,determin:0,serializ:0,speedup:0,syntax:0,find:0,onli:0,explicitli:0,parse_float:0,pretti:0,solut:0,should:0,iterencod:0,dict:0,object_hook:0,get:0,familiar:0,stop:0,repr:0,nativ:0,fastest:0,key_separ:0,bar:0,baz:0,yield:0,contain:0,where:0,valid:0,set:0,dump:0,frame:0,datatyp:0,result:0,best:0,subject:0,infinit:0,kei:0,dict_separ:0,written:0,"import":0,latin:0,extend:0,parse_const:0,javascript:0,extens:0,embed:0,addit:0,delimit:0,instanc:0,mani:0,ecma:0,load:0,simpli:0,rpc:0,getwrit:0,"__complex__":0,json:0,much:0,interpret:0,basic:0,valueerror:0,imag:0,argument:0,understand:0,input:0,sort_kei:0,those:[],"case":[],x08ar:0,properti:0,defin:0,behavior:0,error:0,ordereddict:0,advantag:0,kwarg:0,lightweight:0,incom:0,ascii:0,u1234:0,perform:0,make:0,same:0,member:0,complex:0,decod:0,document:0,http:0,optim:0,nest:0,effect:0,rais:0,user:0,extern:0,implement:0,appropri:0,well:0,pickl:0,without:0,thi:0,protocol:0,mysocket:0,rest:0,as_complex:0,parse_int:0,expos:0,hint:0,except:0,codec:0,els:0,real:0,format:0,read:0,recurs:0,insert:0,like:0,specif:0,arbitrari:0,docutil:0,whitespac:0,integ:0,collect:0,output:0,encount:0,some:0,check_circular:0,pariti:0,superclass:0,guarante:0,librari:0,subclass:0,when:0,leav:0,foo:0,refer:0,usag:0,dct:0,obj:0,column:0,splitlin:0,constructor:0,produc:0,"float":0,encod:0,ensur:0,your:0,span:0,complianc:0,support:0,transform:0,"long":0,custom:0,avail:0,strict:0,compliant:0,overflowerror:0,"function":0,simplejson:0,tupl:0,use_decim:0,translat:0,line:0,"true":0,notat:0,utf:0,consist:0,possibl:0,"default":0,otherwis:0,ensure_ascii:0,featur:0,"int":0,dure:0,parser:0,"char":0,extran:0,file:0,inf:0,check:0,nan:0,invalid:0,other:0,bool:0,rememb:0,test:0,you:0,deseri:0,repeat:0,stringio:0,rule:0,escap:0,backward:0},titles:["<tt class=\"docutils literal\"><span class=\"pre\">simplejson</span></tt> — JSON encoder and decoder"],modules:{simplejson:0},descrefs:{"simplejson.JSONEncoder":{"default":[0,1],encode:[0,1],iterencode:[0,1]},"simplejson.JSONDecoder":{decode:[0,1],raw_decode:[0,1]},simplejson:{load:[0,2],JSONEncoder:[0,0],dump:[0,2],JSONDecoder:[0,0],dumps:[0,2],JSONEncoderForHTML:[0,0],loads:[0,2]}},filenames:["index"]})
|
||||
1
python/simplejson-2.1.1/docs/searchindex.json
Normal file
1
python/simplejson-2.1.1/docs/searchindex.json
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user