Skip to content

Instantly share code, notes, and snippets.

View dvarrazzo's full-sized avatar

Daniele Varrazzo dvarrazzo

View GitHub Profile
@dvarrazzo
dvarrazzo / dicttuple.py
Last active September 7, 2022 16:08
DictCursor for psycopg 3
class DictTuple(tuple):
"""Tuple class with added item getting by name.
"""
def __new__(cls, d):
rv = super().__new__(cls, d.values())
rv._map = d
return rv
def __repr__(self):
return f"{type(self).__qualname__}({self._map!r})"
@dvarrazzo
dvarrazzo / walrusify.py
Last active March 28, 2025 11:25
A script to convert assignments followed by ifs with a walrus operator
#!/usr/bin/env python
"""Convert a codebase to using the walrus operator.
Hint: in order to explore the AST of a module you can run:
python -m ast path/to/module.py
"""
from __future__ import annotations
@dvarrazzo
dvarrazzo / bench-fetchall.py
Created September 13, 2025 21:26
Benchmark script to measure the effects in https://github.com/psycopg/psycopg/pull/1163
import statistics as st
from time import sleep, monotonic
from argparse import ArgumentParser, Namespace
import psycopg
import psycopg2
from psycopg import sql
DSN = "dbname=psycopg3_test host=localhost sslmode=disable"
@dvarrazzo
dvarrazzo / psycopg3_logical_replication.py
Last active November 24, 2025 14:21 — forked from RPG-fan/psycopg3_logical_replication.py
A production-ready implementation of PostgreSQL logical replication using psycopg3. Works around psycopg3's missing replication support by using a raw socket bridge.
"""
PostgreSQL Logical Replication for psycopg3
A production-ready implementation of PostgreSQL logical replication using psycopg3.
Works around psycopg3's missing replication support by using a raw socket bridge.
Author: Richard Brandes
Date: October 2025
License: MIT