Skip to content

Instantly share code, notes, and snippets.

View teserak's full-sized avatar
🏠
Working from home

Konrad Rymczak teserak

🏠
Working from home
View GitHub Profile
@teserak
teserak / testcase.py
Created November 14, 2011 07:04 — forked from prestontimmons/testcase.py
Lazy man's Django testcase
"""
Decrease the verbosity of writing view tests.
Old way:
self.client.get(reverse("my-view"))
self.client.post(reverse("my-view"), data={"key": "value"})
self.client.login("username", "password")
self.client.get(reverse("my-other-view"))
self.client.logout()
@teserak
teserak / convert_all_to_south.py
Created November 30, 2011 00:15 — forked from mattupstate/convert_all_to_south.py
Django management command to convert all your apps to use South migrations
import settings
from django.core.management.base import BaseCommand
from subprocess import call
class Command(BaseCommand):
def _is_project_app(self, app_name):
return not 'django' in app_name and not 'south' in app_name
def handle(self, *args, **options):
import re
# http://atomboy.isa-geek.com/plone/Members/acoil/programing/double-metaphone
from metaphone import dm as double_metaphone
# get the Redis connection
from jellybean.core import redis
import models
# Words which should not be indexed
@teserak
teserak / kaa.py
Created December 21, 2011 16:36 — forked from maxcountryman/kaa.py
A very simple non-blocking IRC bot using gevent
import gevent
from gevent import socket, queue
from gevent.ssl import wrap_socket
import logging
logger = logging.getLogger('irc')
logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
@teserak
teserak / yubico_demo.py
Created December 23, 2011 20:35 — forked from dolph/yubico_demo.py
Yubikey Registration & Authentication Demo
# pip install yubico
from yubico import yubico
# Yubico API credentials
YUBICO_CLIENT_ID = '6634'
YUBICO_SECRET_KEY = 'HdRb8AA24+Ud8VL2E+sEEZUiySg='
# Initialize our Yubico API access
YUBICO = yubico.Yubico(YUBICO_CLIENT_ID, YUBICO_SECRET_KEY)
@teserak
teserak / middleware.py
Created December 26, 2011 23:20 — forked from phpdude/middleware.py
Django subdomains Full support
Adds Django full subdomains urls upport for urlpatterns and reverse resolving.
Requires installation into settings.py
Allows you route and generate views various urls.
'''
Example:
'domain.com' -> ''
'domain.com/doc' -> 'doc'
@teserak
teserak / dp.py
Created January 13, 2012 09:58 — forked from xarg/dp.py
Douglas-Peucker
# pure-Python Douglas-Peucker line simplification/generalization
#
# this code was written by Schuyler Erle <schuyler@nocat.net> and is
# made available in the public domain.
#
# the code was ported from a freely-licensed example at
# http://www.3dsoftware.com/Cartography/Programming/PolyLineReduction/
#
# the original page is no longer available, but is mirrored at
# http://www.mappinghacks.com/code/PolyLineReduction/
@teserak
teserak / gist:1675398
Created January 25, 2012 08:22 — forked from michelts/gist:1029336
FormsView
from django.views.generic.base import View, TemplateResponseMixin
from django.views.generic.edit import FormMixin, ProcessFormView
class MultipleFormsMixin(FormMixin):
"""
A mixin that provides a way to show and handle several forms in a
request.
"""
form_classes = {} # set the form classes as a mapping
@teserak
teserak / gist:1675446
Created January 25, 2012 08:30
LoginRequired class-based view decorator
# http://djangosnippets.org/snippets/2495/
from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator
def LoginRequired(cls=None, **login_args):
"""
Apply the ``login_required`` decorator to all the handlers in a class-based
view that delegate to the ``dispatch`` method.
class UserOwned(object):
user_field = "user"
def get_user_field(self):
return self.user_field
def get_user(self):
return self.request.user if self.request.user.is_authenticated() else None