def nextContent(self): ''' Return the next content based on the numbering >>> expressions.RehearsalMark('A').nextContent() 'B' >>> expressions.RehearsalMark('II').nextContent() 'III' >>> expressions.RehearsalMark('IV').nextContent() 'V' >>> expressions.RehearsalMark(7).nextContent() 8 >>> expressions.RehearsalMark('Z').nextContent() 'AA' With rehearsal mark 'I' default is to consider it as a roman numeral: >>> expressions.RehearsalMark('I').nextContent() 'II' Specify `numbering` directly to avoid problems: >>> expressions.RehearsalMark('I', numbering='alphabetical').nextContent() 'J' ''' numbering = self.numbering if not numbering: numbering = self._getNumberingFromContent(self.content) if not numbering: if self.content is None: return None # duplicate current content return self.content * 2 if numbering == 'alphabetical': nextContent = chr(ord(self.content[-1]) + 1) if nextContent not in string.ascii_letters: return 'A' * (len(self.content) + 1) else: return nextContent elif numbering == 'number': return int(self.content) + 1 elif numbering == 'roman': return common.toRoman(common.fromRoman(self.content) + 1)
def nextContent(self): ''' Return the next content based on the numbering >>> expressions.RehearsalMark('A').nextContent() 'B' >>> expressions.RehearsalMark('II').nextContent() 'III' >>> expressions.RehearsalMark(7).nextContent() 8 >>> expressions.RehearsalMark('Z').nextContent() 'AA' specify numbering directly to avoid problems: >>> expressions.RehearsalMark('I').nextContent() 'II' >>> expressions.RehearsalMark('I', numbering='alphabetical').nextContent() 'J' ''' numbering = self.numbering if not numbering: numbering = self._getNumberingFromContent(self.content) if not numbering: if self.content is None: return None # duplicate current content return self.content * 2 if numbering == 'alphabetical': nextContent = chr(ord(self.content[-1]) + 1) if nextContent not in string.ascii_letters: return 'A' * (len(self.content) + 1) else: return nextContent elif numbering == 'number': return int(self.content) + 1 elif numbering == 'roman': return common.toRoman(common.fromRoman(self.content) + 1)
def nextContent(self): numbering = self.numbering if not numbering: numbering = self._getNumberingFromContent(self.content) if not numbering: if self.content is None: return None # duplicate current content return self.content * 2 if numbering == 'alphabetical': nextContent = chr(ord(self.content[-1]) + 1) if nextContent not in string.ascii_letters: return 'A' * (len(self.content) + 1) else: return nextContent elif numbering == 'number': return int(self.content) + 1 elif numbering == 'roman': return common.toRoman(common.fromRoman(self.content) + 1)