Skip to content

Instantly share code, notes, and snippets.

@jmcarp
jmcarp / pagination.py
Last active August 29, 2015 14:11
pagination
import abc
import math
import collections
import six
@six.add_metaclass(abc.ABCMeta)
class Paginator(object):
@jmcarp
jmcarp / osfmapreduce.js
Created January 11, 2015 22:09
Simple map-reduce jobs for OSF activity analysis
var nodeIds = db.node.find({
is_public: true,
is_registration: false
}).map(function(node) {
return node._id;
});
function reducer(key, values) {
var count = 0;
for (var i=0; i<values.length; i++) {
@jmcarp
jmcarp / magics.py
Created February 7, 2015 18:27
Auto-auto-reload
# TODO: Make this work with konch @sloria
from IPython.extensions import autoreload
ip = get_ipython() # noqa
autoreload.load_ipython_extension(ip)
ip.magics_manager.magics['line']['autoreload']('2')
@jmcarp
jmcarp / annotate.py
Last active August 29, 2015 14:16
Workshop RSVP annotations
"""Utilities for annotating workshop RSVP data."""
import re
import logging
from dateutil.parser import parse as parse_date
from modularodm import Q
from modularodm.exceptions import ModularOdmException
@jmcarp
jmcarp / cron.py
Created April 9, 2015 13:53
forever-cron
#!/usr/bin/env python
# encoding: utf-8
"""
Examples ::
$ ./cron.py
$ forever -c `which python` cron.py
"""
import datetime
@jmcarp
jmcarp / marshmodel.py
Last active March 5, 2018 01:45
marshmallow-models
import six
import inflection
import marshmallow as ma
class Model(object):
def __init__(self, **kwargs):
self._schema = self.Schema()
self.load(**kwargs)
@jmcarp
jmcarp / postgres_count_estimate.py
Last active July 13, 2023 19:24
Approximate query count with PostgreSQL and SQLAlchemy
"""Approximate query count based on ANALYZE output for PostgreSQL and SQLAlchemy.
Count logic borrowed from https://wiki.postgresql.org/wiki/Count_estimate
ANALYZE borrowed from https://bitbucket.org/zzzeek/sqlalchemy/wiki/UsageRecipes/Explain
"""
import re
from sqlalchemy.ext.compiler import compiles
from sqlalchemy.sql.expression import Executable, ClauseElement, _literal_as_text
@jmcarp
jmcarp / schedule_a_benchmark.py
Created June 18, 2015 17:10
schedule_a_benchmark
import time
import random
from webservices import rest
from webservices.common import models
rest.app.app_context().push()
@jmcarp
jmcarp / incremental.sql
Created June 25, 2015 14:38
incremental-aggregate-update
drop table if exists ofec_sched_a_aggregate_zip;
create table ofec_sched_a_aggregate_zip as
select
cmte_id,
rpt_yr + rpt_yr % 2 as cycle,
contbr_zip as zip,
sum(contb_receipt_amt) as total
from sched_a
where rpt_yr >= 2011
group by cmte_id, cycle, zip
@jmcarp
jmcarp / schema.json
Last active August 29, 2015 14:24
about-schema
{
"$schema": "http://json-schema.org/schema#",
"title": ".about.yml",
"type": "object",
"properties": {
"shortName": {
"type": "string",
"description": ""
},
"fullName": {