berkerpeksag / astor

Python AST read/write
https://pypi.org/project/astor/
BSD 3-Clause "New" or "Revised" License
803 stars 102 forks source link

Large integer failure #127

Closed adam-kucz closed 5 years ago

adam-kucz commented 5 years ago

rtrip on file (valid Python 3.6)

foo = 0xdfa21cd2a530ccc8c870aa60d9feb3b35deeab81c3215a96557abbd683d21f4600f38e475d87100da9a4404220eeb3bb5584e5a2b5b48ffda58530ea19104a32577d7459d91e76aa711b241050f4cc6d5327ccee254f371bcad3be56d46eb5919b73f20dbdb1177b700f00891c5bf4ed128bb90ed541b778288285bcfa28432ab5cbcb8321b6e24760e998e0daa519f093a631e44276d7dd252ce0c08c75e2ab28a7349ead779f97d0f20a6d413bf3623cd216dc35375f6366690bcc41e3b2d5465840ec7ee0dc7e3f1c101d674a0c7dbccbc3942788b111396add2f8153b46a0e4b50d66e57ee92958f1c860dd97cc0e40e32febff915343ed53573142bdf4b

gives

  File "astor/rtrip.py", line 209, in <module>
    convert(fname, readonly=readonly or dumpall, dumpall=dumpall)
  File "astor/rtrip.py", line 83, in convert
    dsttxt = to_source(srcast)
  File "astor/code_gen.py", line 52, in to_source
    generator.visit(node)
  File "astor/node_util.py", line 143, in visit
    return visitor(node)
  File "astor/code_gen.py", line 802, in visit_Module
    self.write(*node.body)
  File "astor/code_gen.py", line 168, in write
    visit(item)
  File "astor/node_util.py", line 143, in visit
    return visitor(node)
  File "astor/code_gen.py", line 278, in visit_Assign
    self.visit(node.value)
  File "astor/node_util.py", line 143, in visit
    return visitor(node)
  File "astor/code_gen.py", line 627, in visit_Num
    real = part(x.real if isinstance(x, complex) else x, imaginary=False)
  File "astor/code_gen.py", line 619, in part
    if math.isinf(p):
OverflowError: int too large to convert to float