Skip to content

Instantly share code, notes, and snippets.

View christabor's full-sized avatar
I may be slow to respond.

Chris Tabor christabor

I may be slow to respond.
View GitHub Profile
christabor /
Last active January 7, 2021 23:45
A quick script to analyze python package code structure
"""Generate a report about the meta information of a pckage.
This includes its children modules,
functions, classes, arg/kwarg count, etc.
import ast
import inspect
import os
import pkgutil
import sys
christabor /
Created February 26, 2018 05:01
plant type reproduction automata experiment
from random import choice
types = ['sporophyte', 'gametophyte']
class Plant(object):
def __init__(self, type=None):
self.type = type or choice(types)
christabor /
Created January 25, 2018 21:33
from contextlib import contextmanager
def to_mgr(fn):
fn.__converted__ = True
def fn2(*args, **kwargs):
fn(*args, **kwargs)
christabor /
Last active March 9, 2019 06:34
Bret Victor principles

Articles and their respective points


  • Interactivity
  • Direct manipulation
  • Intuition
  • See the data, see the changes


christabor /
Last active June 19, 2019 03:28
# -*- coding: UTF-8 -*-
"""Scientific branches."""
from itertools import permutations
from random import choice
branches = {
"Acarology": "study of mites",
"Aceology": "science of remedies, or of therapeutics; iamatology.",
"Acology": "study of medical remedies",
christabor /
Created July 12, 2017 05:38
Flask Finite State Machine PoC
"""FSM abstraction in python for flask.
1. Transition from/to steps
2. Only allow certain transitions
3. Reset FSM once in a certain position (stopping state)
E.g. a form that may then save to a DB and then
christabor /
Last active April 8, 2021 17:38
Make your chrome bookmarks into a searchable, tokenized inverted index
"""Tokenize bookmark titles and create an inverted index."""
import re
import os
import sys
from pprint import pprint as ppr
from collections import Counter, defaultdict
from pyquery import PyQuery as pq
christabor /
Created June 9, 2017 05:45
Advanced decorator builder / customization
Exploring some ideas around customizable decorators that derive default
values from a config or instance.
from functools import wraps
# Simple customizable decorator.
christabor /
Created June 6, 2017 21:58
Instrumentation through descriptors
from pprint import pprint as ppr
from collections import defaultdict
from datetime import datetime as dt
class Db(object):
def default_obj(self):
return dict(
christabor /
Last active May 15, 2017 00:10
Crazy str formatting
print('-' * 80)
for x in range(10):
print('{num}: {:.>{pad1}d} {:.>{pad2}d} {:.>{pad3}d} {:.>{pad4}d}'.format(x ** 2, x ** 3, x ** 4, x ** 5, num=x, pad1=10, pad2=20, pad3=30, pad4=40))
class Kaboom(object):
def __format__(self, format):
if format == 'explode':
return '*' * 80