Skip to content

Instantly share code, notes, and snippets.

View dnmellen's full-sized avatar

Diego Navarro dnmellen

  • Madrid
View GitHub Profile
@dnmellen
dnmellen / colors.py
Created May 15, 2013 13:32
Auxiliary Python module to get styled terminal outputs in a pythonic way
# encoding: utf-8
# Copyright 2013 Diego Navarro Mellén. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
#
@dnmellen
dnmellen / test_views.py
Last active May 29, 2023 13:31
How to create a unittest for a "View" Mixin (Django Testing)
from django.test import TestCase, RequestFactory
from django.views.generic import TemplateView
from ..lib.views import YourMixin
class YourMixinTest(TestCase):
'''
Tests context-data in a Django Mixin like a boss
'''
@dnmellen
dnmellen / function_tools.py
Created September 20, 2013 10:42
Calls a function and retries N times if there is an exception or the returned value by the function is *value_to_retry*
def retry(callable, callable_args, num_retries=5, sleep_time=0, value_to_retry='f9e40fdf355643dd82cea787ca2e8d3c04966855'):
"""
Calls a function and retries N times if there is an exception or the returned value by the function is *value_to_retry*
:param callable: What you want to execute
:type callable: python callable obj
:param callable_args: Callable's arguments
:type callable_args: tuple
:param num_retries: Numer of retries
:type num_retries: int
@dnmellen
dnmellen / inverval_dates.lua
Last active December 24, 2015 07:19
Returns an array of dates between two given dates. You can select the "step" (year, month, day)
-- Returns an array of dates between `date1` and `date2`
-- The 'step' between dates it can be selected with 3 possible values:
-- (year, month, day)
--
-- ie: get_interval_dates(20130101, 20130601, "month")
-- -> (201301, 201302, 201303, 201304, 201305, 201306)
--
-- Diego Navarro (dnmellen)
function get_interval_dates(date1, date2, step)
local result = {}
@dnmellen
dnmellen / flatten.py
Last active December 29, 2015 04:59
My try for "flatten" with yield from
from collections import Iterable
def flatten(iterable):
for item in iterable:
if isinstance(item, Iterable):
yield from flatten(item)
else:
yield item
@dnmellen
dnmellen / postinstall.md
Last active December 30, 2015 08:49
Post installation PostgresSQL

Useful things to do after postgresql installation

# su - postgre
$ createuser youruser
$ psql
postgres=# ALTER USER youruser WITH PASSWORD 'yoursecretpassword';
postgres=# CREATE DATABASE yourdb owner youruser;
@dnmellen
dnmellen / ocrshot.py
Last active March 2, 2023 11:06
Takes an screenshot (the user draws a rectangle to select the interesting area), scans the resulting image and copy the text to clipboard
#!/usr/bin/python -tt
"""
Takes an screenshot (the user draws a rectangle to select the interesting area), scans the resulting image and copy the text to clipboard
- scrot (http://en.wikipedia.org/wiki/Scrot)
- readbot (`pip install readbot`)
- pyperclip (`pip install pyperclip`)
"""
@dnmellen
dnmellen / redis_listener.py
Created January 15, 2014 15:37
Listen Redis pubs with python3 and asyncio
import asyncio
import redis
@asyncio.coroutine
def listener(redis_conn, channels):
pubsub = redis_conn.pubsub()
pubsub.subscribe(channels)
print('Listening redis...')
@dnmellen
dnmellen / timeout_decorator.py
Created January 23, 2014 15:39
Threaded timeout Python decorator
import threading
import logging
from functools import wraps
logger = logging.getLogger(__name__)
def timeout(secs=None):
def my_decorator(target, *args, **kwargs):
@dnmellen
dnmellen / seconds.py
Created January 15, 2015 12:03
Seconds to the next day in python
from datetime import datetime, timedelta
print (datetime(*(datetime.now() + timedelta(days=1)).timetuple()[:3]) - datetime.now()).seconds