Skip to content

Instantly share code, notes, and snippets.

@purpleP
Created January 14, 2017 22:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save purpleP/626faf5c1cbcd204c6478f57e76dc518 to your computer and use it in GitHub Desktop.
Save purpleP/626faf5c1cbcd204c6478f57e76dc518 to your computer and use it in GitHub Desktop.
from strategies import store
@store
def name0():
pass
@store
def name1():
pass
@store
def name2():
pass
@store
def name3():
pass
@store
def name4():
pass
@store
def name5():
pass
@store
def name6():
pass
@store
def name7():
pass
@store
def name8():
pass
@store
def name9():
pass
@store
def name10():
pass
@store
def name11():
pass
@store
def name12():
pass
@store
def name13():
pass
@store
def name14():
pass
@store
def name15():
pass
@store
def name16():
pass
@store
def name17():
pass
@store
def name18():
pass
@store
def name19():
pass
@store
def name20():
pass
@store
def name21():
pass
@store
def name22():
pass
@store
def name23():
pass
@store
def name24():
pass
@store
def name25():
pass
@store
def name26():
pass
@store
def name27():
pass
@store
def name28():
pass
@store
def name29():
pass
@store
def name30():
pass
@store
def name31():
pass
@store
def name32():
pass
@store
def name33():
pass
@store
def name34():
pass
@store
def name35():
pass
@store
def name36():
pass
@store
def name37():
pass
@store
def name38():
pass
@store
def name39():
pass
@store
def name40():
pass
@store
def name41():
pass
@store
def name42():
pass
@store
def name43():
pass
@store
def name44():
pass
@store
def name45():
pass
@store
def name46():
pass
@store
def name47():
pass
@store
def name48():
pass
@store
def name49():
pass
@store
def name50():
pass
@store
def name51():
pass
@store
def name52():
pass
@store
def name53():
pass
@store
def name54():
pass
@store
def name55():
pass
@store
def name56():
pass
@store
def name57():
pass
@store
def name58():
pass
@store
def name59():
pass
@store
def name60():
pass
@store
def name61():
pass
@store
def name62():
pass
@store
def name63():
pass
@store
def name64():
pass
@store
def name65():
pass
@store
def name66():
pass
@store
def name67():
pass
@store
def name68():
pass
@store
def name69():
pass
@store
def name70():
pass
@store
def name71():
pass
@store
def name72():
pass
@store
def name73():
pass
@store
def name74():
pass
@store
def name75():
pass
@store
def name76():
pass
@store
def name77():
pass
@store
def name78():
pass
@store
def name79():
pass
@store
def name80():
pass
@store
def name81():
pass
@store
def name82():
pass
@store
def name83():
pass
@store
def name84():
pass
@store
def name85():
pass
@store
def name86():
pass
@store
def name87():
pass
@store
def name88():
pass
@store
def name89():
pass
@store
def name90():
pass
@store
def name91():
pass
@store
def name92():
pass
@store
def name93():
pass
@store
def name94():
pass
@store
def name95():
pass
@store
def name96():
pass
@store
def name97():
pass
@store
def name98():
pass
@store
def name99():
pass
@store
def name100():
pass
from collections import defaultdict
import inspect
import sys
def store(func):
module = sys.modules[func.__module__]
if not hasattr(module, '_store'):
module._store = defaultdict(list)
module._store['functions'].append(func)
return func
def tag(func):
func._tagged = True
return func
def find_by_tag(module):
return tuple(inspect.getmembers(module, lambda x: hasattr(x, '_tagged')))
def find_from_store(module):
return module._store['functions']
from strategies import tag
@tag
def name0():
pass
@tag
def name1():
pass
@tag
def name2():
pass
@tag
def name3():
pass
@tag
def name4():
pass
@tag
def name5():
pass
@tag
def name6():
pass
@tag
def name7():
pass
@tag
def name8():
pass
@tag
def name9():
pass
@tag
def name10():
pass
@tag
def name11():
pass
@tag
def name12():
pass
@tag
def name13():
pass
@tag
def name14():
pass
@tag
def name15():
pass
@tag
def name16():
pass
@tag
def name17():
pass
@tag
def name18():
pass
@tag
def name19():
pass
@tag
def name20():
pass
@tag
def name21():
pass
@tag
def name22():
pass
@tag
def name23():
pass
@tag
def name24():
pass
@tag
def name25():
pass
@tag
def name26():
pass
@tag
def name27():
pass
@tag
def name28():
pass
@tag
def name29():
pass
@tag
def name30():
pass
@tag
def name31():
pass
@tag
def name32():
pass
@tag
def name33():
pass
@tag
def name34():
pass
@tag
def name35():
pass
@tag
def name36():
pass
@tag
def name37():
pass
@tag
def name38():
pass
@tag
def name39():
pass
@tag
def name40():
pass
@tag
def name41():
pass
@tag
def name42():
pass
@tag
def name43():
pass
@tag
def name44():
pass
@tag
def name45():
pass
@tag
def name46():
pass
@tag
def name47():
pass
@tag
def name48():
pass
@tag
def name49():
pass
@tag
def name50():
pass
@tag
def name51():
pass
@tag
def name52():
pass
@tag
def name53():
pass
@tag
def name54():
pass
@tag
def name55():
pass
@tag
def name56():
pass
@tag
def name57():
pass
@tag
def name58():
pass
@tag
def name59():
pass
@tag
def name60():
pass
@tag
def name61():
pass
@tag
def name62():
pass
@tag
def name63():
pass
@tag
def name64():
pass
@tag
def name65():
pass
@tag
def name66():
pass
@tag
def name67():
pass
@tag
def name68():
pass
@tag
def name69():
pass
@tag
def name70():
pass
@tag
def name71():
pass
@tag
def name72():
pass
@tag
def name73():
pass
@tag
def name74():
pass
@tag
def name75():
pass
@tag
def name76():
pass
@tag
def name77():
pass
@tag
def name78():
pass
@tag
def name79():
pass
@tag
def name80():
pass
@tag
def name81():
pass
@tag
def name82():
pass
@tag
def name83():
pass
@tag
def name84():
pass
@tag
def name85():
pass
@tag
def name86():
pass
@tag
def name87():
pass
@tag
def name88():
pass
@tag
def name89():
pass
@tag
def name90():
pass
@tag
def name91():
pass
@tag
def name92():
pass
@tag
def name93():
pass
@tag
def name94():
pass
@tag
def name95():
pass
@tag
def name96():
pass
@tag
def name97():
pass
@tag
def name98():
pass
@tag
def name99():
pass
@tag
def name100():
pass
from importlib import import_module
import pytest
from strategies import find_by_tag, find_from_store
import store
import tag
@pytest.mark.parametrize(
'module,strategy',
((tag, find_by_tag), (store, find_from_store)),
ids=('tag', 'store')
)
def test_strategies(benchmark, module, strategy):
result = benchmark(strategy, module)
assert len(result) > 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment