Metadata-Version: 2.1 | |
Name: json5 | |
Version: 0.9.25 | |
Summary: A Python implementation of the JSON5 data format. | |
Author-email: Dirk Pranke <[email protected]> | |
License: Files: Everything except for the benchmarks/*.json files. | |
Apache License | |
Version 2.0, January 2004 | |
http://www.apache.org/licenses/ | |
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION | |
1. Definitions. | |
"License" shall mean the terms and conditions for use, reproduction, | |
and distribution as defined by Sections 1 through 9 of this document. | |
"Licensor" shall mean the copyright owner or entity authorized by | |
the copyright owner that is granting the License. | |
"Legal Entity" shall mean the union of the acting entity and all | |
other entities that control, are controlled by, or are under common | |
control with that entity. For the purposes of this definition, | |
"control" means (i) the power, direct or indirect, to cause the | |
direction or management of such entity, whether by contract or | |
otherwise, or (ii) ownership of fifty percent (50%) or more of the | |
outstanding shares, or (iii) beneficial ownership of such entity. | |
"You" (or "Your") shall mean an individual or Legal Entity | |
exercising permissions granted by this License. | |
"Source" form shall mean the preferred form for making modifications, | |
including but not limited to software source code, documentation | |
source, and configuration files. | |
"Object" form shall mean any form resulting from mechanical | |
transformation or translation of a Source form, including but | |
not limited to compiled object code, generated documentation, | |
and conversions to other media types. | |
"Work" shall mean the work of authorship, whether in Source or | |
Object form, made available under the License, as indicated by a | |
copyright notice that is included in or attached to the work | |
(an example is provided in the Appendix below). | |
"Derivative Works" shall mean any work, whether in Source or Object | |
form, that is based on (or derived from) the Work and for which the | |
editorial revisions, annotations, elaborations, or other modifications | |
represent, as a whole, an original work of authorship. For the purposes | |
of this License, Derivative Works shall not include works that remain | |
separable from, or merely link (or bind by name) to the interfaces of, | |
the Work and Derivative Works thereof. | |
"Contribution" shall mean any work of authorship, including | |
the original version of the Work and any modifications or additions | |
to that Work or Derivative Works thereof, that is intentionally | |
submitted to Licensor for inclusion in the Work by the copyright owner | |
or by an individual or Legal Entity authorized to submit on behalf of | |
the copyright owner. For the purposes of this definition, "submitted" | |
means any form of electronic, verbal, or written communication sent | |
to the Licensor or its representatives, including but not limited to | |
communication on electronic mailing lists, source code control systems, | |
and issue tracking systems that are managed by, or on behalf of, the | |
Licensor for the purpose of discussing and improving the Work, but | |
excluding communication that is conspicuously marked or otherwise | |
designated in writing by the copyright owner as "Not a Contribution." | |
"Contributor" shall mean Licensor and any individual or Legal Entity | |
on behalf of whom a Contribution has been received by Licensor and | |
subsequently incorporated within the Work. | |
2. Grant of Copyright License. Subject to the terms and conditions of | |
this License, each Contributor hereby grants to You a perpetual, | |
worldwide, non-exclusive, no-charge, royalty-free, irrevocable | |
copyright license to reproduce, prepare Derivative Works of, | |
publicly display, publicly perform, sublicense, and distribute the | |
Work and such Derivative Works in Source or Object form. | |
3. Grant of Patent License. Subject to the terms and conditions of | |
this License, each Contributor hereby grants to You a perpetual, | |
worldwide, non-exclusive, no-charge, royalty-free, irrevocable | |
(except as stated in this section) patent license to make, have made, | |
use, offer to sell, sell, import, and otherwise transfer the Work, | |
where such license applies only to those patent claims licensable | |
by such Contributor that are necessarily infringed by their | |
Contribution(s) alone or by combination of their Contribution(s) | |
with the Work to which such Contribution(s) was submitted. If You | |
institute patent litigation against any entity (including a | |
cross-claim or counterclaim in a lawsuit) alleging that the Work | |
or a Contribution incorporated within the Work constitutes direct | |
or contributory patent infringement, then any patent licenses | |
granted to You under this License for that Work shall terminate | |
as of the date such litigation is filed. | |
4. Redistribution. You may reproduce and distribute copies of the | |
Work or Derivative Works thereof in any medium, with or without | |
modifications, and in Source or Object form, provided that You | |
meet the following conditions: | |
(a) You must give any other recipients of the Work or | |
Derivative Works a copy of this License; and | |
(b) You must cause any modified files to carry prominent notices | |
stating that You changed the files; and | |
(c) You must retain, in the Source form of any Derivative Works | |
that You distribute, all copyright, patent, trademark, and | |
attribution notices from the Source form of the Work, | |
excluding those notices that do not pertain to any part of | |
the Derivative Works; and | |
(d) If the Work includes a "NOTICE" text file as part of its | |
distribution, then any Derivative Works that You distribute must | |
include a readable copy of the attribution notices contained | |
within such NOTICE file, excluding those notices that do not | |
pertain to any part of the Derivative Works, in at least one | |
of the following places: within a NOTICE text file distributed | |
as part of the Derivative Works; within the Source form or | |
documentation, if provided along with the Derivative Works; or, | |
within a display generated by the Derivative Works, if and | |
wherever such third-party notices normally appear. The contents | |
of the NOTICE file are for informational purposes only and | |
do not modify the License. You may add Your own attribution | |
notices within Derivative Works that You distribute, alongside | |
or as an addendum to the NOTICE text from the Work, provided | |
that such additional attribution notices cannot be construed | |
as modifying the License. | |
You may add Your own copyright statement to Your modifications and | |
may provide additional or different license terms and conditions | |
for use, reproduction, or distribution of Your modifications, or | |
for any such Derivative Works as a whole, provided Your use, | |
reproduction, and distribution of the Work otherwise complies with | |
the conditions stated in this License. | |
5. Submission of Contributions. Unless You explicitly state otherwise, | |
any Contribution intentionally submitted for inclusion in the Work | |
by You to the Licensor shall be under the terms and conditions of | |
this License, without any additional terms or conditions. | |
Notwithstanding the above, nothing herein shall supersede or modify | |
the terms of any separate license agreement you may have executed | |
with Licensor regarding such Contributions. | |
6. Trademarks. This License does not grant permission to use the trade | |
names, trademarks, service marks, or product names of the Licensor, | |
except as required for reasonable and customary use in describing the | |
origin of the Work and reproducing the content of the NOTICE file. | |
7. Disclaimer of Warranty. Unless required by applicable law or | |
agreed to in writing, Licensor provides the Work (and each | |
Contributor provides its Contributions) on an "AS IS" BASIS, | |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | |
implied, including, without limitation, any warranties or conditions | |
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A | |
PARTICULAR PURPOSE. You are solely responsible for determining the | |
appropriateness of using or redistributing the Work and assume any | |
risks associated with Your exercise of permissions under this License. | |
8. Limitation of Liability. In no event and under no legal theory, | |
whether in tort (including negligence), contract, or otherwise, | |
unless required by applicable law (such as deliberate and grossly | |
negligent acts) or agreed to in writing, shall any Contributor be | |
liable to You for damages, including any direct, indirect, special, | |
incidental, or consequential damages of any character arising as a | |
result of this License or out of the use or inability to use the | |
Work (including but not limited to damages for loss of goodwill, | |
work stoppage, computer failure or malfunction, or any and all | |
other commercial damages or losses), even if such Contributor | |
has been advised of the possibility of such damages. | |
9. Accepting Warranty or Additional Liability. While redistributing | |
the Work or Derivative Works thereof, You may choose to offer, | |
and charge a fee for, acceptance of support, warranty, indemnity, | |
or other liability obligations and/or rights consistent with this | |
License. However, in accepting such obligations, You may act only | |
on Your own behalf and on Your sole responsibility, not on behalf | |
of any other Contributor, and only if You agree to indemnify, | |
defend, and hold each Contributor harmless for any liability | |
incurred by, or claims asserted against, such Contributor by reason | |
of your accepting any such warranty or additional liability. | |
END OF TERMS AND CONDITIONS | |
APPENDIX: How to apply the Apache License to your work. | |
To apply the Apache License to your work, attach the following | |
boilerplate notice, with the fields enclosed by brackets "{}" | |
replaced with your own identifying information. (Don't include | |
the brackets!) The text should be enclosed in the appropriate | |
comment syntax for the file format. We also recommend that a | |
file or class name and description of purpose be included on the | |
same "printed page" as the copyright notice for easier | |
identification within third-party archives. | |
Copyright {yyyy} {name of copyright owner} | |
Licensed under the Apache License, Version 2.0 (the "License"); | |
you may not use this file except in compliance with the License. | |
You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software | |
distributed under the License is distributed on an "AS IS" BASIS, | |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
See the License for the specific language governing permissions and | |
limitations under the License. | |
--- | |
File: benchmarks/64KB-min.json | |
MIT License | |
Copyright (c) Microsoft Corporation. | |
Permission is hereby granted, free of charge, to any person obtaining a copy | |
of this software and associated documentation files (the "Software"), to deal | |
in the Software without restriction, including without limitation the rights | |
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
copies of the Software, and to permit persons to whom the Software is | |
furnished to do so, subject to the following conditions: | |
The above copyright notice and this permission notice shall be included in all | |
copies or substantial portions of the Software. | |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
SOFTWARE | |
--- | |
File: benchmarks/bitly-usa-gov.json | |
The MIT License (MIT) | |
Copyright (c) 2017 Wes McKinney | |
Permission is hereby granted, free of charge, to any person obtaining a copy | |
of this software and associated documentation files (the "Software"), to deal | |
in the Software without restriction, including without limitation the rights | |
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
copies of the Software, and to permit persons to whom the Software is | |
furnished to do so, subject to the following conditions: | |
The above copyright notice and this permission notice shall be included in all | |
copies or substantial portions of the Software. | |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
SOFTWARE. | |
--- | |
File: benchmarks/twitter.json | |
The MIT License (MIT) | |
Copyright (c) 2014 Milo Yip | |
Permission is hereby granted, free of charge, to any person obtaining a copy | |
of this software and associated documentation files (the "Software"), to deal | |
in the Software without restriction, including without limitation the rights | |
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
copies of the Software, and to permit persons to whom the Software is | |
furnished to do so, subject to the following conditions: | |
The above copyright notice and this permission notice shall be included in all | |
copies or substantial portions of the Software. | |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
SOFTWARE. | |
Project-URL: Repository, https://github.com/dpranke/pyjson5 | |
Project-URL: Issues, https://github.com/dpranke/pyjson5/issues | |
Project-URL: Changelog, https://github.com/dpranke/pyjson5/blob/master/README.md | |
Classifier: Development Status :: 5 - Production/Stable | |
Classifier: Intended Audience :: Developers | |
Classifier: License :: OSI Approved :: Apache Software License | |
Classifier: Programming Language :: Python :: 3 | |
Classifier: Programming Language :: Python :: 3.8 | |
Classifier: Programming Language :: Python :: 3.9 | |
Classifier: Programming Language :: Python :: 3.10 | |
Classifier: Programming Language :: Python :: 3.11 | |
Classifier: Programming Language :: Python :: 3.12 | |
Requires-Python: >=3.8 | |
Description-Content-Type: text/markdown | |
License-File: LICENSE | |
# pyjson5 | |
A Python implementation of the JSON5 data format. | |
[JSON5](https://json5.org) extends the | |
[JSON](http://www.json.org) data interchange format to make it | |
slightly more usable as a configuration language: | |
* JavaScript-style comments (both single and multi-line) are legal. | |
* Object keys may be unquoted if they are legal ECMAScript identifiers | |
* Objects and arrays may end with trailing commas. | |
* Strings can be single-quoted, and multi-line string literals are allowed. | |
There are a few other more minor extensions to JSON; see the above page for | |
the full details. | |
This project implements a reader and writer implementation for Python; | |
where possible, it mirrors the | |
[standard Python JSON API](https://docs.python.org/library/json.html) | |
package for ease of use. | |
There is one notable difference from the JSON api: the `load()` and | |
`loads()` methods support optionally checking for (and rejecting) duplicate | |
object keys; pass `allow_duplicate_keys=False` to do so (duplicates are | |
allowed by default). | |
This is an early release. It has been reasonably well-tested, but it is | |
**SLOW**. It can be 1000-6000x slower than the C-optimized JSON module, | |
and is 200x slower (or more) than the pure Python JSON module. | |
**Please Note:** This library only handles JSON5 documents, it does not | |
allow you to read arbitrary JavaScript. For example, bare integers can | |
be legal object keys in JavaScript, but they aren't in JSON5. | |
## Known issues | |
* Did I mention that it is **SLOW**? | |
* The implementation follows Python3's `json` implementation where | |
possible. This means that the `encoding` method to `dump()` is | |
ignored, and unicode strings are always returned. | |
* The `cls` keyword argument that `json.load()`/`json.loads()` accepts | |
to specify a custom subclass of ``JSONDecoder`` is not and will not be | |
supported, because this implementation uses a completely different | |
approach to parsing strings and doesn't have anything like the | |
`JSONDecoder` class. | |
* The `cls` keyword argument that `json.dump()`/`json.dumps()` accepts | |
is also not supported, for consistency with `json5.load()`. The `default` | |
keyword *is* supported, though, and might be able to serve as a | |
workaround. | |
## Running the tests | |
To run the tests, setup a venv and install the required dependencies with | |
`pip install -e '.[dev]'`, then run the tests with `python setup.py test`. | |
## Updating the packages | |
``` | |
# Install the build packages if need be | |
$ python3 -m pip install build twine | |
# Build the distribution packages in //dist | |
# (a wheel and a tarball by default) | |
$ python3 -m build | |
# Upload the packages | |
$ python3 -m twine upload dist/* | |
(Assuming you have upload privileges to PyPI, of course.) | |
``` | |
## Version History / Release Notes | |
* v0.9.25 (2024-04-12) | |
* [GitHub issue #81](https://github.com/dpranke/pyjson5/issues/81) | |
Explicitly specify the directory to use for the package in | |
pyproject.toml. | |
* v0.9.24 (2024-03-16) | |
* Update GitHub workflow config to remove unnecessary steps and | |
run on pull requests as well as commits. | |
* Added note about removing `hypothesize` in v0.9.23. | |
* No code changes. | |
* v0.9.23 (2024-03-16) | |
* Lots of cleanup: | |
* Removed old code needed for Python2 compatibility. | |
* Removed tests using `hypothesize`. This ran model-based checks | |
and didn't really add anything useful in terms of coverage to | |
the test suite, and it introduced dependencies and slowed down | |
the tests significantly. It was a good experiment but I think | |
we're better off without it. | |
* Got everything linting cleanly with pylint 3.1 and `ruff check` | |
using ruff 0.3.3 (Note that commit message in 00d73a3 says pylint | |
3.11, which is a typo). | |
* Code reformatted with `ruff format` | |
* Added missing tests to bring coverage up to 100%. | |
* Lots of minor code changes as the result of linting and coverage | |
testing, but no intentional functional differences. | |
* v0.9.22 (2024-03-06) | |
* Attempt to fix the GitHub CI configuration now that setup.py | |
is gone. Also, test on 3.12 instead of 3.11. | |
* No code changes. | |
* v0.9.21 (2024-03-06) | |
* Moved the benchmarks/*.json data files' license information | |
to //LICENSE to (hopefully) make the Google linter happy. | |
* v0.9.20 (2024-03-03) | |
* Added `json5.__version__` in addition to `json5.VERSION`. | |
* More packaging modernization (no more setup.{cfg,py} files). | |
* Mark Python3.12 as supported in project.classifiers. | |
* Updated the `//run` script to use python3. | |
* v0.9.19 (2024-03-03) | |
* Replaced the benchmarking data files that came from chromium.org with | |
three files obtained from other datasets on GitHub. Since this repo | |
is vendored into the chromium/src repo it was occasionally confusing | |
people who thought the data was actually used for non-benchmarking | |
purposes and thus updating it for whatever reason. | |
* No code changes. | |
* v0.9.18 (2024-02-29) | |
* Add typing information to the module. This is kind of a big change, | |
but there should be no functional differences. | |
* v0.9.17 (2024-02-19) | |
* Move from `setup.py` to `pyproject.toml`. | |
* No code changes (other than the version increasing). | |
* v0.9.16 (2024-02-19) | |
* Drop Python2 from `setup.py` | |
* Add minimal packaging instructions to `//README.md`. | |
* v0.9.15 (2024-02-19) | |
* Merge in [Pull request #66](https://github.com/dpranke/pyjson5/pull/66) | |
to include the tests and sample file in a source distribution. | |
* v0.9.14 (2023-05-14) | |
* [GitHub issue #63](https://github.com/dpranke/pyjson5/issues/63) | |
Handle `+Infinity` as well as `-Infinity` and `Infinity`. | |
* v0.9.13 (2023-03-16) | |
* [GitHub PR #64](https://github.com/dpranke/pyjson5/pull/64) | |
Remove a field from one of the JSON benchmark files to | |
reduce confusion in Chromium. | |
* No code changes. | |
* v0.9.12 (2023-01-02) | |
* Fix GitHub Actions config file to no longer test against | |
Python 3.6 or 3.7. For now we will only test against an | |
"oldest" release (3.8 in this case) and a "current" | |
release (3.11 in this case). | |
* v0.9.11 (2023-01-02) | |
* [GitHub issue #60](https://github.com/dpranke/pyjson5/issues/60) | |
Fixed minor Python2 compatibility issue by referring to | |
`float("inf")` instead of `math.inf`. | |
* v0.9.10 (2022-08-18) | |
* [GitHub issue #58](https://github.com/dpranke/pyjson5/issues/58) | |
Updated the //README.md to be clear that parsing arbitrary JS | |
code may not work. | |
* Otherwise, no code changes. | |
* v0.9.9 (2022-08-01) | |
* [GitHub issue #57](https://github.com/dpranke/pyjson5/issues/57) | |
Fixed serialization for objects that subclass `int` or `float`: | |
Previously we would use the objects __str__ implementation, but | |
that might result in an illegal JSON5 value if the object had | |
customized __str__ to return something illegal. Instead, | |
we follow the lead of the `JSON` module and call `int.__repr__` | |
or `float.__repr__` directly. | |
* While I was at it, I added tests for dumps(-inf) and dumps(nan) | |
when those were supposed to be disallowed by `allow_nan=False`. | |
* v0.9.8 (2022-05-08) | |
* [GitHub issue #47](https://github.com/dpranke/pyjson5/issues/47) | |
Fixed error reporting in some cases due to how parsing was handling | |
nested rules in the grammar - previously the reported location for | |
the error could be far away from the point where it actually happened. | |
* v0.9.7 (2022-05-06) | |
* [GitHub issue #52](https://github.com/dpranke/pyjson5/issues/52) | |
Fixed behavior of `default` fn in `dump` and `dumps`. Previously | |
we didn't require the function to return a string, and so we could | |
end up returning something that wasn't actually valid. This change | |
now matches the behavior in the `json` module. *Note: This is a | |
potentially breaking change.* | |
* v0.9.6 (2021-06-21) | |
* Bump development status classifier to 5 - Production/Stable, which | |
the library feels like it is at this point. If I do end up significantly | |
reworking things to speed it up and/or to add round-trip editing, | |
that'll likely be a 2.0. If this version has no reported issues, | |
I'll likely promote it to 1.0. | |
* Also bump the tested Python versions to 2.7, 3.8 and 3.9, though | |
earlier Python3 versions will likely continue to work as well. | |
* [GitHub issue #46](https://github.com/dpranke/pyjson5/issues/36) | |
Fix incorrect serialization of custom subtypes | |
* Make it possible to run the tests if `hypothesis` isn't installed. | |
* v0.9.5 (2020-05-26) | |
* Miscellaneous non-source cleanups in the repo, including setting | |
up GitHub Actions for a CI system. No changes to the library from | |
v0.9.4, other than updating the version. | |
* v0.9.4 (2020-03-26) | |
* [GitHub pull #38](https://github.com/dpranke/pyjson5/pull/38) | |
Fix from [email protected] for dumps() crashing when passed | |
an empty string as a key in an object. | |
* v0.9.3 (2020-03-17) | |
* [GitHub pull #35](https://github.com/dpranke/pyjson5/pull/35) | |
Fix from pastelmind@ for dump() not passing the right args to dumps(). | |
* Fix from [email protected] to remove the tests directory from | |
the setup call, making the package a bit smaller. | |
* v0.9.2 (2020-03-02) | |
* [GitHub pull #34](https://github.com/dpranke/pyjson5/pull/34) | |
Fix from roosephu@ for a badly formatted nested list. | |
* v0.9.1 (2020-02-09) | |
* [GitHub issue #33](https://github.com/dpranke/pyjson5/issues/33): | |
Fix stray trailing comma when dumping an object with an invalid key. | |
* v0.9.0 (2020-01-30) | |
* [GitHub issue #29](https://github.com/dpranke/pyjson5/issues/29): | |
Fix an issue where objects keys that started with a reserved | |
word were incorrectly quoted. | |
* [GitHub issue #30](https://github.com/dpranke/pyjson5/issues/30): | |
Fix an issue where dumps() incorrectly thought a data structure | |
was cyclic in some cases. | |
* [GitHub issue #32](https://github.com/dpranke/pyjson5/issues/32): | |
Allow for non-string keys in dicts passed to ``dump()``/``dumps()``. | |
Add an ``allow_duplicate_keys=False`` to prevent possible | |
ill-formed JSON that might result. | |
* v0.8.5 (2019-07-04) | |
* [GitHub issue #25](https://github.com/dpranke/pyjson5/issues/25): | |
Add LICENSE and README.md to the dist. | |
* [GitHub issue #26](https://github.com/dpranke/pyjson5/issues/26): | |
Fix printing of empty arrays and objects with indentation, fix | |
misreporting of the position on parse failures in some cases. | |
* v0.8.4 (2019-06-11) | |
* Updated the version history, too. | |
* v0.8.3 (2019-06-11) | |
* Tweaked the README, bumped the version, forgot to update the version | |
history :). | |
* v0.8.2 (2019-06-11) | |
* Actually bump the version properly, to 0.8.2. | |
* v0.8.1 (2019-06-11) | |
* Fix bug in setup.py that messed up the description. Unfortunately, | |
I forgot to bump the version for this, so this also identifies as 0.8.0. | |
* v0.8.0 (2019-06-11) | |
* Add `allow_duplicate_keys=True` as a default argument to | |
`json5.load()`/`json5.loads()`. If you set the key to `False`, duplicate | |
keys in a single dict will be rejected. The default is set to `True` | |
for compatibility with `json.load()`, earlier versions of json5, and | |
because it's simply not clear if people would want duplicate checking | |
enabled by default. | |
* v0.7 (2019-03-31) | |
* Changes dump()/dumps() to not quote object keys by default if they are | |
legal identifiers. Passing `quote_keys=True` will turn that off | |
and always quote object keys. | |
* Changes dump()/dumps() to insert trailing commas after the last item | |
in an array or an object if the object is printed across multiple lines | |
(i.e., if `indent` is not None). Passing `trailing_commas=False` will | |
turn that off. | |
* The `json5.tool` command line tool now supports the `--indent`, | |
`--[no-]quote-keys`, and `--[no-]trailing-commas` flags to allow | |
for more control over the output, in addition to the existing | |
`--as-json` flag. | |
* The `json5.tool` command line tool no longer supports reading from | |
multiple files, you can now only read from a single file or | |
from standard input. | |
* The implementation no longer relies on the standard `json` module | |
for anything. The output should still match the json module (except | |
as noted above) and discrepancies should be reported as bugs. | |
* v0.6.2 (2019-03-08) | |
* Fix [GitHub issue #23](https://github.com/dpranke/pyjson5/issues/23) and | |
pass through unrecognized escape sequences. | |
* v0.6.1 (2018-05-22) | |
* Cleaned up a couple minor nits in the package. | |
* v0.6.0 (2017-11-28) | |
* First implementation that attempted to implement 100% of the spec. | |
* v0.5.0 (2017-09-04) | |
* First implementation that supported the full set of kwargs that | |
the `json` module supports. | |