Skip to content

Instantly share code, notes, and snippets.

View Object905's full-sized avatar

Zverev Konstantin Object905

View GitHub Profile
@Object905
Object905 / tile_downloader.py
Created March 21, 2024 13:35
Map tile server downloader
"""
Download tiles from tile sever "smart way" - fetchin for biggest zoom and then going down only if tile has some data
"""
from __future__ import annotations
import asyncio
import io
from itertools import batched
import math
@Object905
Object905 / discovery.rs
Created March 14, 2024 10:51
Pingora kubernetes discovery example
use std::collections::{BTreeSet, HashMap};
use std::net::{IpAddr, Ipv4Addr, SocketAddrV4};
use std::pin::Pin;
use std::str::FromStr;
use std::sync::atomic::Ordering;
use std::sync::Arc;
use async_trait::async_trait;
use atomic_option::AtomicOption;
use futures::future::{select, Either};
import strawberry
def filter_unset_input(input):
result = {}
for key in input.__annotations__.keys():
value = getattr(input, key)
if value != strawberry.arguments.UNSET:
result[key] = value
return result
from typing import Generic, TypeVar
import strawberry
from django.core.paginator import EmptyPage, Page, PageNotAnInteger, Paginator
from django.db.models.query import QuerySet
T = TypeVar("T")
MAX_PAGE_SIZE = 100
from asyncio import Semaphore
from io import DEFAULT_BUFFER_SIZE
from os import PathLike
import aiofiles
import aiohttp
from zipstream import AioZipStream
async def download_files_into_zip(
@Object905
Object905 / fastapi_paginate.py
Last active May 15, 2021 17:55
Generic pagination for fastapi and sqlalchemy (easyli adapted to other orms/db drivers)
import math
from typing import Generic, List, Optional, TypeVar
from fastapi import Query
from pydantic.generics import GenericModel
from starlette.datastructures import URL
DEFAULT_PAGE_SIZE = 25
MAX_PAGE_SIZE = 100