/
LKastornova
/
Python_lesson
Обзор
Документация
Войти
/
LKastornova
/
Python_lesson
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
utils.py
104 строки
3 KB
@lvkastor
Initial commit: Finance Manager 2026 application
11 янв 2026, 19:15
11 янв 2026, 19:15
209a1c3
Код
Авторство
О чём код?
""" Модуль вспомогательных функций для приложения управления финансами. Содержит утилитарные функции для: - Валидации вводимых данных - Очистки и форматирования текста - Проверки корректности дат - Форматирования денежных значений Использует регулярные выражения для проверки и очистки данных. """ import re from datetime import datetime def validate_amount(amount_str): """ Проверяет корректность введенной суммы. Args: amount_str: Строка с суммой для проверки Returns: bool: True если сумма корректна (положительное число), False в противном случае Пример: >>> validate_amount("123.45") True >>> validate_amount("-100") False >>> validate_amount("abc") False """ if not amount_str: return False try: amount = float(amount_str) return amount > 0 except ValueError: return False def clean_comment(comment): """ Очищает комментарий от нежелательных символов. Удаляет специальные символы, оставляя только буквы, цифры, пробелы и основные знаки препинания. Убирает лишние пробелы. Args: comment: Исходный комментарий Returns: str: Очищенный комментарий Пример: >>> clean_comment("Покупка #1 в магазине!") 'Покупка 1 в магазине!' """ if not comment: return "" # Удаляем специальные символы, оставляем буквы, цифры, пробелы и основные знаки препинания cleaned = re.sub(r'[^\w\s.,!?-]', '', comment, flags=re.UNICODE) # Убираем лишние пробелы cleaned = re.sub(r'\s+', ' ', cleaned).strip() return cleaned def validate_date(date_str): """ Проверяет корректность даты в формате YYYY-MM-DD. Args: date_str: Строка с датой для проверки Returns: bool: True если дата корректна, False в противном случае Пример: >>> validate_date("2024-01-10") True >>> validate_date("2024-13-01") False """ try: datetime.strptime(date_str, '%Y-%m-%d') return True except ValueError: return False def format_currency(amount): """ Форматирует сумму с разделителями тысяч. Args: amount: Числовая сумма Returns: str: Отформатированная строка с суммой Пример: >>> format_currency(1234567.89) '1 234 567.89' """ return f"{amount:,.2f}".replace(",", " ")