ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl
Все, теперь можно открывать файлы, например, вот так
subl /etc/hosts
from functools import wraps from django.db.models.signals import pre_save from django.db.models.signals import post_save def autoconnect_signals(cls): """ Class decorator that automatically connects pre_save/post_save signals on a model class to its pre_save_handler()/post_save_handler() methods. """ def connect(signal, func): cls.func = staticmethod(func) @wraps(func) def wrapper(sender, *args, **kwargs): return func(kwargs.get('instance'), args, kwargs) signal.connect(wrapper, sender=cls) return wrapper if hasattr(cls, 'pre_save_handler'): cls.pre_save_handler = connect(pre_save, cls.pre_save_handler) if hasattr(cls, 'post_save_handler'): cls.post_save_handler = connect(post_save, cls.post_save_handler) return cls
@autoconnect_signals class Book(models.Model): #... name = models.SlugField(_("Name"), max_length = 150, unique = True) def pre_save_handler(self,*args, **kwargs): u"""Сигнал, получаемый перед сохранением модели.""" print self.name #в self передается сам инстанс модели. #Остальное есть в аргументах. def post_save_handler(self,*args, **kwargs): u"""Сигнал, получаемый после сохранения модели.""" print self.name
image.scaleX < image.scaleY ? image.scaleY = image.scaleX : image.scaleX = image.scaleY;
function resizeObject(target:DisplayObject, maxWidth:Number, maxHeight:Number, keepAspect:Boolean=true):void
{
target.width = maxWidth;
target.height = maxHeight;
if (keepAspect)
{
target.scaleX < target.scaleY ? target.scaleY = target.scaleX : target.scaleX = target.scaleY;
}
}
from django.core.mail.backends.smtp import EmailBackend
from django.conf import settings
import dkim
class DKIMBackend(EmailBackend):
u'''
Бекенд, позволяющий вставлять в письма DKIM-подпись.
Требует определения переменных в settings:
DKIM_SELECTOR - селектор, все что до точки в "selector._domainkey.example.com"
DKIM_DOMAIN - домен например, "example.com"
DKIM_PRIVATE_KEY - приватный DKIM-ключ. Полностью, включая "-----BEGIN RSA PRIVATE KEY-----" и т.п.
@requires: python-dkim, есть на http://hewgill.com/pydkim
'''
def _send(self, email_message):
if not email_message.recipients():
return False
try:
message_string = email_message.message().as_string()
signature = dkim.sign(message_string,
settings.DKIM_SELECTOR,
settings.DKIM_DOMAIN,
settings.DKIM_PRIVATE_KEY)
self.connection.sendmail(email_message.from_email,
email_message.recipients(),
signature+message_string)
except:
if not self.fail_silently:
raise
return False
return True
import random
def weighted_choice(choices):
u'''
Взвешенный псевдослучайный выбор. Чем выше вес, тем выше шанс выпадения значения.
@param choices: список или кортеж пар вида: ( ('choice', 14), ('choice2', 11), ... (<значение>, <вес> )
'''
total = sum(w for c,w in choices)
r = random.uniform(0, total)
upto = 0
for c, w in choices:
if upto+w > r:
return c
upto += w
assert False, "Shouldn't get here"
Работает вот так:test_choices = ( ('Foo', 8), ('Bar', 3), ('god damn!', 1) )
for i in xrange(10):
print weighted_choice(test_choices)