Skip to content

Instantly share code, notes, and snippets.

@Tishka17
Tishka17 / noreturn.py
Created June 8, 2022 15:47
Python code without any return
#### library mode
import inspect
def res_var_name(fname):
return f"_{fname}_result_"
def result(value, offset=1):
stack = inspect.stack()
@Tishka17
Tishka17 / counter.py
Last active June 20, 2022 08:08
Counter widget for aiogram_dialog
from typing import List, Dict
from aiogram.types import InlineKeyboardButton, CallbackQuery
from aiogram_dialog.dialog import Dialog
from aiogram_dialog.manager.protocols import DialogManager
from aiogram_dialog.widgets.kbd.base import Keyboard
from aiogram_dialog.widgets.managed import ManagedWidgetAdapter
from aiogram_dialog.widgets.text import Const, Format
from aiogram_dialog.widgets.when import WhenCondition
@Tishka17
Tishka17 / calendar_checkbox.py
Created June 28, 2022 17:06
Dialog demo with calendar and checkboxes
import asyncio
import logging
from operator import itemgetter
from aiogram import Bot, Dispatcher
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher.filters.state import StatesGroup, State
from aiogram_dialog import Dialog, Window, DialogRegistry
from aiogram_dialog.widgets.kbd import ScrollingGroup, Multiselect, Calendar, Radio
@Tishka17
Tishka17 / confirm.py
Last active July 6, 2022 22:00
Confirmation dialog factory
import asyncio
import logging
import operator
from typing import Any, Tuple, List
from aiogram import Bot, Dispatcher
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher.filters.state import StatesGroup, State
from aiogram.types import CallbackQuery
from magic_filter import F
@Tishka17
Tishka17 / error_dock.py
Last active October 19, 2023 09:51
Error handling dock
from enum import Enum
from logging import getLogger, basicConfig, INFO
from typing import Any, Optional
logger = getLogger(__name__)
class ErrorType(Enum):
def __add__(self, other):
return self
@Tishka17
Tishka17 / semienum.py
Created July 15, 2022 08:12
SemiEnum
class SemiEnumMeta(type):
def __new__(mcs, name, bases, class_dict):
class_ = super().__new__(mcs, name, bases, class_dict)
class_.__value_mapping = {}
for name, value in class_dict.items():
if name.startswith("__"):
continue
instance = class_(value)
setattr(class_, name, instance)
class_.__value_mapping[value] = instance
@Tishka17
Tishka17 / di_adapter.py
Last active August 14, 2022 17:42
Example of DI injection for fastapi
import functools
from inspect import signature
from di.container import Container
from di.dependant import Dependant
from di.executors import AsyncExecutor
from fastapi import APIRouter
def copy_signature(source_fct):
@Tishka17
Tishka17 / confirm.py
Last active October 5, 2023 10:07
aiogram-dialog Confirmation Dialog with StatesGroup generation
import asyncio
import logging
import operator
from typing import Any, Tuple, List
from aiogram import Bot, Dispatcher
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher.filters.state import (
StatesGroup, State, StatesGroupMeta,
)
@Tishka17
Tishka17 / depends.py
Last active December 21, 2022 16:41
Simple IoC framework
import contextlib
from contextlib import AbstractContextManager, ExitStack
from functools import wraps
from inspect import getfullargspec
from typing import Any, Callable, Dict, get_type_hints, Type
class Depends: # todo mypy
def __init__(self, dependency: Any = None):
self.dependency = dependency
@Tishka17
Tishka17 / test_sqla.py
Created November 3, 2022 13:55
Test with sqlalchemy
import os
import pytest
from sqlalchemy import Column, Integer, create_engine, event, String
from sqlalchemy.orm import declarative_base, Session
Base = declarative_base()
class Model(Base):