-
Notifications
You must be signed in to change notification settings - Fork 205
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
f-strings produce inconsistent output for some object types #3181
Comments
What does Python do in this situation? I think your suggestion makes sense though. |
So pretty much what I'm proposing. |
Makes sense, although there's a limit to how far I want to get into us guaranteeing nuances of how we stringify dicts - that feels like it should only be a thing to help with debugging really. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
MWE, which can be observed in a more substantial setting in #3176:
There seems to be an overloading of the purpose of the
String
function for different object types in the build language - e.g. forpyDict
s it tries to produce a somewhat ASP-compliant representation of the current state of the object, but forpyString
s it seems to explicitly produce something suitable for output into an f-string (which makes complete sense given the context where this function is typically called - you don't want to see the surrounding double-quotes in the f-string output).I wonder whether it'd make more sense to have a second function on the
pyObject
interface to sit alongside theString()
function imposed byfmt.Stringer
- something similar in spirit toencoding.TextMarshaler
- and then we can choose which one to use given the circumstances for requiring a textual representation of the object. This would also allow us to accurately stringifypyDict
s (and other non-primitive types likepyList
), sof"this is {s}"
can returnthis is a string
, whilef"{d}"
can return{"i": 1, "s": "a string"}
.The text was updated successfully, but these errors were encountered: