Подписаться
Уведомить о
guest
1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
seva
seva
25.11.2025 07:25
import re
from datetime import datetime

_database = []


def insert(*users):
    for user in users:
        _database.append(user)
    _database.sort(key=lambda x: x['id'])


def select(condition=None):
    if condition is None:
        return _database.copy()
    
    pattern = r'(\w+)\s*([<>]=?|==?|!=)\s*(.+)'
    match = re.match(pattern, condition.strip())
    
    field, operator, value = match.groups()
    
    def compare(user_value, op, cond_value):
        if op == '==':
            return user_value == cond_value
        elif op == '!=':
            return user_value != cond_value
        elif op == '<':
            return user_value < cond_value
        elif op == '<=':
            return user_value <= cond_value
        elif op == '>':
            return user_value > cond_value
        elif op == '>=':
            return user_value >= cond_value
    
    filtered_users = []
    for user in _database:
        user_value = user[field]
        
        if field == 'id':
            user_value = int(user_value)
            value_int = int(value)
            if compare(user_value, operator, value_int):
                filtered_users.append(user)
        elif field == 'birth':
            user_date = datetime.strptime(user_value, '%d.%m.%Y')
            value_date = datetime.strptime(value, '%d.%m.%Y')
            if compare(user_date, operator, value_date):
                filtered_users.append(user)
        else:  # name field
            if compare(user_value, operator, value):
                filtered_users.append(user)
    
    return filtered_users