import websockets
import asyncio
import logging
# Настройка логирования
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
async def listen():
    url = "ws://simple-websocket-server-echo.glitch.me/"
    
    logging.info("Подключение к серверу WebSocket...")
    async with websockets.connect(url) as ws:
        logging.info("Успешно подключено к серверу.")
        
        while True:
            msg = await ws.recv()  # Ожидаем получение сообщения
            logging.info(f"Получено сообщение: {msg}")  # Логируем сообщение
async def main():
    # Создание задачи для прослушивания
    listener_task = asyncio.create_task(listen())
    
    # Здесь вы можете добавить другие задачи параллельно, если необходимо
    await listener_task  # Ожидаем завершения задачи, чтобы программа не завершилась
# Запуск основной функции
asyncio.run(main())import uuid # Библиотека для генерации RqUID
# Получаем эти данные на странице разработчиков Сбера
client_id = 'xxxxx-xxxxx-xxxxx-xxxxx-xxxxx'
secret = 'xxxxx-xxxxx-xxxxx-xxxxx-xxxxx'
# Данные авторизации пользователя
auth = 'MDk4N2Y4ZTxxxxxxxxxxxxxxxDQ0Nw=='
# Генерируем токен
def get_token(user_auth):
    '''
    Функция генерации токена
    user_auth - данные авторизации пользователя
    '''
    rq_uid = str(uuid.uuid4())
    
    # эндпоинт GigaChat для генерации токена
    url = "https://ngw.devices.sberbank.ru:9443/api/v2/oauth"
    payload='scope=GIGACHAT_API_PERS'
    headers = {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Accept': 'application/json',
    'RqUID': rq_uid,
    'Authorization': f'Basic {user_auth}'
    }
    response = requests.request("POST", url, headers=headers, data=payload)
    token = response.json()["access_token"]
    # print(token)
    return tokenmarkup = '<a href="http://example.com/">\nI linked to <i>example.com</i>\n</a>'
soup = BeautifulSoup(markup)
soup.get_text()
u'\nI linked to example.com\n'
soup.i.get_text()
u'example.com'>>> from bs4 import BeautifulSoup
>>> html = '<a href="http://example.com/">\nI linked to <i>example.com</i>\n</a>'
>>> root = BeautifulSoup(html, 'html.parser')
>>> root.get_text()
# '\nI linked to example.com\n'
>>> root.i.get_text()
# 'example.com'Читайте про позиционные (кортежи) и именованные (словари) аргументы.  
def func(*args, **qwargs):
    if args:
       sum = 0
       for i in args:
           sum += i
        print(sum)
    if qwargs:
        sum2 = 0
        for v in qwargs.values():
            sum2 += v
        print(sum2)
func(1, 2) #3
func(a=1, b=2) #3