Skip to content

Instantly share code, notes, and snippets.

View martinth's full-sized avatar

Martin Thurau martinth

View GitHub Profile
@martinth
martinth / argparse_fileinput_demo.py
Created August 6, 2015 11:04
Read from stdin or files in Python (combining argparse and fileinput)
import argpase
import fileinput
if __name__ == '__main__':
parser = ArgumentParser()
parser.add_argument('--dummy', help='dummy argument')
parser.add_argument('files', metavar='FILE', nargs='*', help='files to read, if empty, stdin is used')
args = parser.parse_args()
# If you would call fileinput.input() without files it would try to process all arguments.
@martinth
martinth / sign-and-align.sh
Created April 10, 2014 07:30
A simple script to automate signing and aligning of APK files for upload to the Playstore
#!/bin/sh
FOLDER=android/bin
IN_APK_NAME=App-release-unsigned.apk
OUT_APK_NAME=App-release-signed-aligned.apk
KEYSTORE=release-key.keystore
KEYSTORE_ALIAS=app_release
echo ">>> Signing $OUT_APK_NAME..."
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.awt.AWTException;
public class KeyPresser {
public static void main(String[] args) {
int delay = 0;
try {
@martinth
martinth / simple_server.py
Created January 25, 2012 12:50
simple HTTP server that dumps header
import SimpleHTTPServer
import SocketServer
class H(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_GET(self):
print self.headers
httpd = SocketServer.TCPServer(("", 8090), H)
httpd.server_forever()
function test() {
}
@martinth
martinth / decorators.py
Last active January 21, 2018 01:09
A sample decorator the can be used on plain old functions and also on instance methods
class func_and_method_decorator(object):
'''A clased based decorator that takes parameters and works on plain functions
and instance methods'''
def __init__(self, *args, **kwargs):
'''The init function is called when a module where the decorator is used
is imported. It gets passed all parameters that are given to decorator
definition. I.e.
@func_and_method_decorator(foo='bar')
@martinth
martinth / googleio13.py
Created March 20, 2013 10:34
Generates valid click codes for Google I/O 2013
forbidden_starts = filter(bool,
'''
000
00100
0010100
00101011
001011
00110
00111000
0011101
@martinth
martinth / assertion_hook.py
Created August 8, 2011 21:24
A sample exception hook, that prints useful information if an AssertionError occures
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import os.path
import pprint
sys._old_excepthook = sys.excepthook
def assert_hook(exc_type, exception, traceback):
@martinth
martinth / mde_login.py
Created August 3, 2011 22:23
mode.de login script
# -*- coding: utf-8 -*-
import cookielib
from urllib2 import HTTPCookieProcessor, build_opener
from urllib import urlencode
from BeautifulSoup import BeautifulSoup
# the login data
login_data = {
'login_username': u'USERNAME',
'login_password': u'PASSWORD',
from urllib2 import urlopen
from BeautifulSoup import BeautifulSoup
data = urlopen('''http://www.hydro.eaufrance.fr/stations/O7502510&procedure=tousmois''').read()
soup = BeautifulSoup(data)
table = soup.find('table', {'summary': "valeurs mensuelles et annuelles"})
for tr in table.findAll('tr'):
line = []
for td in tr.findAll('td'):