Skip to content

Instantly share code, notes, and snippets.

View ninlith's full-sized avatar

Okko Hartikainen ninlith

View GitHub Profile
@ninlith
ninlith / fitcat.py
Last active December 14, 2024 16:33
Fitcat. A cat that truncates long lines.
# Fitcat. A cat that truncates long lines.
import contextlib, os, shutil, sys
try:
width = os.get_terminal_size(sys.stdin.fileno()).columns
except OSError:
width = shutil.get_terminal_size().columns
with contextlib.ExitStack() as stack, contextlib.suppress(BrokenPipeError):
for f in [stack.enter_context(open(fname)) for fname in sys.argv[1:]]:
[print(line[:width].rstrip()) for line in f]
@ninlith
ninlith / async_memoize.py
Last active January 7, 2025 12:44
Asynchronous function cache.
"""Coalescing LRU and TTL function cache."""
import asyncio
import atexit
import logging
import time
from collections import defaultdict, OrderedDict
from functools import wraps
logger = logging.getLogger(__name__)