This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
test_array = [ | |
[1, 2, 3, 4], | |
[5, 6, 7, 8], | |
[9, 10, 11, 12], | |
] | |
# [2][0] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
======================================================================== | |
Timing Static Methods vs. Inline Functions | |
======================================================================== | |
A simple test to compare the overhead of calling static functions vs. | |
defining and calling inline functions. | |
At least in this experiment, static methods are ~15-20% faster. This | |
is of course not even considering their improvements in testability |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pytest | |
@pytest.mark.parametrize('foo', ('a', 'b')) | |
@pytest.mark.parametrize('bar', (True, False)) | |
def test_multi(foo, bar): | |
print(foo, bar) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import itertools | |
import pytest | |
@pytest.mark.parametrize( | |
'foo, bar', itertools.product(('a', 'b'), (True, False)) | |
) | |
def test_multi(foo, bar): | |
print(foo, bar) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pytest | |
@pytest.mark.parametrize('foo, bar', ( | |
('a', True), | |
('a', False), | |
('b', True), | |
('b', False) | |
)) | |
def test_multi(foo, bar): | |
print(foo, bar) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pytest | |
@pytest.mark.parametrize('foo', ('a', 'b')) | |
def test_something(foo): | |
print(foo) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""This gist describes how to check which version of Python is running. | |
This one is easy enough that there's really no reason to reach for six's | |
PY2/PY3 attributes. | |
""" | |
from sys import version_info | |
# verison_info acts like a named tuple of the form | |
# (major, minor, micro, releaselevel, serial), so standard tuple |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""This example uses the ABCMeta class as its exemplar metaclass.""" | |
from abc import ABCMeta | |
# Create an instance of the metaclass. We can define __slots__ to be | |
# an empty tuple, because we don't need this class to store any attributes. | |
# This instance can be used multiple times, imported, etc., as desired. | |
ABC = ABCMeta('ABC', (object,), {'__slots__': ()}) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from logging import basicConfig, getLogger | |
import pytest | |
basicConfig() | |
log = getLogger() | |
log.setLevel('DEBUG') | |
def func_that_logs_a_lot(): | |
for i in range(1000): | |
log.info('foo output %s/1000', i) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from datetime import datetime | |
from timeit import timeit | |
iterations = int(1e6) | |
def method_one(): | |
now = datetime.now() | |
hour = datetime(now.year, now.month, now.day, now.hour) |
NewerOlder