Skip to content

Instantly share code, notes, and snippets.

View martync's full-sized avatar

Martyn CLEMENT martync

View GitHub Profile
@martync
martync / ola.py
Created June 22, 2012 09:43 — forked from brunobord/ola.py
Olà in Python / ASCII art
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import os
import time
def cls():
os.system(['clear', 'cls'][os.name == 'nt'])
figure_repos = '.o.'
from datetime import datetime
from os.path import abspath, dirname
import os
import json
phantom_script = """
var page = require('webpage').create();
page.open("%s", function (status) {
page.render("%s");
phantom.exit();
def get_max_consecutive_number(datas):
"""
Retourne le nombre maximum de chiffres consécutifs
dans une listes. (Y'a t'il un built-in pour ça ? Itertool ?)
>> suit = [2003, 2008, 2007, 2001, 2010]
>> print get_max_consecutive_number(suit)
>>>> 2
>> suit = [2003, 2008, 2007, 2001, 2002, 2004]
@martync
martync / regroup_tag.py
Created March 26, 2013 14:36
Template tag for Django : Regroup list of lists by index, exactly like the core {% regroup %} tag.
from itertools import groupby
from django import template
from django.template.base import TemplateSyntaxError
register = template.Library()
class RegroupListNode(template.Node):
def __init__(self, target, expression, var_name):
@martync
martync / refresh_page.js
Created April 18, 2013 08:13
Ask the user to refresh the page after a countdown;
function refresh_after(seconds){
seconds--;
if (seconds<=0){
alert('The page has expired, click OK to reload.')
document.location.href = document.location.href;
}else{
setTimeout(refresh_after, 1000, [seconds])
}
}
@martync
martync / show_in_browser.py
Created October 16, 2013 12:15
When testing a django application, sometime you just want to see what's happening on your html content. That does the trick.
import time
from datetime import datetime
from subprocess import call
def show_in_browser(response):
"""
Write the response content into a temporary HTML file and
open it into your default browser.
@martync
martync / model_merge.py
Created June 21, 2017 08:55 — forked from aaronkeck/model_merge.py
Django Model Merge
from django.db import transaction
from django.db.models import Model
from django.contrib.contenttypes.generic import GenericForeignKey
from django.apps import apps
@transaction.atomic
def merge_model_objects(primary_object, alias_objects=None, keep_old=False):
"""
Use this function to merge model objects (i.e. Users, Organizations, Polls,
@martync
martync / Render_to_XLS.py
Created February 9, 2012 14:40
Output an XLS file with XLWT
from django.template import Variable, defaultfilters
from django.http import HttpResponse
import xlwt
def render_to_xls(queryset, filename, fields):
"""
Output an XLS file of the queryset
Usage :
-------
@martync
martync / memoize.py
Last active July 3, 2018 09:37
Memoize Django model's method.
import functools
def memoize_django_model_method(obj):
@functools.wraps(obj)
def memoizer(*args, **kwargs):
# Get the model instance
instance = args[0]
@martync
martync / scores.py
Last active December 28, 2018 13:08
Scores du jeu
scores = [
{
"start_date": "2018-12-13 08:39:11.539570",
"end_date": "2018-12-13 08:40:06.429570",
"winner": 1
},
{
"start_date": "2018-12-13 10:28:45.539570",
"end_date": "2018-12-13 10:28:56.228670",
"winner": 2