Browse Source

Optimization for parser

tags/v0.6.0-beta
wuyongkang 5 years ago
parent
commit
6618a42bf1
1 changed files with 3 additions and 2 deletions
  1. +3
    -2
      mindspore/_extends/parse/parser.py

+ 3
- 2
mindspore/_extends/parse/parser.py View File

@@ -334,7 +334,7 @@ class Parser:
def __init__(self, fn: (types.FunctionType, types.MethodType), parse_method=None) -> None:
self.fn = fn
self.parse_method = parse_method
_, self.line_offset = inspect.getsourcelines(self.fn)
self.line_offset = 0
self.filename: str = inspect.getfile(self.fn)

# Used to resolve the function's globals Namespace.
@@ -350,7 +350,8 @@ class Parser:
logger.debug("fn = %r", self.fn)
tree = None
if isinstance(self.fn, (types.FunctionType, types.MethodType)):
original_src = inspect.getsource(self.fn)
lines, self.line_offset = inspect.getsourcelines(self.fn)
original_src = ''.join(lines)
hexstr = hashlib.sha256(original_src.encode()).hexdigest()
tree = Parser.ast_cache.get(hexstr)
if not tree:


Loading…
Cancel
Save