Skip to content

Instantly share code, notes, and snippets.

@Tishka17
Tishka17 / converter.py
Created June 5, 2025 16:27
Env vars processing using adaptix
from dataclasses import dataclass
from typing import Any, TypedDict
from adaptix import Retort, CannotProvide, name_mapping, loader, Chain
from adaptix._internal.provider.loc_stack_filtering import LocStack, P
from adaptix._internal.provider.location import TypeHintLoc
from adaptix._internal.provider.shape_provider import InputShapeRequest
class ClassTOTD:
@Tishka17
Tishka17 / adaptix_protobuf.py
Created June 2, 2025 12:10
Protobuf to dataclass converstion.
from dataclasses import dataclass
from pathlib import Path
import grpc
from google._upb._message import FieldDescriptor
from adaptix import TypeHint
from adaptix._internal.conversion.facade.func import get_converter
from adaptix._internal.model_tools.definitions import (
InputShape, InputField, NoDefault, Param, ParamKind, OutputShape,
@Tishka17
Tishka17 / conftest.py
Last active May 20, 2025 15:53
Postgres template in fixtures
import importlib
import os
from typing import Iterator
import alembic.command
import alembic.config
import psycopg
import pytest
import pytest_asyncio
from sqlalchemy import NullPool
@Tishka17
Tishka17 / jwt.py
Created May 19, 2025 13:48
JwtIdProvider
class JwtIdProvider(IdentityProvider):
def __init__(self, jwk_uri: str, aud: str, context: ServicerContext) -> None:
self.jwks_client = PyJWKClient(jwk_uri)
self.aud = aud
self.context = context
async def get_user(self) -> User | None:
for header, value in self.context.invocation_metadata():
if header != "authorization":
continue
class A:
def foo(self):
print("foo")
@Tishka17
Tishka17 / override.py
Created April 15, 2025 15:59
Dishka container override example
from collections.abc import AsyncIterator, Iterator
from contextlib import contextmanager
from typing import TypeVar
from dishka import (
DEFAULT_COMPONENT,
AsyncContainer,
Container,
make_async_container,
make_container,
@Tishka17
Tishka17 / modifier.py
Created March 15, 2025 17:31
Assignement modificator in python
# logic
MOD x = y
x = MOD.__transform__(t"{y}") # lazy evaluation
x = MOD(y) # general case
# unpack
MOD1 x, MOD2 y = z
_x, _y = z
x = MOD1(x), MOD2(y)
@Tishka17
Tishka17 / bot.py
Created January 10, 2025 23:20
Stateless dialog rendering
import asyncio
import logging
import os
from dataclasses import dataclass
from typing import Any
from aiogram import Bot, Dispatcher, Router, F
from aiogram.filters import CommandStart
from aiogram.fsm.state import State
from aiogram.types import Message, CallbackQuery
@Tishka17
Tishka17 / oidc.py
Created January 8, 2025 14:11
open id connect client
import http
import json
import logging
from dataclasses import dataclass
from datetime import datetime
from typing import Any
import aiohttp
from adaptix import Retort
@Tishka17
Tishka17 / classes.py
Last active October 10, 2024 20:11
dishka benchmark
from enum import auto
from dishka import BaseScope
try:
from dishka.entities.scope import new_scope
except ImportError:
new_scope = str
class B:
def __init__(self, x: int):