{"componentChunkName":"component---src-templates-post-tsx","path":"/posts/2018/02/python-decorators/","result":{"data":{"markdownRemark":{"fields":{"slug":"/2018/02/python-decorators/"},"frontmatter":{"title":"Some useful python decorators I have made recently.","tag":["python","decorator"],"image":"https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTUt_AjZKjRhRVQ3S3vaqXj2MCzImgWogbC6asInALTSP0NSWqT"},"correctedDateEpoch":1517590800000,"html":"<p>I wonder how could I make it available across projects???</p>\n<!-- excerpt_separator -->\n<pre><code class=\"language-python\">from time import time\n\ndef iter2list(func):\n    def wrapper(*args, **kwargs):\n        return list(func(*args, **kwargs))\n    return wrapper\n\ndef speedWrapper(func):\n    def wrapper(*args, **kwargs):\n        with speedTest(func.__qualname__):\n            return func(*args, **kwargs)\n    return wrapper\n\nclass speedTest:\n    def __init__(self, funcName):\n        self.funcName = funcName\n\n    def __enter__(self):\n        print('Started: {}'.format(self.funcName))\n        self.init_time = time()\n        return self\n\n    def __exit__(self, type, value, tb):\n        print('Finished: {} in: {} seconds'.format(self.funcName, time() - self.init_time))\n</code></pre>\n<p>Usage:-</p>\n<pre><code class=\"language-python\">from common import common\n\n@common.iter2list\ndef func():\n    ...\n    yield ...\n\n@common.speedWrapper\ndef func2():\n    ...\n</code></pre>"}},"pageContext":{"slug":"/2018/02/python-decorators/"}}}