Skip to content

Instantly share code, notes, and snippets.

View coffeewasmyidea's full-sized avatar

Sergey Silaev coffeewasmyidea

  • 08:33 (UTC +02:00)
View GitHub Profile
@coffeewasmyidea
coffeewasmyidea / database.py
Last active April 4, 2024 21:50
SQLAlchemy 2.0 Database Session Manager (async_sessionmaker, AsyncGenerator[Any, AsyncSession])
import functools
import json
from collections.abc import AsyncGenerator
from contextlib import asynccontextmanager
from typing import Any
from crpaylib.infrastructure.logger import get_logger
from sqlalchemy.exc import SQLAlchemyError
from sqlalchemy.ext.asyncio import AsyncEngine
from sqlalchemy.ext.asyncio import AsyncSession
@coffeewasmyidea
coffeewasmyidea / enchanted_thread.py
Created October 4, 2023 18:14
Python thread with tracking of its execution
import sys
import threading
class enchanted_thread(threading.Thread):
def __init__(self, *args, **keywords):
threading.Thread.__init__(self, *args, **keywords)
self.has_stopped = False
def start(self):
@coffeewasmyidea
coffeewasmyidea / .vimrc
Last active October 4, 2023 21:40
Minimal vimrc for remote systems
" general config
set term=xterm-256color
set termguicolors
set cscopeverbose
set cscopetag
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set autoindent
@coffeewasmyidea
coffeewasmyidea / wget_exit_codes.txt
Last active September 5, 2023 08:41
This is the list of exit codes for wget
This is the list of exit codes for wget:
0 No problems occurred
1 Generic error code
2 Parse error — for instance, when parsing command-line options, the .wgetrc or .netrc…
3 File I/O error
4 Network failure
5 SSL verification failure
6 Username/password authentication failure
7 Protocol errors
package main
import "fmt"
func searchMatrix(matrix [][]int, target int) bool {
if len(matrix) == 0 {
return false
}
m, n := len(matrix), len(matrix[0])
left, right := 0, m*n-1
#!/usr/bin/python
def combinations(digits):
keys = {
"2": "abc",
"3": "def",
"4": "ghi",
"5": "jkl",
"6": "mno",
#!/usr/bin/python
from collections import deque
def combinations(digits):
keys = {
"2": "abc",
"3": "def",
"4": "ghi",
@coffeewasmyidea
coffeewasmyidea / rotate.sh
Created June 17, 2022 08:33
Fedora Linux 36, Cinnamon 5.2.7 (auto-rotate touch screen based on device orientation)
#!/bin/bash
#
# Auto-rotate touch screen based on device orientation.
#
# Fedora 36
# 5.17.14-300.fc36.x86_64
#
# Cinnamon 5.2.7
#
# You just need to add this script to the startup of applications for the user.
#!/usr/bin/python
import aiohttp
import asyncio
from timeit import default_timer as timer
from time import sleep
async def main():
#!/usr/bin/python
import aiohttp
import asyncio
import httpx
from timeit import default_timer as timer
from time import sleep