Skip to content

Instantly share code, notes, and snippets.

View Apkawa's full-sized avatar
🌴
On vacation

Apkawa Apkawa

🌴
On vacation
View GitHub Profile
@Apkawa
Apkawa / example.py
Created October 19, 2012 10:06
Extended pretty print
pprint({'здравствуй': u'мир'})
pprint({'"здравствуй"': u'"мир"'})
pprint({"'здравствуй'": u"'мир'"})
pprint({"'\xd0\xb7\xd0\xb4\xd1\x80\xd0\xb0\xd0\xb2\xd1\x81\xd1\x82\xd0\xb2\xd1\x83\xd0\xb9'": u"'\u043c\u0438\u0440'"})
print pformat({"'\xd0\xb7\xd0\xb4\xd1\x80\xd0\xb0\xd0\xb2\xd1\x81\xd1\x82\xd0\xb2\xd1\x83\xd0\xb9'": u"'\u043c\u0438\u0440'"})
@Apkawa
Apkawa / fields.py
Created October 5, 2012 16:13
IPATONField
import socket
import struct
class IPATONField(models.IntegerField):
'''
Для прозрачной обратной совместимости с данными, которые записывались при помощи INET_ATON
'''
__metaclass__ = models.SubfieldBase
@Apkawa
Apkawa / imgurlize.py
Created September 26, 2012 12:31
imgurlize fork
def is_img_url(url):
ext = os.path.splitext(url)[1]
return ext[1:].lower() in ['jpg','jpeg','png','gif', 'bmp']
youtube_re = re.compile(r'^http://www.youtube.com/watch')
def is_youtube_url(url):
match = youtube_re.match(url)
if match:
key = urlparse.parse_qs(urlparse.urlparse(url).query)['v']
if key:
@Apkawa
Apkawa / db_utils.py
Created August 6, 2012 14:57
wrap raw_sql for make dict result with fields names
from django.db import connection
class DictQuery(object):
def __init__(self, query, params=()):
self.query = query
self.params = params
self._cursor = None
self._iterator = None
@Apkawa
Apkawa / test_data.c
Created April 17, 2012 13:57
Генератор и чекер тестовых данных
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#define MAX_INT 9999999
int randint(int from, int to) {
return (from + rand() % to);
@Apkawa
Apkawa / gist:1780668
Created February 9, 2012 15:26 — forked from bentappin/gist:1003397
Generate checksum for a barcode/ean-13
def calc_ean_13_checksum(ean):
import math
sum = 0
for x, c in enumerate(str(ean)[::-1]):
if (x+1) % 2 == 0:
sum += int(c)
else:
sum += int(c) * 3
return int(math.ceil(sum / 10.0) * 10) - sum
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define OPEN_BRACKET_STATE 1
#define CLOSE_BRACKET_STATE 2
#define NUMBER_STATE 3
#define OPERATOR_STATE 4
char OPERATORS[] = {'/', '*', '-', '+'};
@Apkawa
Apkawa / utils.py
Created December 6, 2011 13:19
KeyAttribytedDict
class KeyAttributeDict(dict):
'''
>>> kd = KeyAttributeDict({'a':1})
>>> kd['a']
1
>>> kd.a
1
'''
def __getattribute__(self, name):
try:
@Apkawa
Apkawa / views.py
Created November 24, 2011 09:33
Set many views as wizard
import wizard
order_wizard = wizard.Wizard('order_wizard)
@order_wizard.register(step=1, url='/basket/')
def basket(request):
...
@order_wizard.register(step=2, url='/step_1/')
def step_1(request):
@Apkawa
Apkawa / utils.py
Created November 7, 2011 10:38
Xls utils
def make_response_for_xls(xls_content, xls_filename):
'''Make xls response by xls_content as binary sttring and xls_filename
from django.http import HttpResponse
response = HttpResponse(xls_content, mimetype="application/ms-excel")
response["Content-Disposition"] = u"attachment; filename=\"{0}\"".format(xls_filename)
return response