Skip to content

Instantly share code, notes, and snippets.

View kirang89's full-sized avatar

Kiran Gangadharan kirang89

View GitHub Profile
@kirang89
kirang89 / track_import.py
Created April 25, 2013 16:49
A clever hack to track your imports
import sys
import __builtin__
real_import = __builtin__.__import__
def debug_import(name, locals=None, globals=None, fromlist=None, level=-1):
glob = globals or sys._getframe(1).f_globals
importer_name = glob and glob.get('__name__') or 'unknown'
print '%s imports %s' % (importer_name, name)
return real_import(name, locals, globals, fromlist, level)
@kirang89
kirang89 / unpack_list.py
Created April 26, 2013 18:24
List unpacking
l = [1, 2, 3, 4, 5, 6]
(a, b), c = l[:2], l[2:]
print a #1
print b #2
print c #[3, 4, 5, 6]
@kirang89
kirang89 / secure_filename.py
Last active December 16, 2015 18:19
Gist to handle secure filenames
import os, re
pattern = ''.join([os.path.sep, os.path.altsep or ''])
split = re.compile(r'[\0%s]' % re.escape(pattern))
def secure_filename(path):
return split.sub('', path)
@kirang89
kirang89 / get_targets.sh
Created April 28, 2013 17:28
Get list of all targets in Makefile from within itself
no_targets__:
list:
@grep '^[^#[:space:]].*:' Makefile | grep -Ev 'no_targets__:|list:'
@kirang89
kirang89 / Makefile
Last active December 16, 2015 19:09
Python Flask Makefile
.PHONY: tests
all: venv install
bootstrap:
echo "Installing Pip"
sudo apt-get install python-pip
echo "Installing virtualenv"
sudo pip install virtualenv
@kirang89
kirang89 / array_enumerator.go
Last active December 16, 2015 22:09
Array enumerator in Go lang
//Array enumerator in Go. Can also be used with map type.
import "fmt"
var items = []int{1, 2, 3, 4, 5, 6}
func main(){
for i, v := range items {
fmt.Println(i, v)
}
@kirang89
kirang89 / go_installer.sh
Created May 3, 2013 09:20
Script to install and setup Go workspace in Linux
ZSHRC='~/.zshrc'
read -p "Enter golang version to download and install: " gover
read -p "32-bit ? [yn] " type
case $type in
[Yy]* ) arch='386'
;;
[Nn]* ) arch='amd64'
;;
* ) echo "Invalid architecture"
@kirang89
kirang89 / puzzle.py
Created May 14, 2013 07:26
Interesting Python 2.x puzzle
print cmp("a", u"a")
#0
print cmp((1,), 'a')
#1
print cmp((1,), u'a')
#-1
print sorted(["a", (1, 3, 2), None, u'a'])
@kirang89
kirang89 / another_property.py
Created May 16, 2013 12:55
Another way to define properties
class Foo(object):
def __init__(self):
self._username = 'Kiran'
def _get_username(self):
return self._username
def _set_username(self, value):
self._username = value