Система управления и анализа транзакций интернет-банка #1
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
load_transactions(filepath: str) -> list[dict]
Загружает транзакции из JSON-файла. Если файл не найден или поврежден, возвращает пустой список. При ошибке парсинга отдельных записей пропускает их с выводом предупреждения в stderr. (Работа с файлами, обработка исключений)
filter_by_category(transactions: list[dict], categories: list[str]) -> list[dict]
Возвращает транзакции, категория которых входит в переданный список категорий (регистронезависимо). (Фильтрация списков, строки)
filter_by_amount_range(transactions: list[dict], min_amount: float, max_amount: float) -> list[dict]
Возвращает транзакции с суммой в диапазоне [min_amount, max_amount] (включительно). (Числовые сравнения)
filter_fraud_transactions(transactions: list[dict]) -> list[dict]
Возвращает список транзакций, помеченных как мошеннические (is_fraud == True). Сортирует результат по убыванию суммы. (Фильтрация, сортировка)
calculate_user_spending(transactions: list[dict], user_id: int) -> dict[str, float]
Для указанного пользователя возвращает словарь с суммой трат по каждой категории. Учитываются только неподозрительные транзакции (is_fraud == False). (Агрегация данных, группировка по словарю)
get_top_categories(transactions: list[dict], n: int) -> list[tuple[str, float]]
Анализирует все транзакции (без учета флага мошенничества) и возвращает топ-n категорий по общей сумме трат в формате [(категория, сумма), ...]. (Словари-счетчики, сортировка)
detect_unusual_activity(transactions: list[dict], user_id: int, threshold: float) -> list[dict]
Для указанного пользователя возвращает список транзакций, сумма которых превышает среднюю сумму его транзакций умноженную на threshold. Если у пользователя менее 3 транзакций, возвращает пустой список. (Статистика, среднее арифметическое, работа с числами)
group_by_day(transactions: list[dict]) -> dict[str, dict]
Группирует транзакции по дням (формат "YYYY-MM-DD"). Для каждого дня возвращает словарь с ключами:
total_amount — общая сумма
transaction_count — количество транзакций
avg_amount — средняя сумма