Skip to content

bpo-29863: Add json.COMPACT constant #72

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3 commits into from
Closed

bpo-29863: Add json.COMPACT constant #72

wants to merge 3 commits into from

Conversation

andrewnester
Copy link
Contributor

Fix for https://bugs.python.org/issue29540

I decided to go with Alternative version provided R.David Murray just to keep things simple

@the-knights-who-say-ni
Copy link

Hello, and thanks for your contribution!

I'm a bot set up to make sure that the project can legally accept your contribution by verifying you have signed the PSF contributor agreement (CLA).

Unfortunately our records indicate you have not signed the CLA. For legal reasons we need you to sign this before we can look at your contribution. Please follow these steps to rectify the issue:

  1. Sign the PSF contributor agreement
  2. Wait at least a day and then check "Your Details" on bugs.python.org to see if your account has been marked as having signed the CLA (the delay is due to a person having to manually check your signed CLA)
  3. Reply here saying you have completed the above steps

Thanks again to your contribution and we look forward to looking at it!

Copy link
Member

@berkerpeksag berkerpeksag left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR. The new json.COMPACT constant needs to be documented in Doc/library/json.rst (and please add a .. versionadded:: 3.7 marker)

@berkerpeksag berkerpeksag changed the title bpo-29540 - Added json.COMPACT constant bpo-29540: Add json.COMPACT constant Feb 13, 2017
@andrewnester
Copy link
Contributor Author

@berkerpeksag thanks! just added documentation for json.COMPACT

@@ -175,6 +175,8 @@ Basic Usage
.. versionchanged:: 3.4
Use ``(',', ': ')`` as default if *indent* is not ``None``.

.. versionadded:: 3.7 Instead of ``(',', ':')`` constant ``json.COMPACT`` could be used.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"could be used" -> "can be used"


.. data:: compact

Constant that could be used as *separators* argument value
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A constant that can be used as the *separators* argument to emit a compact serialization.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 to Brett's suggestion.

Copy link
Member

@berkerpeksag berkerpeksag left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please update the "Compact encoding" example at the top of the page.

@@ -175,6 +175,8 @@ Basic Usage
.. versionchanged:: 3.4
Use ``(',', ': ')`` as default if *indent* is not ``None``.

.. versionadded:: 3.7 Instead of ``(',', ':')`` constant ``json.COMPACT`` could be used.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, following the style used in Doc/library/json.rst would be better:

.. versionadded:: 3.7
   Instead of ``(',', ':')`` constant ``json.COMPACT`` could be used.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

versionchanged would be more appropriate here.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

``json.COMPACT`` -> :data:`json.COMPACT`


.. data:: compact

Constant that could be used as *separators* argument value
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 to Brett's suggestion.

@andrewnester
Copy link
Contributor Author

@berkerpeksag @brettcannon thanks! I've just updated PR according to changes you requested.

Copy link
Member

@berkerpeksag berkerpeksag left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please also update JSONEncoder documentation at https://docs.python.org/3/library/json.html#json.JSONEncoder and add a test that passes separators=json.COMPACT to JSONEncoder. Sorry, I missed this in my earlier review.

Constants
^^^^^^^^^

.. data:: compact
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

compact -> COMPACT


.. data:: compact

A constant that can be used as the *separators* argument to emit a compact serialization.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please wrap lines at 80 chars.

@andrewnester
Copy link
Contributor Author

thanks @berkerpeksag ! I've just added changes corresponding to JSONEncoder

@codecov
Copy link

codecov bot commented Feb 14, 2017

Codecov Report

Merging #72 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #72      +/-   ##
==========================================
+ Coverage   82.38%   82.38%   +<.01%     
==========================================
  Files        1428     1428              
  Lines      351138   351147       +9     
==========================================
+ Hits       289282   289294      +12     
+ Misses      61856    61853       -3

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d50f188...71c48e2. Read the comment docs.

@@ -453,6 +467,9 @@ Encoders and Decoders
.. versionchanged:: 3.4
Use ``(',', ': ')`` as default if *indent* is not ``None``.

.. versionchanged:: 3.7
Instead of ``(',', ':')`` constant :data:`json.COMPACT` can be used.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think a versionchanged field is necessary as nothing about the function actually changed. I think it would be better to update the paragraph above from "To get the most compact JSON representation,
you should specify (',', ':') to eliminate whitespace." to "To get the most compact JSON representation,
you should specify :attr:json.COMPACT to eliminate whitespace.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@brettcannon sounds reasonable! I've just updated it, thanks!

@andrewnester
Copy link
Contributor Author

@berkerpeksag @brettcannon any conclusion on this? :)

@brettcannon
Copy link
Member

@andrewnester I've been waiting for the discussion of https://bugs.python.org/issue29540 to settle down and be resolved before commenting further.

@andrewnester
Copy link
Contributor Author

@brettcannon looks like discussion stopped here https://bugs.python.org/issue29540 ..
any conclusion on this PR?

@brettcannon
Copy link
Member

@andrewnester I just pinged the issue to explicitly see what people think about your attribute proposal.

@brettcannon brettcannon changed the title bpo-29540: Add json.COMPACT constant bpo-29863: Add json.COMPACT constant Mar 20, 2017
@brettcannon
Copy link
Member

I opened bpo-29863 to finalize the discussion of the constant since I think it got lost on the older issue that proposed a new compact argument to json.dump().

@andrewnester
Copy link
Contributor Author

@brettcannon thanks! is there any link to discussion or some mailing list?

@orsenthil
Copy link
Member

@andrewnester : http://bugs.python.org/issue29863

@brettcannon
Copy link
Member

@andrewnester I just wanted to say sorry for the delay on making a decision for this. As I'm sure you have noticed on the issue it's basically split down the middle as to whether this PR should be accepted or not and so no one has made the final call.

@brettcannon
Copy link
Member

Closing this since I just closed the issue.

jaraco added a commit to jaraco/cpython that referenced this pull request Feb 17, 2023
oraluben pushed a commit to oraluben/cpython that referenced this pull request Jul 14, 2023
lysnikolaou referenced this pull request in lysnikolaou/cpython Apr 30, 2024
…sole

Refactor termios stuff in unix console
AA-Turner added a commit to AA-Turner/cpython that referenced this pull request Apr 22, 2025
…n#72)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants