Skip to content

Instantly share code, notes, and snippets.

@ityshchenko
ityshchenko / mcs_wrapper.py
Created February 22, 2023 14:06
Logging MetaClass example
# py39+
import functools
import logging
import types
def create_mcs_wrapper(
logger: logger.Logger | str,
level: int = logging.DEBUG,
@ityshchenko
ityshchenko / async_ratelimit.py
Last active September 8, 2021 01:42
Solution for applying limits to courotines
# python3.7+
import asyncio
import contextvars
import functools
def async_ratelimit(fn, max_limit=1, timeout=0):
"""
Decorator for make asyncio users happy
#EXTM3U x-tvg-url="https://iptvx.one/epg/epg.xml.gz"
#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Ukrainian" tvg-logo="https://i.imgur.com/11llLr1.jpg" group-title="News",100% News
http://85.238.112.40:8810/hls_sec/239.17.16.32-.m3u8
#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Ukrainian" tvg-logo="https://i.imgur.com/11llLr1.jpg" group-title="News",100% News
http://85.238.112.40:8810/hls_sec/239.33.16.32-.m3u8
#EXTINF:-1 tvg-id="rti" tvg-name="RTi" tvg-language="Ukrainian" tvg-logo="https://i.imgur.com/8k3JjOW.png" group-title="",4 канал
http://95.67.106.10/hls/nta_ua_hi/index.m3u8
#EXTINF:-1 tvg-id="rti" tvg-name="RTi" tvg-language="Ukrainian" tvg-logo="https://i.imgur.com/8k3JjOW.png" group-title="",4 канал
http://95.67.106.10/hls/nta_ua_low/index.m3u8
#EXTINF:-1 tvg-id="rti" tvg-name="RTi" tvg-language="Ukrainian" tvg-logo="https://i.imgur.com/8k3JjOW.png" group-title="",4 канал
from functools import partial
from flask import (
Flask,
appcontext_tearing_down,
render_template,
request
)
import RPi.GPIO as GPIO
app = Flask(__app__)
from typing import Sizeble, Any, List
import itertools
def split_sequence(seq: Sizeble[Any], key: Any) -> List[List[Any]]:
"""Split any Sizible sequence (tuple, list) to lists"""
markers = filter(key if callable(key) else lambda x: x == key, seq)
return [
[

1. Написать набор классов для проверки корректности форм.

Пользователь

Поле Описание
Логин латиница и цифр, только строчные
пароль латиница и цифры, объязательны симв. разных регистров
Имя без цифр и спец. символов, доступен дефис
Фамилия без цифр и спец. символов, доступен дефис
@ityshchenko
ityshchenko / task.md
Last active July 4, 2019 11:02
Работа с сокетами

1. Передать папку вместе со всем её содержимым через сокет (клиент - тот кто принимает + сервер - тот кто публикует).

  1. Прочитать папку
  2. Передать содержимое
  3. Скропировать дату создания/изменения

2. Создать чат-сервер и клиент (форум).

  1. Сервер хранит словарь с перечнем всех сообщений.
  2. При подключении, клиент получает последние 20 сообщений.
  3. Клиент может отправить сообщение всем участникам.
  1. Написать "чистую"-функцию, которая в списке из чисел, каждое число умножит на "n"
def mul_seq(seq, n):
    pass
    
mul_seq(range(3), 4)
# <generator 0x...> (0, 8, 16)

mul_seq([0, 1, 2], 4)
<root>
<scene>PreMatch</scene>
<players>
<player1>
<id>76561198402677882</id>
<nick>forester</nick>
<name>Igor Bezotecheskiy</name>
<team>DreamEaters</team>
<stats>
<kills>344</kills>
<root>
<scene>rooster</scene>
<team>
<teamName>DreamEaters</teamName>
<players type="array">
<player1>
<name>Igor Bezotecheskiy</name>
<nickname>forester</nickname>
</player1>
<player2>