Skip to content

Instantly share code, notes, and snippets.

@gaconnet
gaconnet / params.py
Created September 3, 2016 00:12
Friends to help you generate SQL named params for safe querying.
"""
params.py
Friends to help you generate SQL named params for safe querying.
Because it's a hassle to generate param names for batch inserts like this one:
INSERT IGNORE
INTO t
@gaconnet
gaconnet / dynamic_argparse_options.py
Created August 24, 2016 04:10
A not-entirely-robust way to have dynamic --data-foo options with python argparse
import argparse
import re
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-o', '--outfile')
parser.add_argument('-d', '--outdir')
parser.add_argument('template')
parser.add_argument('extras', nargs=argparse.REMAINDER)
args = parser.parse_args()
@gaconnet
gaconnet / index.js
Last active August 29, 2015 14:06
requirebin sketch
var $ = require('jquery');
var p = $.Deferred()
, q = $.Deferred()
, r = $.Deferred()
, xs = ["A", "B", "C"]
, splice = function (i) { console.log('splicing', i, 'out of', xs); xs.splice(i, 1); console.log('and it becomes', xs);}
;
p.then(splice);
@gaconnet
gaconnet / index.js
Last active August 29, 2015 14:06
requirebin sketch
var observ = require('observ');
function withPeriodicSaving(observable) {
var unsaved = []
, pushPending = false
, savePending = false
;
return observable(function (value) {
console.log('ch-ch-changes!', value, pushPending, savePending);
@gaconnet
gaconnet / index.js
Created September 27, 2014 22:16
requirebin sketch
var extend = require('xtend');
var observ = require('observ');
var observStruct = require('observ-struct');
function Immutable(route, value) {
var stack = []
, _unsaved = []
, observable = observ(value)
;
@gaconnet
gaconnet / .vimrc
Created March 30, 2012 15:06
CJ's OSX .vimrc
call pathogen#infect()
syntax enable
filetype plugin indent on
set hls
set nobackup
set directory-=.
set directory^=~/.vim/.tmp//
set noautoindent nosmartindent
@gaconnet
gaconnet / basics.v
Created August 9, 2011 20:05
solution to induction in Software Foundations
Theorem plus_n_Sm : forall n m : nat,
S (n + m) = n + (S m).
Proof.
intros n m. induction n as [| n'].
Case "n = 0".
simpl. reflexivity.
Case "n = S n'".
simpl. rewrite -> IHn'.
reflexivity.
Qed.
@gaconnet
gaconnet / south_fixtures.py
Created May 5, 2011 21:55
Patch Django's loaddata to use South's frozen models
from dingus import patch
def load_fixture(orm, fixture_name):
_get_model = lambda model_identifier: orm[model_identifier]
with patch('django.core.serializers.python._get_model', _get_model):
from django.core.management import call_command
call_command("loaddata", fixture_name)
@gaconnet
gaconnet / attempt_1.py
Created April 22, 2011 18:45
How do I easily copy both an inherited model and its base?
>>> from realgood.models import A, B
>>> b = B(frob="Y")
>>> b.save()
>>> b.id
1
>>> b.save(force_insert=True)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/cj/.virtualenvs/dashboard.dev/lib/python2.6/site-packages/django/db/models/base.py", line 458, in save
self.save_base(using=using, force_insert=force_insert, force_update=force_update)
@gaconnet
gaconnet / force_it.py
Created April 22, 2011 17:51
why won't you force_insert save???
>>> from apps.agreements.standard.models import StandardAgreement as SA
>>> SA.objects.latest('pk')
<StandardAgreement: 1: (none)>
>>> s = SA.objects.latest('pk')
>>> s2 = s.save(force_insert=True)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/cj/dev/agreement-dashboard/dashboard.git/dashboard/apps/agreements/models.py", line 104, in save
super(Agreement, self).save(*args, **kwargs)
File "/home/cj/.virtualenvs/dashboard.dev/lib/python2.6/site-packages/django/db/models/base.py", line 458, in save