oracle / graalpython

A Python 3 implementation built on GraalVM
Other
1.21k stars 104 forks source link

pprint.pformat AssertionError #181

Closed oroppas closed 3 years ago

oroppas commented 3 years ago

GraalPython gets caught by assertion while CPython doesn't:

GraalPython

>>> pprint.pformat(pprint.__dict__)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_38BE212BA7_JAVA11/graalvm-38be212ba7-java11-21.1.0-dev/languages/python/lib-python/3/pprint.py", line 58, in pformat
    return PrettyPrinter(indent=indent, width=width, depth=depth,
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_38BE212BA7_JAVA11/graalvm-38be212ba7-java11-21.1.0-dev/languages/python/lib-python/3/pprint.py", line 153, in pformat
    self._format(object, sio, 0, 0, {}, 0)
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_38BE212BA7_JAVA11/graalvm-38be212ba7-java11-21.1.0-dev/languages/python/lib-python/3/pprint.py", line 176, in _format
    p(self, object, stream, indent, allowance, context, level + 1)
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_38BE212BA7_JAVA11/graalvm-38be212ba7-java11-21.1.0-dev/languages/python/lib-python/3/pprint.py", line 200, in _pprint_dict
    self._format_dict_items(items, stream, indent, allowance + 1,
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_38BE212BA7_JAVA11/graalvm-38be212ba7-java11-21.1.0-dev/languages/python/lib-python/3/pprint.py", line 356, in _format_dict_items
    self._format(ent, stream, indent + len(rep) + 2,
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_38BE212BA7_JAVA11/graalvm-38be212ba7-java11-21.1.0-dev/languages/python/lib-python/3/pprint.py", line 176, in _format
    p(self, object, stream, indent, allowance, context, level + 1)
  File "/home/ryuta/packages/graalvm/graal/graal/sdk/mxbuild/linux-amd64/GRAALVM_38BE212BA7_JAVA11/graalvm-38be212ba7-java11-21.1.0-dev/languages/python/lib-python/3/pprint.py", line 277, in _pprint_str
    assert not parts[-1]
AssertionError

CPython

>>> import pprint
>>> pprint.pformat(pprint.__dict__)
'{\'PrettyPrinter\': <class \'pprint.PrettyPrinter\'>,\n
...
\n \'saferepr\': <function saferepr at 0x7ff25018f4c0>}'