{"componentChunkName":"component---src-templates-post-tsx","path":"/posts/2018/02/common.py/","result":{"data":{"markdownRemark":{"fields":{"slug":"/2018/02/common.py/"},"frontmatter":{"title":"My common.py","tag":["python","common.py"],"image":"https://upload.wikimedia.org/wikipedia/commons/a/ad/Lozingle_10032014.jpg"},"correctedDateEpoch":1517590800000,"html":"<p>A list of classes / functions I use repeatedly across projects. Also, please see ^^post blog/2018/02/python-decorators.md^^</p>\n<!-- excerpt_separator -->\n<pre><code class=\"language-python\">import collections\nfrom time import time\n\ndef flatten(d, parent_key='', sep='_'):\n    items = []\n    for k, v in d.items():\n        new_key = parent_key + sep + k if parent_key else k\n        if isinstance(v, collections.MutableMapping):\n            items.extend(flatten(v, new_key, sep=sep).items())\n    else:\n        items.append((new_key, v))\n    return dict(items)\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>"}},"pageContext":{"slug":"/2018/02/common.py/"}}}