def _parse_me(raw_msg: str) -> Message: reg_result = re.match(r'(Доход) ([\d ]+) (.*)', raw_msg) if not reg_result or not reg_result.group(0) or not reg_result.group( 2) or not reg_result.group(3): raise exceptions.NotCorrectMessage( 'Не могу понять сообщения, пишит так: Доход-Расход Сумма Имя') amount = reg_result.group(2).replace(' ', '') name = reg_result.group(3).strip() return Message(amount=amount, text=name)
def _parse_message(raw_message: str) -> Message: """Парсит текст пришедшего сообщения о новом расходе.""" regexp_result = re.match(r"([\d ]+) (.*)", raw_message) if regexp_result == None: raise exceptions.NotCorrectMessage( "Не могу понять сообщение. Напишите сообщение в формате, " "например:\n1500 метро") amount = regexp_result.group(1) category_text = regexp_result.group(2) return Message(amount=amount, category_text=category_text)
def _parse_message(raw_message: str) -> Message: regexp_result = re.match(r"([\d ]+) (.*)", raw_message) if not regexp_result or not regexp_result.group(0) \ or not regexp_result.group(1) or not regexp_result.group(2): raise exceptions.NotCorrectMessage( "Cannot parse the message. Write it in format, for example:\n5 coffee" ) amount = int(regexp_result.group(1).replace(" ", "")) category_text = regexp_result.group(2).strip().lower() return Message(amount=amount, category_text=category_text)
def add_theme_grade_check(raw_message: str) -> None: """ Проверяет на соответствие название класса у темы """ regexp_result = re.search(r"^(\d{1,2} класс)$", raw_message) if not regexp_result or not regexp_result.group(0) \ or not regexp_result.group(1): raise exceptions.NotCorrectMessage( "Не могу понять сообщение. Напишите класс для темы в формате\n" "➡6 класс\n" "или нажмите /cancel")
def _parse_message(raw_message: str) -> Message: reg_result = re.match(r'([\d ]+) (.*)', raw_message) if not reg_result or not reg_result.group(0) \ or not reg_result.group(1) or not reg_result.group(2): raise exceptions.NotCorrectMessage( 'Не могу понять сообщение, попробуй в другом формате') amount = reg_result.group(1).replace(' ', '') text = reg_result.group(2).strip().lower() # print(amount, text) return Message(amount=amount, text=text)
def _parse_message(message: str): """Парсит сообщение и достает название продукта и его калораж""" parsed = re.findall(r'(.+) (\d+)', message) if parsed == []: raise exceptions.NotCorrectMessage( "Не смог прочитать сообщение. Повторите запрос") food = Food(food_name=parsed[0][0], calories=int(parsed[0][1])) return food
def _parse_message(raw_message: str) -> Message: """Парсить текст прийшов повідомлення про новий витраті.""" regexp_result = re.match(r"([\d ]+) (.*)", raw_message) if not regexp_result or not regexp_result.group(0) \ or not regexp_result.group(1) or not regexp_result.group(2): raise exceptions.NotCorrectMessage( "Не можу зрозуміти повідомлення. Напишіть повідомлення в форматі, " "наприклад:\n1500 метро") amount = regexp_result.group(1).replace(" ", "") category_text = regexp_result.group(2).strip().lower() return Message(amount=amount, category_text=category_text)
def _parse_message(raw_message: str) -> Message: """Парсит текст пришедшего сообщения о новом расходе.""" regexp_result = re.match(r"([\d ]+) (.*)", raw_message) if not regexp_result or not regexp_result.group(0) \ or not regexp_result.group(1) or not regexp_result.group(2): raise exceptions.NotCorrectMessage( 'Не могу понять сообщение 🙈 \nНапиши расход в формате: "1500 одежда"' ) amount = regexp_result.group(1).replace(" ", "") category_text = regexp_result.group(2).strip().lower() return Message(amount=amount, category_text=category_text)
def _parse_message(raw_message: str) -> Message: """Parses the text of a message about a new expense""" regexp_result = re.match(r"([\d ]+) (.*)", raw_message) if not regexp_result or not regexp_result.group(0) \ or not regexp_result.group(1) or not regexp_result.group(2): raise exceptions.NotCorrectMessage( "I can not understand the message. Write a message in a format, " "e.g.:\n1000 cafe") amount = int(regexp_result.group(1).replace(" ", "")) category_text = regexp_result.group(2).strip().lower() return Message(amount=amount, category_text=category_text)
def _parse_message(raw_message: str) -> Message: """Parses the text of the incoming message about the new expense.""" regexp_result = re.match(r"([\d ]+) (.*)", raw_message) if not regexp_result or not regexp_result.group( 0) or not regexp_result.group(1) or not regexp_result.group(2): raise exceptions.NotCorrectMessage( "I can't understand the message. Write a message in the format, for example:\n\t1500 metro." ) amount = int(regexp_result.group(1).replace(" ", "")) category_text = regexp_result.group(2).strip().lower() return Message(amount=amount, category_text=category_text)
def _parse_message(raw_message: str) -> Message: """Парсит текст пришедшего сообщения о новом расходе.""" # выуживаем цифру regexp_digit = re.search(r"\d+.\d+", raw_message) regexp_string = re.search(r"[аА-яЯ]+", raw_message) if not regexp_digit or not regexp_digit.group(0)\ or not regexp_string or not regexp_string.group(0): raise exceptions.NotCorrectMessage( "Не магу зразумець паведамленне, напішы штосці кшталту:\n 4 кава") amount = regexp_digit[0] print(amount) name = regexp_string[0] category_text = name.strip().lower() return Message(amount=amount, category_text=category_text)
def _parse_message(raw_message: str) -> ParsedMessage: """ Parses the recieved message and returns an instance of ParsedMessage class Parameters: raw_message: str — the recieved message, raw, not parsed Returns: parsed message: an instance of ParsedMessage class """ re_result = re.search(r"^(\d+)(.*)", raw_message) if not re_result or not re_result.group(0) \ or not re_result.group(1) or not re_result.group(2): raise exceptions.NotCorrectMessage( "Сообщение не соответствует шаблону: \"1500 кафе\"" ) amount = re_result.group(1).strip() category_text = re_result.group(2).strip().lower() return ParsedMessage(amount=int(amount), category_text=category_text)
def _parse_message_add_student(raw_message: str) -> Student: """ Парсит текст пришедшего сообщения для добавления нового студента """ regexp_result = re.match(r"(\w+ \w+( \w+)?) (\d{1,2} класс)\s?(.*)", raw_message) if not regexp_result or not regexp_result.group(0) \ or not regexp_result.group(1) or not regexp_result.group(3): raise exceptions.NotCorrectMessage( "Не могу понять сообщение. Напишите текст в формате\n" "➡Вася Пупкин 6 класс\n\n" "или нажмите /cancel") fullname = regexp_result.group(1) grade = regexp_result.group(3) if regexp_result.group(4): description = regexp_result.group(4) else: description = "" return Student(id=None, fullname=fullname, grade=grade, description=description)
def delete_expense(row_id: int) -> None: try: db.delete("expense", row_id) except sqlite3.ProgrammingError: raise exceptions.NotCorrectMessage( f'Expense with ({row_id}) ID does not exist')