PaddlePaddle / PaddlePaddle/PaConvert

【依赖】astor报错:AttributeError: No defined handler for node of type Match

Open
#870 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
122
Forks
98
PR merge metrics
No merged PRs in 30d

Description

在特定代码转换时,由astor依赖报如下错误:
https://github.com/felix-lyx/prose/blob/main/prose_fd/models/transformer.py

  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/code_gen.py", line 63, in to_source
    generator.visit(node)
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/node_util.py", line 143, in visit
    return visitor(node)
           ^^^^^^^^^^^^^
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/code_gen.py", line 878, in visit_Module
    self.write(*node.body)
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/code_gen.py", line 178, in write
    visit(item)
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/node_util.py", line 143, in visit
    return visitor(node)
           ^^^^^^^^^^^^^
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/code_gen.py", line 364, in visit_ClassDef
    self.body(node.body)
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/code_gen.py", line 226, in body
    self.write(*statements)
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/code_gen.py", line 178, in write
    visit(item)
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/node_util.py", line 143, in visit
    return visitor(node)
           ^^^^^^^^^^^^^
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/code_gen.py", line 335, in visit_FunctionDef
    self.body(node.body)
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/code_gen.py", line 226, in body
    self.write(*statements)
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/code_gen.py", line 178, in write
    visit(item)
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/node_util.py", line 143, in visit
    return visitor(node)
           ^^^^^^^^^^^^^
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/code_gen.py", line 378, in visit_If
    self.body(node.body)
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/code_gen.py", line 226, in body
    self.write(*statements)
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/code_gen.py", line 178, in write
    visit(item)
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/node_util.py", line 143, in visit
    return visitor(node)
           ^^^^^^^^^^^^^
  File "/home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages/astor/node_util.py", line 137, in abort_visit
    raise AttributeError(msg % node.__class__.__name__)
AttributeError: No defined handler for node of type Match

依赖版本:

pip show astor                                                      
Name: astor
Version: 0.8.1
Summary: Read/rewrite/write Python ASTs
Home-page: https://github.com/berkerpeksag/astor
Author: Patrick Maupin
Author-email: pmaupin@gmail.com
License: BSD-3-Clause
Location: /home/lkyu/miniconda3/envs/py312_torch291_cu128/lib/python3.12/site-packages
Requires: 
Required-by: depyf, paconvert

已反馈到https://github.com/berkerpeksag/astor/issues/234

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with prose_fd/models/transformer.py and reproduce the failure through astor when processing a Match node. Compare the conversion path with the upstream astor issue #234, then determine the project-local fix or dependency decision. Done means the reported transformation no longer raises the AttributeError.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.