Commits
July 2026:
- encoder: add a better implementation of "compact encoding"
98d1f96· 26 July · +231, −90 - scripts: fix the command for checking coverage under 100%
4da90a4· 26 July · +2, −2 - requirements.txt: bump to ruff v0.16; apply formatting changes
6b1a1dd· 26 July · +5, −9 - all: update pathlib and typing imports
6b1b41c· 26 July · +26, −28 - README, CONTRIBUTING: improve the description of the project
dab5991· 16 July · +73, −63
May 2026:
- scripts: tidy up the reporting of 100% coverage
b2c9a54· 13 May · +12, −1 - scripts: remove pytest-cov dependency
2b0a218· 13 May · +6, −9
April 2026:
- scripts: switch to my standard test runner; ty for type checking
7524b51· 20 April · +28, −26 - .github: don't check for docstrings with interrogate
0b2a5f4· 16 April · −3 - all: use ruff instead of interrogate for docstring linting
b0fe269· 16 April · +22, −33 - dev_requirements: remove a now-unnecessary keyring dependency
2d1ce71· 11 April · +1, −14 - dev_requirements: switch from twine to uv for publishing to PyPI
8bdf17d· 10 April · +8, −54 - requirements.txt: bump to the latest versions
1b5f5d4· 7 April · +45, −35
November 2025:
- Merge pull request #39 from alexwlchan/dependabot/github_actions/actions/checkout-6
361630b· 24 November · +1, −1 - Bump actions/checkout from 5 to 6
9998ee4· 24 November · dependabot <https://github.com/dependabot> · +1, −1
September 2025:
- Merge pull request #38 from alexwlchan/dependabot/github_actions/actions/setup-python-6
4711508· 8 September · +1, −1 - Bump actions/setup-python from 5 to 6
cf62798· 8 September · dependabot <https://github.com/dependabot> · +1, −1
August 2025:
- Bump the version number and release again
6d8dff0· 14 August · +5, −1 - Move the license declaration from a classifier to SPDX license declaration
a17658d· 14 August · +1, −1 - Merge pull request #37 from alexwlchan/ensure-ascii
ea5231a· 14 August · +102, −9 - encoder: add a `ensure_ascii` parameter to mirror `json.dumps()`
3250c22· 14 August · +102, −9 - Switch to weekly Dependabot updates
c3ebe28· 12 August · +4, −2 - Merge pull request #36 from alexwlchan/dependabot/github_actions/actions/checkout-5
dc57b3f· 12 August · +1, −1 - Bump actions/checkout from 4 to 5
ec96008· 12 August · dependabot <https://github.com/dependabot> · +1, −1
May 2025:
- Remember to bump the version number
f828a83· 5 May · +1, −1 - Merge pull request #33 from alexwlchan/sort-keys
aa4dce1· 5 May · +60, −12 - Add a `sort_keys` parameter
059afac· 5 May · +53, −5 - Remove the word `can` from these test names
1289213· 5 May · +7, −7 - Merge pull request #32 from alexwlchan/name-value-pairs
d991f3a· 4 May · +25, −19 - Tweak the naming to match how JSON is usually described
45fd4be· 4 May · +25, −19 - Add a README entry for `read_typed_js`
5ab6b53· 3 May · +6 - Merge pull request #31 from alexwlchan/handle-duplicate-keys
f3435ff· 3 May · +190, −15 - Reject duplicate keys when reading a JSON object
89cde5f· 3 May · +100, −2 - Break out the decoder logic in a separate file
283ea11· 3 May · +31, −14
April 2025:
- Add some contributing notes
0634780· 13 April · +60 - Merge pull request #30 from alexwlchan/work-around-typing-bug
cbd03c1· 13 April · +191, −6 - Fix a bug in the validation of union types
98d1aab· 13 April · +189, −4 - Add missing dates to the changelog
8b17b7e· 13 April · +2, −2
March 2025:
- Fix the version number
5db5ec2· 7 March · +1, −1 - Merge pull request #29 from alexwlchan/validate-type
ee337c4· 7 March · +171, −30 - Add a `read_typed_js` function for reading typed JSON
5b77ed3· 4 March · +133, −2 - Bump the version of all the dependencies, especially `mypy`
3b7f6cb· 4 March · +26, −28 - Add an optional dependency on `pydantic`
fc0097a· 4 March · +14, −2
January 2025:
- Merge pull request #26 from alexwlchan/more-compact-encoding
49b72b2· 15 January · +70 - Add tests for encoding short lists of strings
8bcdaa9· 15 January · +27 - Restore the tests for consistent round-tripping
679ae0f· 15 January · +43 - Merge pull request #25 from alexwlchan/write-lists-compact
88561f5· 10 January · +120, −44 - Add a more compact and human-readable encoding
50aba03· 10 January · +94, −36 - Break out the encoder as a separate file
61dfab0· 10 January · +29, −11 - Merge pull request #24 from alexwlchan/allow-writing-to-file
52076e8· 10 January · +195, −32 - Allow passing a file-like object to `write_js`
61f22a6· 10 January · +190, −31 - Start testing with multiple Python versions
f24f37a· 10 January · +5, −1 - Update README.md
ca48f02· 10 January · +1, −1
October 2024:
- Fix the name of the package
462463d· 23 October · +2, −2 - Rename the package to 'javascript data files'
b4c887a· 23 October · +10, −5
September 2024:
- Merge pull request #23 from alexwlchan/fix-types
cbb6cab· 7 September · +1, −1 - This should be `write`, not `write_text`
c4c8ea7· 7 September · +1, −1 - Use exclusive open `x` when writing a file
b7fe765· 7 September · +4, −1
August 2024:
- Bump the version number to v1.0.1
2c9ba9c· 26 August · +6, −1 - Update the version to 1.0.0 for initial PyPI release
4b8b4fe· 24 August · +10, −1 - Merge pull request #21 from alexwlchan/consistent-indentation
59d203e· 26 August · +37, −2 - When you append values, indent them consistently with `write_js()`
4b1d129· 26 August · +37, −2 - Make the names of these test steps consistent
9c05127· 25 August · +2, −1 - Merge pull request #18 from alexwlchan/atomic-writes
fab85c5· 24 August · +18, −1 - Writing a file in `write_text()` is now atomic
87a066d· 24 August · +18, −1 - Merge pull request #17 from alexwlchan/stricter-tests
dac85ff· 24 August · +186, −5 - Add docstrings for everything
933311f· 24 August · +126, −4 - Add config for `interrogate`
1ce232c· 24 August · +20 - Add a couple of tests for appending to incorrect paths
5caf656· 24 August · +28 - Throw an explicit IsADirectoryError if you write to a dir
ca37b5e· 24 August · +4, −1 - Make the tests for "failing to write" more specific
407aff3· 24 August · +9, −1 - Merge pull request #16 from alexwlchan/use-path-internally
12c9255· 24 August · +11, −9 - Use `pathlib.Path` internally, but still accept `str` as input
4ce647e· 24 August · +11, −9 - Update the README with instructions for pip installing; start the changelog
57337c5· 24 August · +15, −4 - Add some motivation
c1de350· 17 August · +11 - Add some installation instructions
b6fbdef· 17 August · +5 - Merge pull request #12 from alexwlchan/append-js-object
92b40d6· 17 August · +85, −3 - Add a method for appending a key/value pair to a JSON object
4e143d8· 17 August · +85, −3 - Merge pull request #11 from alexwlchan/fixture
1ffbd24· 17 August · +14, −22 - Use a pytest fixture for the `js_path` variable
487cb15· 17 August · +14, −22 - Merge pull request #10 from alexwlchan/flexible-endings
6976407· 17 August · +44, −2 - Make `append_to_js_array()` more flexible about the file ending
6ff77d5· 17 August · +44, −2 - Merge pull request #9 from alexwlchan/allow-var
a023b4c· 17 August · +13, −11 - Allow variables prefixed with `var`, or no prefix at all
5f4763f· 17 August · +3, −1 - Make it easier to write test cases for `read_js`
35491bb· 17 August · +10, −10 - Merge pull request #8 from alexwlchan/add-more-tests
64e2d6c· 17 August · +28, −4 - Only replace a `const` declaration at the start of the file
81a9818· 17 August · +6, −2 - Add some tests for round-tripping read_js and write_js
54bb5f8· 17 August · +21 - Improve the description
4367ead· 17 August · +1, −1 - Remove a redundant keyword
39bacd0· 17 August · −1 - Merge pull request #4 from alexwlchan/append-array-item
656f1e2· 17 August · +69, −1 - Add a function to append value to a JavaScript array
84a8f91· 17 August · +69, −1 - Allow files without a trailing semicolon
815cb70· 17 August · +2, −6 - Make this test pass in GitHub Actions
5117b31· 16 August · +1, −1 - Add some missing headings
feb440d· 16 August · +3, −1 - Add a function for writing to a JavaScript file
047f653· 16 August · +55, −2 - Add a function for reading JavaScript files
8be8cda· 16 August · +87, −3 - Initial commit
95da871· 16 August · +234