Skip to content

Instantly share code, notes, and snippets.

View mrtj's full-sized avatar

Janos Tolgyesi mrtj

View GitHub Profile
@mrtj
mrtj / readlines.py
Last active April 1, 2025 10:40
Read text file line by line in python on-demand
from os import PathLike
from typing import Iterator
def readlines(filename: PathLike) -> Iterator[str]:
"""Reads a file line by line, yielding the lines as strings.
Unlike Python's file object readlines method, this function does not read the entire file into
memory, but reads it on demand.
Args:
@mrtj
mrtj / change_committer.sh
Created March 31, 2025 14:05
Change committer and author email
git filter-branch -f --env-filter \
"GIT_AUTHOR_EMAIL='[email protected]'; GIT_COMMITTER_EMAIL='[email protected]';" \
HEAD
@mrtj
mrtj / replace_all.py
Created January 28, 2025 14:25
Replace multiple old-new pairs in string
from typing import Iterable
from functools import reduce
def replace_all(text: str, table: Iterable[tuple[str, str]]) -> str:
""" Replaces multiple strings in a string.
Usage:
```python
replace_all("Hello World", [("Hello", "Hi"), ("World", "Earth")])
# 'Hi Earth'
@mrtj
mrtj / pipeline.py
Last active April 1, 2025 08:40
Function pipeline definition in python
from typing import Callable, Any
from functools import reduce, partial
def pipeline(*functions: Callable[[Any], Any]) -> Callable[[Any], Any]:
""" Creates a pipeline from a sequence of functions.
Usage:
processor = pipeline(str.lower, str.split)
processor("Hello World")
@mrtj
mrtj / stream_to_s3.py
Last active February 8, 2025 22:36
Download a file and stream it directly to an #aws S3 bucket without saving it locally
#!/usr/bin/env python3
import boto3
import requests
import tqdm
from urllib.parse import urlparse
def stream_to_s3(
source_url,
target_url,
import functools
def lazy_property(func):
''' Caches the return value of a function, and turns it into a property.
Intended to be used as a function decorator::
>>> class Foo:
>>> @lazy_property
>>> def bar(self):
@mrtj
mrtj / test-launch.py
Last active November 18, 2023 17:51
Python port of GStreamer RTSP Server test-launch.c
import gi
gi.require_version('Gst', '1.0')
gi.require_version('GstRtspServer', '1.0')
from gi.repository import GLib, Gst, GstRtspServer
Gst.init(None)
import argparse
parser = argparse.ArgumentParser(description='GStreamer RTSP server test-launch')
@mrtj
mrtj / backpack-annotation-example.py
Last active June 20, 2022 20:56
Example usage of backpack.annotation module
import panoramasdk
from backpack.annotation import (
Point, LabelAnnotation, RectAnnotation, TimestampAnnotation,
OpenCVImageAnnotationDriver,
PanoramaMediaAnnotationDriver
)
class Application(panoramasdk.node):
def __init__(self):
@mrtj
mrtj / kvsskyline-usage.py
Last active June 20, 2022 20:55
Example usage of backpack.kvs.KVSSkyLine class
import panoramasdk
from backpack.kvs import KVSSkyLine, KVSFileCredentialsHandler
# You might want to read these values from Panorama application parameters
stream_region = 'us-east-1'
stream_name = 'panorama-video'
# The example Dockerfile writes static configuration variables to this file
# If you change the .env file path in the Dockerfile, you should change it also here
DOTENV_PATH = '/panorama/.env'