I think the idea you're looking for is an alternative for the pprint module
that allows classes to have formatting hooks that get passed in some
additional information (or perhaps a PrettyPrinter object) that can affect
the formatting.

This would seem to be an ideal thing to try to design and put on PyPI,
*except* it would be more effective if there was a standard, rather than
several competing such modules, with different APIs for the formatting
hooks.

So I encourage having a discussion (might as well be here) about the design
of the new PrettyPrinter API.

On Sun, Mar 15, 2020 at 4:08 AM Steve Jorgensen <ste...@stevej.name> wrote:

> This is really an idea for an idea. I'm not sure what the ideal dunder
> method names or APIs should be.
>
>
> Encoding awareness:
>
> The informal (`str`) representations of `inf` and `-inf` are "inf" and
> "-inf", and that seems appropriate as a known-safe value, but if we're
> writing the representation to a stream, and the stream has a Unicode
> encoding, then those might prefer to represent themselves as "∞" and "-∞".
> If there were a dunder method for informal representation to which the
> destination stream was passed, then the object could decide how to
> represent itself based on the properties of the stream.
>
>
> Prettiness awareness:
>
> It would be nice if an object could have control of how it is represented
> when pretty-printed. If there is any way for that to be done now, it is not
> at all evident from the pprint module documentation. It would be nice if
> there were some method that, if implemented for the object, would be used
> to allow the object to tell the pretty printer to treat it is a composite
> with starting text, component objects, and ending text.
>
>
> Additional thoughts & open questions:
>
> Perhaps there should only be stream awareness for informal representation
> and prettiness awareness for formal representation (separate concepts and
> APIs) or perhaps both ideas are applicable to both kinds of representation.
>
> Is it better for a stream-aware representation method to return the value
> to be written to the stream or to directly append its representation to
> that stream?
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/OQPPJ7SNM5CZUI5RYT5R4Z6YZWMNNTZS/
> Code of Conduct: http://python.org/psf/codeofconduct/
>


-- 
--Guido van Rossum (python.org/~guido)
*Pronouns: he/him **(why is my pronoun here?)*
<http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/3EF6W7DDSWRUAW57CFBTIUMANEH3P4TX/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to