Skip to content

Instantly share code, notes, and snippets.

View evjeny's full-sized avatar

Evgeny Kanafin evjeny

View GitHub Profile
@evjeny
evjeny / pretty_print_tables.py
Created May 21, 2023 10:52
Print prettified tables with SQLite and SQLAlchemy
import sqlite3
import sqlalchemy
def print_formatted_table(table: list[list]):
column_lengths = [
max(len(table[i][column_num]) for i in range(len(table)))
for column_num in range(len(table[0]))
]
for row in table:
print("|", end=" ")
@evjeny
evjeny / check_missing_paired_entries.py
Created August 17, 2022 04:37
Different ways to check if entry is missing in paired table
import sqlite3
import typing
def create_docs_table(
connection: sqlite3.Connection,
ids: list[int]
):
cursor = connection.cursor()
cursor.execute("DROP TABLE IF EXISTS docs")
@evjeny
evjeny / cli_args.py
Created August 10, 2022 16:23
params parsers
import argparse
import inspect
import typing
from updaters import UpdaterA, UpdaterB, UpdaterC, UpdaterD
params_type = dict[str, typing.Any]
@evjeny
evjeny / check_tasks.py
Created July 18, 2022 19:46
Скрипт для спасения задачек Родиона
import os
import shutil
from charset_normalizer import from_bytes
import xmltodict
def get_xml_dict(path: str):
with open(path, "rb+") as f:
content = f.read()
@evjeny
evjeny / read_logs.py
Created July 7, 2022 12:49
log reader for salesdb
import argparse
from dataclasses import dataclass
import re
@dataclass
class ParseResult:
request_time: float = 0
insert_time: float = 0
@evjeny
evjeny / CollinearFilter.py
Created December 4, 2021 23:44
Sklearn data transformer for filtering collinear features
import numpy as np
from sklearn.base import BaseEstimator, TransformerMixin
class CollinearFilter(BaseEstimator, TransformerMixin):
def __init__(self, thresh: float = 0.95, choose_corr="random", random_state=None):
self.thresh = thresh
self.choose_corr = choose_corr
self.state = np.random.RandomState(random_state)
@evjeny
evjeny / lib.py
Created September 29, 2021 18:52
Multiprocessing demo
"""
Какая-то библиотека, в которой есть затратная по времени функция
"""
def very_slow_function(n: int) -> int:
return n ** 1000
@evjeny
evjeny / perimetry.yml
Created August 22, 2021 19:00
Пример модуля для модульной структуры бота
# весь бот состоит из модулей
module:
# у модуля есть название
name: "Perimetry"
# входная точка
entry_point:
type: "text"
pattern: "Perimetry"
# какие-то действия, которые выполняются
# после прохождения входной точки
@evjeny
evjeny / FileLister.gs
Created January 29, 2021 23:17
Google App Script for listing all image files in directory and getting links to them
function listAllFiles() {
var sheets = SpreadsheetApp.getActiveSpreadsheet();
var sheet = sheets.getActiveSheet();
var cell = sheet.getActiveCell();
var to_visit = [DriveApp.getFolderById("<id>")];
var info = [], f;
var q = '"';
while (to_visit.length > 0) {
var cur_folder = to_visit.pop();
var files = cur_folder.getFiles();
@evjeny
evjeny / Sum.java
Last active September 9, 2020 14:26
First hw for prog_intro course
public class Sum {
public static void main(String[] args) {
int[][] intsArray = new int[args.length][];
for(int i = 0; i < args.length; i++) {
intsArray[i] = parseInts(args[i]);
}
int result = 0;
for(int i = 0; i < intsArray.length; i++) {
for(int j = 0; j < intsArray[i].length; j++) {