Skip to content

Instantly share code, notes, and snippets.

View tclancy's full-sized avatar

Tom Clancy tclancy

View GitHub Profile
@tclancy
tclancy / middleware.py
Last active August 23, 2023 05:28 — forked from acdha/middleware.py
Django middleware for Pympler
# encoding: utf-8
# Derived from Piotr Maliński's example with a few modifications to use logging and :
# http://www.rkblog.rk.edu.pl/w/p/profiling-django-object-size-and-memory-usage-pympler/
from pympler import muppy
from pympler.muppy import summary
from pympler.asizeof import asizeof
from django.conf import settings
import logging
@tclancy
tclancy / django_management_profile.py
Last active January 3, 2023 22:18
Profiling Django Management Command
from cProfile import Profile
from django.core.management.base import BaseCommand
class ProfileEnabledBaseCommand(BaseCommand):
"""Enable profiling a command with --profile.
Requires child class to define _handle instead of handle.
via https://gist.github.com/dfrankow
"""
@tclancy
tclancy / nginx_regex.py
Created September 24, 2014 17:55
Storing regular expression for parsing our Nginx log format after a bunch of iterations
nginx_line = r'(?P<ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})?(?P<ip2>, \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})?-? - ?\S* \[(?P<timestamp>\d{2}\/\w{3}\/\d{4}:\d{2}:\d{2}:\d{2} (\+|\-)\d{4})\]\s+\"(?P<method>\S{3,10}) (?P<path>\S+) HTTP\/1\.\d" (?P<response_status>\d{3}) (?P<bytes>\d+) "(?P<referer>(\-)|(.+))?" "(?P<useragent>.+)'
"""
Matches request lines from Nginx log format
'$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$request_time" "$upstream_response_time" "$http_x_forwarded_for" '
'"$http_client_ip" "$http_x_real_ip"';
"""
@tclancy
tclancy / expire_all_sessions.py
Last active May 9, 2022 12:07 — forked from playpauseandstop/gist:1818351
Django management command to expire all sessions
import datetime
from django.conf import settings
from django.contrib.auth import logout
from django.contrib.auth.models import User
from django.contrib.sessions.models import Session
from django.core.management.base import NoArgsCommand
from django.http import HttpRequest
from django.utils.importlib import import_module
@tclancy
tclancy / problems.py
Last active April 11, 2022 16:34
Simple math problems for practice
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
from functools import reduce
import operator
from random import randrange
from typing import Sequence
PROMPT = "What's the answer? "
@tclancy
tclancy / pywapi.py
Created August 2, 2017 21:53
pywapi 0.3.8 because it's a pain in the ass to find
#!/usr/bin/python
# -*- coding: utf-8 -*-
### BEGIN LICENSE
#Copyright (c) 2009 Eugene Kaznacheev <qetzal@gmail.com>
#Copyright (c) 2013 Joshua Tasker <jtasker@gmail.com>
#Permission is hereby granted, free of charge, to any person
#obtaining a copy of this software and associated documentation
#files (the "Software"), to deal in the Software without
#restriction, including without limitation the rights to use,
@tclancy
tclancy / MockElement.ts
Created July 13, 2021 20:17 — forked from fredyfx/MockElement.ts
Mock DOM Document and Element in TypeScript for Unit testing in Headless environment.
/*
This can be used in unit tests to simulate a DOM document.
I have implemented the bare minimum. Feel free to add more, or to change my implementation.
Sample Usage:
import 'jasmine';
import { MockElement } from './support/mock-element';
@tclancy
tclancy / azure-pipelines.yml
Last active May 28, 2021 19:22
Microsoft Dynamics Power Apps Azure Build Pipeline
# Because there's nothing easily google-able for how to do this, here's
# a script to show the "basics" and create a permanent memorial to the
# week of my life it took to learn this
# 1. Install the Power Apps CLI via Powershell
# 2. Install node
# 3. Add node and install pcf-scripts (https://www.npmjs.com/package/pcf-scripts)
# 4. Run pcf scripts
# 5. Run msbuild on project file(s)
# 6. Run deployment Powershell script which looks like this:
# Install-Module Microsoft.Xrm.Data.PowerShell -Scope CurrentUser -Force
@tclancy
tclancy / newyorker-to-spotify.py
Last active February 4, 2021 01:55
Sends the items in The New Yorker's Night Life Listings to a Spotify Playlist
#!/usr/bin/env python3
import logging
from bs4 import BeautifulSoup
import requests
import spotipy
from spotipy.oauth2 import SpotifyOAuth
logger = logging.getLogger(__name__)
@tclancy
tclancy / pre-commit.sh
Created May 29, 2018 16:52
Test Bash Script for Hook
#!/usr/bin/env bash
files=$(git diff --cached --name-only --staged --diff-filter=ACM WA-2310 | grep '\.jsx\?$')
echo ${files} | xargs eslint