Skip to content

Instantly share code, notes, and snippets.

@ferdef
ferdef / ipdb_trace.py
Created April 19, 2012 10:22
ipdb trace
import ipdb; ipdb.set_trace()
@ferdef
ferdef / flat_keys.py
Created April 20, 2012 11:39
Flatten keys from a nested dictionary
def flat_keys(dictionary, out):
"""
Flatten keys from a nested dictionary
out should be an empty list
"""
for key in dictionary.keys():
out.append(key)
if isinstance(dictionary[key], dict):
flat_keys(dictionary[key], out)
@ferdef
ferdef / flat_dict.py
Created April 20, 2012 12:06
Create a flat dictionary from a nested dictionary
def flat_dict(dictionary, out, pre=''):
"""
Create a flat dictionary from a nested dictionary
out should be an empty dictionary
Currently I don't really know what to do with nested dict keys...
"""
for key, value in dictionary.iteritems():
out[pre + key] = value
if isinstance(value, dict):
flat_dict(value, out, pre + key + ':')
Create Private REPO for PIP on Ubuntu
1º Instalar https://github.com/wolever/pip2pi
#apt-get install pip
#pip install pip2pi
2º Create folder to host packages
#mkdir /var/www/pip
#copy foo-1.2.tar.gz in /var/www/pip
#dir2pi /var/www/pip
from datetime import datetime
from functools32 import lru_cache
NUMBER = 40
def fibonacci_iterative(pos):
first = 0
second = 1
number = 0
counter = 0
@ferdef
ferdef / singleton.py
Created January 26, 2018 10:26
Singleton Pattern in Python
class Singleton:
__instance = None
value = None
def __new__(cls):
if Singleton.__instance is None:
Singleton.__instance = object.__new__(cls)
return Singleton.__instance
@ferdef
ferdef / prototype.py
Last active March 20, 2019 05:15
Prototype Pattern
from copy import deepcopy
class Prototype:
def __init__(self):
self._objects = {}
def register_object(self, name, obj):
'''Store an object so it can be cloned later'''
self._objects[name] = obj
@ferdef
ferdef / builder.py
Created January 26, 2018 15:52
Builder Pattern in Python
class VehicleDirector:
__builder = None
def set_builder(self, builder):
self.__builder = builder
def build(self):
vehicle = Vehicle()
vehicle.set_body(self.__builder.get_body())
@ferdef
ferdef / factory_method.py
Created January 28, 2018 23:19
Factory Method
class Computer:
@staticmethod
def factory(type):
computers = {
'Macbook': Macbook,
'Surface': Surface,
'Desktop': Desktop
}
try:
return computers[type]()
@ferdef
ferdef / adapter.py
Last active January 29, 2018 09:27
Adapter pattern
class Dog(object):
'''A representation of a dog'''
def __init__(self, name):
self.name = name
def bark(self):
return 'Woof!!'
class Person: