Skip to content

Instantly share code, notes, and snippets.

@burakdede
burakdede / ctx.py
Created September 30, 2016 14:52
context manager with
class TraceBlock:
def message(self, arg):
print("running" + arg)
def __enter__(self):
print("starting with block")
return self
def __exit__(self, exc_type, exc_value, exc_tb):
if exc_type is None:
@burakdede
burakdede / attrgetter.py
Created August 21, 2016 18:58
attrgetter for custom class fields
"""
[User(1), User(10), User(19), User(29)]
[User(1), User(10), User(19), User(29)]
"""
from operator import attrgetter
class User:
def __init__(self, user_id):
self.user_id = user_id
@burakdede
burakdede / tuple_itemgetter.py
Last active August 21, 2016 18:48
positional itemgetter sort
"""
[('tr', 90), ('uk', 44), ('us', 1)]
[('us', 1), ('uk', 44), ('tr', 90)]
[('tr', 90), ('uk', 44), ('us', 1)]
"""
from operator import itemgetter
rows = [
("tr", 90),
("us", 1),
("uk", 44)
@burakdede
burakdede / itemgetter_vs_lambda.py
Created August 21, 2016 18:22
Sort with lambda vs itemgetter from operator
"""
[{'fname': 'Big', 'lname': 'Jones', 'uid': 1004}, {'fname': 'John', 'lname': 'Jones', 'uid': 1003}, {'fname': 'John', 'lname': 'Jones', 'uid': 8888}, {'fname': 'John', 'lname': 'Jones', 'uid': 9999}, {'fname': 'Rick', 'lname': 'Cleese', 'uid': 1001}, {'fname': 'Steve', 'lname': 'Madden', 'uid': 1002}]
[{'fname': 'Big', 'lname': 'Jones', 'uid': 1004}, {'fname': 'John', 'lname': 'Jones', 'uid': 1003}, {'fname': 'John', 'lname': 'Jones', 'uid': 8888}, {'fname': 'John', 'lname': 'Jones', 'uid': 9999}, {'fname': 'Rick', 'lname': 'Cleese', 'uid': 1001}, {'fname': 'Steve', 'lname': 'Madden', 'uid': 1002}]
"""
from operator import itemgetter
rows = [
{'fname': 'John', 'lname': 'Jones', 'uid': 1003},
{'fname': 'John', 'lname': 'Jones', 'uid': 9999},
{'fname': 'John', 'lname': 'Jones', 'uid': 8888},
{'fname': 'Steve', 'lname': 'Madden', 'uid': 1002},