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

Method parse_dotted_name

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

Source from the content-addressed store, hash-verified

411 return self.parse_dotted_name()
412
413 def parse_dotted_name(self) -> str:
414 name = []
415 if self.tokens.peek_string('.'):
416 name.append('.')
417 self.tokens.pop()
418 if (self.tokens.peek_name()
419 and (tok := self.tokens.peek())
420 and tok.string not in self._keywords):
421 name.append(self.tokens.pop_name())
422 if not name:
423 raise ParseError('parse_dotted_name')
424 while self.tokens.peek_string('.'):
425 name.append('.')
426 self.tokens.pop()
427 if (self.tokens.peek_name()
428 and (tok := self.tokens.peek())
429 and tok.string not in self._keywords):
430 name.append(self.tokens.pop_name())
431 else:
432 break
433
434 while self.tokens.peek_string('.'):
435 name.append('.')
436 self.tokens.pop()
437 return ''.join(name[::-1])
438
439 def parse_as_names(self) -> None:
440 self.parse_as_name()

Callers 4

parse_importMethod · 0.95
parse_from_importMethod · 0.95
parse_fromMethod · 0.95
parse_dotted_as_nameMethod · 0.95

Calls 8

peek_stringMethod · 0.80
peek_nameMethod · 0.80
pop_nameMethod · 0.80
ParseErrorClass · 0.70
appendMethod · 0.45
popMethod · 0.45
peekMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected