Skip to content

Instantly share code, notes, and snippets.

View WTFox's full-sized avatar

A. Fox WTFox

View GitHub Profile
@WTFox
WTFox / safeget.py
Created October 22, 2015 15:29
Perfect for handling nested dictionaries where values might not exist.
def safeget(dct, *keys):
dct = dict(dct)
for key in keys:
try:
dct = dct[key]
except (KeyError, AttributeError, TypeError) as e:
return None
return dct
@WTFox
WTFox / health.yaml
Created February 17, 2017 17:05
sample tmuxinator config ~/.tmuxinator/health.yml
# ~/.tmuxinator/health.yml
name: health
root: ~/code/health/
# Optional tmux socket
# socket_name: foo
# Runs before everything. Use it to start daemons etc.
pre:
@WTFox
WTFox / apistar-hotdog.py
Created May 22, 2017 11:13
apistar-example
from apistar import App, Include, Route, schema
from apistar.docs import docs_routes
from apistar.http import Response
from apistar.statics import static_routes
_hotdogs = ['hotdog', 'hotdogs']
class Hotdog(schema.String):

Overview

Brief description of what this PR does, and why it is needed.

Fixes #XXX

Demo

Optional. Screenshots, curl examples, etc.

@WTFox
WTFox / cloudSettings
Last active July 5, 2018 17:21
Visual Studio Code Settings Sync Gist
{"lastUpload":"2018-07-05T17:21:35.097Z","extensionVersion":"v2.9.2"}
class Car(models.Model):
COLOR_CHOICES = (
('RED', 'red'),
('WHITE', 'white'),
('BLUE', 'blue'),
)
color = models.CharField(max_length=5, choices=COLOR_CHOICES, default='RED')
# ...
@WTFox
WTFox / musicbox.ino
Created May 17, 2018 19:16
Music box controller
int REED_PIN = D0;
int MOTOR_PIN = D3;
int LED_PIN = D7;
int MOTOR_SPEED = 255;
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(REED_PIN, INPUT_PULLUP);
pinMode(MOTOR_PIN, OUTPUT);
}
@WTFox
WTFox / cloudSettings
Last active January 25, 2022 01:47
Visual Studio Code Settings Sync Gist
{"lastUpload":"2022-01-25T01:47:36.730Z","extensionVersion":"v3.4.3"}
@WTFox
WTFox / gist:ad26bbe6bd83ec8f9aba0b2c60cc3b54
Created October 18, 2018 21:56 — forked from glarrain/gist:3982485
Decode session data, no matter what hashes say. It helps in some cases where the Session.get_decoded method returns an empty dictionary because it is "suspicious" of user-data tampering. Based on source code from the Django project.
import base64
import pickle
from django.contrib.sessions.models import Session
from django.utils.encoding import force_unicode
def decode_session_data(session_key):
"""Decode the data in a session object stored under ``session_key``.
import logging
import time
import typing as T
from cProfile import Profile
log = logging.getLogger(__name__)