Skip to content

Instantly share code, notes, and snippets.

@bennylope
bennylope / flake8parser.py
Last active August 14, 2023 05:16
A helper script to create summarize flake8 output.
#!/usr/bin/env python
"""
A script for parsing a flake8 error log and generating useful stats about the
errors in the code.
Author: Ben Lopatin (I think I wrote it, at least, no guarantee)
License: BSD
"""
@bennylope
bennylope / assert_close_enough.py
Created August 26, 2016 19:51
Assertion for ensuring that two values are close enough within a certain threshold, comparing on the percentage difference
class SomeTestMixin:
def assertCloseEnough(self, first, second, diff=0.0001):
"""
Asserts that the percentage difference between the two values
is smaller than given diff value.
Results may depend on the order of the values. A more robust
version might test the difference against both values.
@bennylope
bennylope / productivity.sh
Last active September 30, 2019 13:33
Block (from Samuel Mullen on Legacy Rocks slack)
# List the domains you want to block, one per line, in your ~/.blocked_sites file,
# then ensure this script is included or sourced in your terminal configuration.
function worktime {
while read -r line; do
echo "127.0.0.1 ${line} # WORKTIME"
echo "fe80::1%lo0 ${line} # WORKTIME"
echo "127.0.0.1 www.${line} # WORKTIME"
echo "fe80::1%lo0 www.${line} # WORKTIME"
done < $HOME/.blocked_sites | sudo tee -a /etc/hosts > /dev/null
@bennylope
bennylope / conftest.py
Created March 4, 2017 18:40 — forked from asfaltboy/conftest.py
A pytest fixture to test Django data migrations
# based on https://gist.github.com/blueyed/4fb0a807104551f103e6
from django.db import connection
from django.db.migrations.executor import MigrationExecutor
import pytest
@pytest.fixture()
def migration(transactional_db):
@bennylope
bennylope / brew-cleanup.sh
Created November 22, 2017 20:44
A short script for performing brew cleanup for all but specified packages. The 'cleanup' command can either be used for specific packages or for all - there is no exclusion option - and this means cleanup on older packages that I want.
#!/usr/bin/env bash
# Clean all but specified packages of old homebrewed installed packages
declare -a exclude=(python python3 python34 python35 python36 python27 pypy ruby node)
for PACKAGE in $(brew ls)
do
SENTINEL=false
for EXCLUDE in "${exclude[@]}"
@bennylope
bennylope / drain.rb
Last active July 12, 2018 14:31
A funky little script to download Drip broadcast messages and create Jekyll-ready Markdown files. See https://github.com/bennylope/drain.rb for updated version.
#!/usr/bin/env ruby
# A little Ruby script to download your Drip broadcast messages to Jekyll-ready
# Markdown files. These could be used as posts or, better yet, as a collection.
# Inspired by Jonathan Stark's Drain https://github.com/jonathanstark/drain/
#
# Copyright Ben Lopatin, 2018
# Shared with an MIT license: https://opensource.org/licenses/MIT
# Since this is a standalone script, installing the dependencies is your responsibility
@bennylope
bennylope / numpy_append.ipynb
Created August 10, 2018 18:26
appending in numpy
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@bennylope
bennylope / annotated.py
Created September 8, 2018 18:52
A Django model instance method decorator for creating queryset annotation compatibility.
def annotated(attr_name):
"""
Decorator for returning pre-calculated, annotated values
This should be used with model instance methods that fetch some
kind of related or calculated data. If the method is called on
a single instance in isolation, we should expect the method to
execute and return its value. However if the method is called
on a member of a queryset where the `attr_name` was added as an
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@bennylope
bennylope / create_db_restore.sh
Last active August 20, 2020 13:12
Create a named database and restore from the lastest downloaded file
#!/usr/bin/env bash
LATEST_DB="$HOME/Downloads/$(ls -t ~/Downloads | head -1)"
BACKUP_PATH=${2-$LATEST_DB}
DB=$1
echo "Creating database name $DB from $BACKUP_PATH"
psql -c "CREATE DATABASE $DB;"