Skip to content

Instantly share code, notes, and snippets.

@jvanasco
jvanasco / sqla_injection_test.py
Last active August 31, 2022 07:56
sqlalchemy injection test
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Use this file to build your own SSCCE
# SSCCE = Short, Self Contained, Correct (Compatible) Example
# see http://sscce.org/
#
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@jvanasco
jvanasco / dogpile.py
Created June 20, 2018 07:43
dogpile and raw redis
"""
The following are some code snippets on how i optimized a system using Dogpile cache into native Redis, while still leveraging dogpile.
This is not fully functional code, it's just snippets to explain and help the next person:
General Overview:
* The cached data is a computed value of multiple permissions for an A2B relation.
* The Redis key is `'calculated-a|%s' % id_a`.
* The payload is stored in a field, via `id_b`.
@jvanasco
jvanasco / replace_domain.py
Created September 4, 2020 17:04
replace acme-dns random domains with custom domains.
from __future__ import print_function
import os
import sqlite3
import sys
import re
_args = sys.argv
try:
if len(_args) != 3:
@jvanasco
jvanasco / utcnow.py
Created August 21, 2020 21:36
making sure we send the right timestamp...
import sqlalchemy.types
from sqlalchemy.sql import expression
from sqlalchemy.ext.compiler import compiles
class utcnow(expression.FunctionElement):
type = sqlalchemy.types.DateTime()
@compiles(utcnow)
def utcnow__default(element, compiler, **kw):
@jvanasco
jvanasco / compiler.py
Created May 26, 2020 20:35
_bind_processors
@util.memoized_property
def _bind_processors(self):
return dict(
(key, value)
for key, value in (
(
self.bind_names[bindparam],
bindparam.type._cached_bind_processor(self.dialect)
if not bindparam._expanding_in_types
else tuple(
@jvanasco
jvanasco / test_invalidate.py
Last active January 16, 2020 18:45
sqlalchemy invalidation test
from __future__ import print_function
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Use this file to build your own SSCCE
# SSCCE = Short, Self Contained, Correct (Compatible) Example
# see http://sscce.org/
#
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@jvanasco
jvanasco / sqlassist.py
Created January 27, 2012 03:34
Supporting multiple database connections & Reflecting Tables in pyramid with sqlalchemy .7
r"""
sqlassist
~~~~~~~~~
v0.3
sections of code taken from :
- Mike Orr's package 'sqlahelper'
- Mike Bayer's blog post 'Django-style Database Routers in SQLAlchemy'
@jvanasco
jvanasco / encodings_test.py
Created May 8, 2019 15:11
a test harness showing an edge case scenario with bytes and string encoding from a python2 to python3 port.
# -*- coding: utf-8 -*-
from __future__ import print_function
"""
This test harness showcases an odd scenario when providing compatibility
with Python2 and Python3 data.
The input to a function is a URL, which in Python2 might have been:
url_unicode = u'http://➡.ws/♥'
url_string = 'http://\xe2\x9e\xa1.ws/\xe2\x99\xa5'
@jvanasco
jvanasco / pyramid-interfaces.py
Created February 19, 2014 22:56
better ISession interface
class ISession(IDict):
...
...
...
id = Attribute('String `id`')
cookie_name = Attribute('String `cookie_name`')
cookie_value_in = Attribute('String `cookie_value_in`')
cookie_value_out = Attribute('String `cookie_value_in`')
@jvanasco
jvanasco / amp_img_upgrade.py
Created October 19, 2018 22:37
after too much testing - including writing custom html parsers and checking cpython generated bytecode - this is the fastest general-purpose way to upgrade an html doc's images into amp i could come up with. if you expect a lot of images in a document, it would be faster to write a second function which ensure unique `imgs` and eliminates duplic…
import re
RE_img = re.compile("""<img[^>]+>""", re.I)
def upgrade(
html,
img_layout=None, # STRING
img_fallback=None, # STRING
img_noscript=None, # BOOL
img_noloading=None, # BOOL
img_default_height=None, # must be a STRING, never an INT