MCPcopy Index your code
hub / github.com/python/cpython / parse_from_import

Method parse_from_import

Lib/_pyrepl/_module_completer.py:373–390  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

371 raise ParseError('parse_import')
372
373 def parse_from_import(self) -> Result:
374 stripped = self.code.rstrip()
375 if stripped.endswith('import') and self.code.endswith(' '):
376 return Result(from_name=self.parse_empty_from_import(), name='')
377 if stripped.endswith('from') and self.code.endswith(' '):
378 return Result(from_name='')
379 if self.tokens.peek_string('(') or self.tokens.peek_string(','):
380 return Result(from_name=self.parse_empty_from_import(), name='')
381 if self.code.endswith(' '):
382 raise ParseError('parse_from_import')
383 name = self.parse_dotted_name()
384 if '.' in name:
385 self.tokens.pop_string('from')
386 return Result(from_name=name)
387 if self.tokens.peek_string('from'):
388 return Result(from_name=name)
389 from_name = self.parse_empty_from_import()
390 return Result(from_name=from_name, name=name)
391
392 def parse_empty_from_import(self) -> str:
393 if self.tokens.peek_string(','):

Callers 1

_parseMethod · 0.95

Calls 8

parse_dotted_nameMethod · 0.95
peek_stringMethod · 0.80
pop_stringMethod · 0.80
ResultClass · 0.70
ParseErrorClass · 0.70
rstripMethod · 0.45
endswithMethod · 0.45

Tested by

no test coverage detected