Skip to content

Instantly share code, notes, and snippets.

@gvx
gvx / roturn.py
Created November 17, 2008 19:14
Decode ROT13'ed block of text
#ROTurn
#Decode a ROT13'ed block of text.
#Python version of Perl script by Jay Kominek
#By Robin Wellner (gvx)
#I hereby waive copyright and related or neighboring rights to this work
#See the Creative Commons Zero Waiver at <http://creativecommons.org/publicdomain/zero/1.0/>
"""
"I recently wrote a Perl script, which, using letter frequency, attempts
to guess whether a given block of text has been ROT13ed or not. I've found
@gvx
gvx / Rename.py
Created December 26, 2008 10:39
A function to rename variables
#By Robin Wellner (gvx)
#I hereby waive copyright and related or neighboring rights to this work
#See the Creative Commons Zero Waiver at <http://creativecommons.org/publicdomain/zero/1.0/>
def rename(oldname, newname, scope):
scope[newname] = scope[oldname]
if hasattr(scope[newname], '__name__'): scope[newname].__name__ = newname
del scope[oldname]
@gvx
gvx / namespace.py
Created January 21, 2009 17:52
Simple module simulation
#namespace
#By Robin Wellner (gvx)
#I hereby waive copyright and related or neighboring rights to this work
#See the Creative Commons Zero Waiver at <http://creativecommons.org/publicdomain/zero/1.0/>
#Simulation of modules containing one or more function/class/object.
#Warning: modules are named differently than what you would expect.
def namespace(name):
class namespace:
@gvx
gvx / listtools.py
Created January 30, 2009 16:44
Functions for lists
#Listtools 0.1
#By Robin Wellner (gvx)
#Functions for lists
#I hereby waive copyright and related or neighboring rights to this work
#See the Creative Commons Zero Waiver at <http://creativecommons.org/publicdomain/zero/1.0/>
def append(lst, object):
"listtools.append(lst, object) -- append object to end"
lst.append(object)
@gvx
gvx / patch.py
Created May 3, 2009 21:53
A simple patch script in Python
#By Robin Wellner (gvx)
#I hereby waive copyright and related or neighboring rights to this work
#See the Creative Commons Zero Waiver at <http://creativecommons.org/publicdomain/zero/1.0/>
import sys
diff_file = sys.stdin.read().split('\n')
if len(sys.argv) > 1:
filename = sys.argv[1]
else:
@gvx
gvx / shebang.py
Created June 28, 2009 13:04
A Python script to enable #! for Windows
#By Robin Wellner (gvx)
#I hereby waive copyright and related or neighboring rights to this work
#See the Creative Commons Zero Waiver at <http://creativecommons.org/publicdomain/zero/1.0/>
import sys
import subprocess
f = open (sys.argv[1], "r")
r = f.readline()[:-1]
f.close()
#By Robin Wellner (gvx)
#I hereby waive copyright and related or neighboring rights to this work
#See the Creative Commons Zero Waiver at <http://creativecommons.org/publicdomain/zero/1.0/>
#a simple way to create one object without having to maintain it's class
#only works in Python 3.x
@apply
class oneObject:
x = 6
@gvx
gvx / named.py
Created December 11, 2014 23:28
An alternative namedtuple
from collections import OrderedDict
from inspect import Parameter, signature
from itertools import chain, starmap
from operator import itemgetter
__all__ = ['namedtuple']
dict_property = property(lambda self: OrderedDict(zip(self._fields, self)),
doc='dictionary for instance variables (if defined)')
@gvx
gvx / doc.py
Created March 5, 2011 23:03
A simple test of annotations, generating extended docstrings
def doc(f):
newdoc = f.__doc__ and [f.__doc__, ''] or []
c = f.__code__
ann = f.__annotations__
max_i = c.co_argcount + c.co_kwonlyargcount
for arg_index in range(max_i):
name = c.co_varnames[arg_index]
if name in ann:
newdoc.append(name + ': ' + str(ann[name]))
else:
@gvx
gvx / test.dj
Created March 6, 2011 22:37
DejaVu test for parsing tree
func some function:
a test
catch handler:
some mistake
if this is wrong:
tell me why
elseif this should not fail:
hello
if hi:
bye