Skip to content

Instantly share code, notes, and snippets.

View EBNull's full-sized avatar

EBNull EBNull

  • New York, NY
View GitHub Profile
@EBNull
EBNull / globalinteract-withdjango.py
Created February 10, 2011 19:59
Version of Python's code.interact() that takes a `globals` argument
import code, sys
from code import softspace
class GlobalInteractiveConsole(code.InteractiveConsole):
"""Interactive console that also takes a globals argument"""
def __init__(self, locals=None, filename="<console>", globals=None):
try:
super(GlobalInteractiveConsole, self).__init__(locals=locals, filename=filename)
except TypeError:
code.InteractiveConsole.__init__(self, locals=locals, filename=filename)
if globals is None:
@EBNull
EBNull / install_winprint_hylafax_7.py
Created March 15, 2011 16:37
Install script for https://sourceforge.net/projects/wphfforwin7 . Installs files, port monitor, port, driver, and printer.
#Run this script to install system files, port monitor, port, driver, and printer
#You can change settings in the main() function
#
#(c) 2011 CBWhiz
import os
import sys
import ctypes
import subprocess
import codecs
import tempfile
@EBNull
EBNull / stickyrouter.py
Created March 25, 2011 18:08
Lets django find certain models on a certain database. Cross DB joins will still probably fail.
from django.conf import settings
#STICKY_DB_DEFAULT=None
#STICKY_DB_ALLOW_CROSS_DB_RELATIONS=False
#STICKY_DB_MODELS = {
# ('app', 'model'): 'dbalias',
# ('app', 'model'): 'dbalias',
# ('app', 'model'): 'dbalias',
#}
@EBNull
EBNull / relations.py
Created August 17, 2011 19:21
Returns all foreign key relations to a django model and their accessors
#Some utilities to work with django models and foreign keys.
#Especially useful for finding (and writing out) code to illuminate information about relations.
#
#To try it out, run show_relation_accessors(model) in a python prompt, or to be more general, get_related_instance_ids_code(model)
#
#-2011 CBWhiz
#
#
#Usage sample:
# from django.db import transaction
@EBNull
EBNull / AdminTemplateRedirector.py
Created September 27, 2011 17:04
Changes prefix for admin templates based on request path
"""
Before loading an admin template, it first modifies the template name based on the current thread's request url.
It will also fall back to the standard template name if themodified one is not found.
This uses a threadlocal hack.
settings.py:
MIDDLEWARE_CLASSES = (
...,
'AdminTemplateRedirector.AdminTemplateRedirectorMiddleware',
...
@EBNull
EBNull / forcefocus.py
Created December 1, 2011 19:11
Force windows application focus (attempting to bypass SetForegroundWindow restrictions)
import platform
#wnd is a HWND
def forceFocus(wnd):
if platform.system() != 'Windows':
return
SPI_GETFOREGROUNDLOCKTIMEOUT = 0x2000
SPI_SETFOREGROUNDLOCKTIMEOUT = 0x2001
SW_RESTORE = 9
@EBNull
EBNull / basicapp.py
Created February 16, 2012 19:08
Basis for a general PyQT app
import os
import sys
import ctypes
import traceback
import logging
log = logging.getLogger()
from QtBinding import QtCore, QtGui
def remove_window_context_help_button(qwindow):
@EBNull
EBNull / usergroups_win32.py
Created February 28, 2012 22:06
Get current user groups (win32)
import ctypes
import win32net
def getUsername(name_format=8):
#Only NameUserSamCompatable supported if not on a domain.
#'' is returned in that case.
#NameUserSamCompatable = 2
#NameUserPrincipal = 8,
bufsz = ctypes.c_ulong()
ctypes.windll.secur32.GetUserNameExW(name_format, None, ctypes.byref(bufsz))
from django.contrib import admin
#Allow lookup by any kwargs in admin
#Reverts https://docs.djangoproject.com/en/1.2/releases/1.2.4/#restricted-filters-in-admin-interface
admin.ModelAdmin.lookup_allowed = lambda i, k, v: True
@EBNull
EBNull / qsettingswrap.py
Created April 4, 2012 18:15
Wrap a QSettings object with a more pythonic attribute based paradigm
from PyQt4 import QtCore
from config import get_data_path
class SettingsWrapper(object):
"""Wrapper for QSettings using attribute access with conversion functions"""
_known_settings = {
#'setting': (conversionFuncRead, conversionFuncReadAttr, default),
}
def __init__(self, settings, subtree=None):
self._settings = settings