{"action":"created","comment":{"url":"https://api.github.com/repos/seznam/flexp/pulls/comments/220799362","pull_request_review_id":159290509,"id":220799362,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyMDc5OTM2Mg==","diff_hunk":"@@ -0,0 +1,142 @@\n+from __future__ import unicode_literals\n+from __future__ import print_function\n+from __future__ import absolute_import\n+from __future__ import division\n+\n+import hashlib\n+import os\n+import time\n+\n+from flexp.flow import Chain\n+from flexp.flow.cache import PickleCache, ObjectDumper\n+from flexp.utils import get_logger\n+\n+\n+log = get_logger(__name__)\n+\n+\n+class CachingChain(Chain, ObjectDumper):\n+    \"\"\"Chains of modules run by `process` function.\n+    Update data id after each module with parameter UpdateAttrName = 'UpdateDataId'.\n+    Look for last prepared PickleCache and skip previous modules\n+    \"\"\"\n+\n+    UpdateAttrName = 'UpdateDataId'\n+\n+    def __init__(self, chain=None, check=False, name=None, ignore_first_module_requirements=True, update_data_id='id',\n+                 max_recursion_level=10):\n+        \"\"\"Set up modules.\n+        :param list[object|function]|object|function chain: one module or\n+        list of modules\n+        :param bool check: check if chain modules are compatible\n+        :param bool ignore_first_module_requirements: First module\n+        requirements may be satisfied by input data therefore it is common to\n+        not check them\n+        :param str name:\n+        \"\"\"\n+        self.id_hashes = []\n+        self.update_data_id = update_data_id\n+        self.max_recursion_level = max_recursion_level\n+        super().__init__(chain, check, name, ignore_first_module_requirements)\n+\n+    def _add(self, module):\n+        \"\"\"Add module to the chain\n+        Check if a new module conforms to our requirements.\n+\n+        :param object|function module:\n+        \"\"\"\n+        super()._add(module)\n+        if isinstance(module, PickleCache):\n+            # no need to distinguish PickleCache(chain=[Module1, Module2]) and [Module1, Module2]\n+            # PickleCache.chain_info['chain_hash'] created same way: hash_dump_string(object_dump_to_string([module]))","path":"flexp/flow/caching_chain.py","position":51,"original_position":51,"commit_id":"eaf5ba56c0024a4ae3e119cd843a2ab14a43d7c5","original_commit_id":"eaf5ba56c0024a4ae3e119cd843a2ab14a43d7c5","user":{"login":"alaneckhardt","id":1485423,"node_id":"MDQ6VXNlcjE0ODU0MjM=","avatar_url":"https://avatars1.githubusercontent.com/u/1485423?v=4","gravatar_id":"","url":"https://api.github.com/users/alaneckhardt","html_url":"https://github.com/alaneckhardt","followers_url":"https://api.github.com/users/alaneckhardt/followers","following_url":"https://api.github.com/users/alaneckhardt/following{/other_user}","gists_url":"https://api.github.com/users/alaneckhardt/gists{/gist_id}","starred_url":"https://api.github.com/users/alaneckhardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaneckhardt/subscriptions","organizations_url":"https://api.github.com/users/alaneckhardt/orgs","repos_url":"https://api.github.com/users/alaneckhardt/repos","events_url":"https://api.github.com/users/alaneckhardt/events{/privacy}","received_events_url":"https://api.github.com/users/alaneckhardt/received_events","type":"User","site_admin":false},"body":"That's actually really good idea! I like that.","created_at":"2018-09-27T05:44:49Z","updated_at":"2018-09-27T05:44:49Z","html_url":"https://github.com/seznam/flexp/pull/8#discussion_r220799362","pull_request_url":"https://api.github.com/repos/seznam/flexp/pulls/8","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/seznam/flexp/pulls/comments/220799362"},"html":{"href":"https://github.com/seznam/flexp/pull/8#discussion_r220799362"},"pull_request":{"href":"https://api.github.com/repos/seznam/flexp/pulls/8"}}},"pull_request":{"url":"https://api.github.com/repos/seznam/flexp/pulls/8","id":218267857,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE4MjY3ODU3","html_url":"https://github.com/seznam/flexp/pull/8","diff_url":"https://github.com/seznam/flexp/pull/8.diff","patch_url":"https://github.com/seznam/flexp/pull/8.patch","issue_url":"https://api.github.com/repos/seznam/flexp/issues/8","number":8,"state":"open","locked":false,"title":"5 skip loading pickle cache","user":{"login":"shakukse","id":6491486,"node_id":"MDQ6VXNlcjY0OTE0ODY=","avatar_url":"https://avatars1.githubusercontent.com/u/6491486?v=4","gravatar_id":"","url":"https://api.github.com/users/shakukse","html_url":"https://github.com/shakukse","followers_url":"https://api.github.com/users/shakukse/followers","following_url":"https://api.github.com/users/shakukse/following{/other_user}","gists_url":"https://api.github.com/users/shakukse/gists{/gist_id}","starred_url":"https://api.github.com/users/shakukse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shakukse/subscriptions","organizations_url":"https://api.github.com/users/shakukse/orgs","repos_url":"https://api.github.com/users/shakukse/repos","events_url":"https://api.github.com/users/shakukse/events{/privacy}","received_events_url":"https://api.github.com/users/shakukse/received_events","type":"User","site_admin":false},"body":"close #5","created_at":"2018-09-26T10:41:20Z","updated_at":"2018-09-27T05:44:49Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fb5e1b6a3722278a2bf9003c2b8fe45b8402a6fc","assignee":{"login":"alaneckhardt","id":1485423,"node_id":"MDQ6VXNlcjE0ODU0MjM=","avatar_url":"https://avatars1.githubusercontent.com/u/1485423?v=4","gravatar_id":"","url":"https://api.github.com/users/alaneckhardt","html_url":"https://github.com/alaneckhardt","followers_url":"https://api.github.com/users/alaneckhardt/followers","following_url":"https://api.github.com/users/alaneckhardt/following{/other_user}","gists_url":"https://api.github.com/users/alaneckhardt/gists{/gist_id}","starred_url":"https://api.github.com/users/alaneckhardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaneckhardt/subscriptions","organizations_url":"https://api.github.com/users/alaneckhardt/orgs","repos_url":"https://api.github.com/users/alaneckhardt/repos","events_url":"https://api.github.com/users/alaneckhardt/events{/privacy}","received_events_url":"https://api.github.com/users/alaneckhardt/received_events","type":"User","site_admin":false},"assignees":[{"login":"alaneckhardt","id":1485423,"node_id":"MDQ6VXNlcjE0ODU0MjM=","avatar_url":"https://avatars1.githubusercontent.com/u/1485423?v=4","gravatar_id":"","url":"https://api.github.com/users/alaneckhardt","html_url":"https://github.com/alaneckhardt","followers_url":"https://api.github.com/users/alaneckhardt/followers","following_url":"https://api.github.com/users/alaneckhardt/following{/other_user}","gists_url":"https://api.github.com/users/alaneckhardt/gists{/gist_id}","starred_url":"https://api.github.com/users/alaneckhardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alaneckhardt/subscriptions","organizations_url":"https://api.github.com/users/alaneckhardt/orgs","repos_url":"https://api.github.com/users/alaneckhardt/repos","events_url":"https://api.github.com/users/alaneckhardt/events{/privacy}","received_events_url":"https://api.github.com/users/alaneckhardt/received_events","type":"User","site_admin":false},{"login":"ofilip","id":3321867,"node_id":"MDQ6VXNlcjMzMjE4Njc=","avatar_url":"https://avatars3.githubusercontent.com/u/3321867?v=4","gravatar_id":"","url":"https://api.github.com/users/ofilip","html_url":"https://github.com/ofilip","followers_url":"https://api.github.com/users/ofilip/followers","following_url":"https://api.github.com/users/ofilip/following{/other_user}","gists_url":"https://api.github.com/users/ofilip/gists{/gist_id}","starred_url":"https://api.github.com/users/ofilip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofilip/subscriptions","organizations_url":"https://api.github.com/users/ofilip/orgs","repos_url":"https://api.github.com/users/ofilip/repos","events_url":"https://api.github.com/users/ofilip/events{/privacy}","received_events_url":"https://api.github.com/users/ofilip/received_events","type":"User","site_admin":false},{"login":"tivvit","id":3392931,"node_id":"MDQ6VXNlcjMzOTI5MzE=","avatar_url":"https://avatars2.githubusercontent.com/u/3392931?v=4","gravatar_id":"","url":"https://api.github.com/users/tivvit","html_url":"https://github.com/tivvit","followers_url":"https://api.github.com/users/tivvit/followers","following_url":"https://api.github.com/users/tivvit/following{/other_user}","gists_url":"https://api.github.com/users/tivvit/gists{/gist_id}","starred_url":"https://api.github.com/users/tivvit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tivvit/subscriptions","organizations_url":"https://api.github.com/users/tivvit/orgs","repos_url":"https://api.github.com/users/tivvit/repos","events_url":"https://api.github.com/users/tivvit/events{/privacy}","received_events_url":"https://api.github.com/users/tivvit/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/seznam/flexp/pulls/8/commits","review_comments_url":"https://api.github.com/repos/seznam/flexp/pulls/8/comments","review_comment_url":"https://api.github.com/repos/seznam/flexp/pulls/comments{/number}","comments_url":"https://api.github.com/repos/seznam/flexp/issues/8/comments","statuses_url":"https://api.github.com/repos/seznam/flexp/statuses/eaf5ba56c0024a4ae3e119cd843a2ab14a43d7c5","head":{"label":"seznam:5-skip-loading-pickle-cache","ref":"5-skip-loading-pickle-cache","sha":"eaf5ba56c0024a4ae3e119cd843a2ab14a43d7c5","user":{"login":"seznam","id":192214,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5MjIxNA==","avatar_url":"https://avatars3.githubusercontent.com/u/192214?v=4","gravatar_id":"","url":"https://api.github.com/users/seznam","html_url":"https://github.com/seznam","followers_url":"https://api.github.com/users/seznam/followers","following_url":"https://api.github.com/users/seznam/following{/other_user}","gists_url":"https://api.github.com/users/seznam/gists{/gist_id}","starred_url":"https://api.github.com/users/seznam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seznam/subscriptions","organizations_url":"https://api.github.com/users/seznam/orgs","repos_url":"https://api.github.com/users/seznam/repos","events_url":"https://api.github.com/users/seznam/events{/privacy}","received_events_url":"https://api.github.com/users/seznam/received_events","type":"Organization","site_admin":false},"repo":{"id":135420020,"node_id":"MDEwOlJlcG9zaXRvcnkxMzU0MjAwMjA=","name":"flexp","full_name":"seznam/flexp","private":false,"owner":{"login":"seznam","id":192214,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5MjIxNA==","avatar_url":"https://avatars3.githubusercontent.com/u/192214?v=4","gravatar_id":"","url":"https://api.github.com/users/seznam","html_url":"https://github.com/seznam","followers_url":"https://api.github.com/users/seznam/followers","following_url":"https://api.github.com/users/seznam/following{/other_user}","gists_url":"https://api.github.com/users/seznam/gists{/gist_id}","starred_url":"https://api.github.com/users/seznam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seznam/subscriptions","organizations_url":"https://api.github.com/users/seznam/orgs","repos_url":"https://api.github.com/users/seznam/repos","events_url":"https://api.github.com/users/seznam/events{/privacy}","received_events_url":"https://api.github.com/users/seznam/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seznam/flexp","description":null,"fork":false,"url":"https://api.github.com/repos/seznam/flexp","forks_url":"https://api.github.com/repos/seznam/flexp/forks","keys_url":"https://api.github.com/repos/seznam/flexp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seznam/flexp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seznam/flexp/teams","hooks_url":"https://api.github.com/repos/seznam/flexp/hooks","issue_events_url":"https://api.github.com/repos/seznam/flexp/issues/events{/number}","events_url":"https://api.github.com/repos/seznam/flexp/events","assignees_url":"https://api.github.com/repos/seznam/flexp/assignees{/user}","branches_url":"https://api.github.com/repos/seznam/flexp/branches{/branch}","tags_url":"https://api.github.com/repos/seznam/flexp/tags","blobs_url":"https://api.github.com/repos/seznam/flexp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seznam/flexp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seznam/flexp/git/refs{/sha}","trees_url":"https://api.github.com/repos/seznam/flexp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seznam/flexp/statuses/{sha}","languages_url":"https://api.github.com/repos/seznam/flexp/languages","stargazers_url":"https://api.github.com/repos/seznam/flexp/stargazers","contributors_url":"https://api.github.com/repos/seznam/flexp/contributors","subscribers_url":"https://api.github.com/repos/seznam/flexp/subscribers","subscription_url":"https://api.github.com/repos/seznam/flexp/subscription","commits_url":"https://api.github.com/repos/seznam/flexp/commits{/sha}","git_commits_url":"https://api.github.com/repos/seznam/flexp/git/commits{/sha}","comments_url":"https://api.github.com/repos/seznam/flexp/comments{/number}","issue_comment_url":"https://api.github.com/repos/seznam/flexp/issues/comments{/number}","contents_url":"https://api.github.com/repos/seznam/flexp/contents/{+path}","compare_url":"https://api.github.com/repos/seznam/flexp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seznam/flexp/merges","archive_url":"https://api.github.com/repos/seznam/flexp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seznam/flexp/downloads","issues_url":"https://api.github.com/repos/seznam/flexp/issues{/number}","pulls_url":"https://api.github.com/repos/seznam/flexp/pulls{/number}","milestones_url":"https://api.github.com/repos/seznam/flexp/milestones{/number}","notifications_url":"https://api.github.com/repos/seznam/flexp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seznam/flexp/labels{/name}","releases_url":"https://api.github.com/repos/seznam/flexp/releases{/id}","deployments_url":"https://api.github.com/repos/seznam/flexp/deployments","created_at":"2018-05-30T09:28:26Z","updated_at":"2018-09-27T05:34:34Z","pushed_at":"2018-09-27T05:34:32Z","git_url":"git://github.com/seznam/flexp.git","ssh_url":"git@github.com:seznam/flexp.git","clone_url":"https://github.com/seznam/flexp.git","svn_url":"https://github.com/seznam/flexp","homepage":null,"size":371,"stargazers_count":5,"watchers_count":5,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":2,"license":{"key":"bsd-3-clause","name":"BSD 3-Clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause","node_id":"MDc6TGljZW5zZTU="},"forks":1,"open_issues":2,"watchers":5,"default_branch":"master"}},"base":{"label":"seznam:master","ref":"master","sha":"4a147efd180610dd24bac187efd4612621c921d5","user":{"login":"seznam","id":192214,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5MjIxNA==","avatar_url":"https://avatars3.githubusercontent.com/u/192214?v=4","gravatar_id":"","url":"https://api.github.com/users/seznam","html_url":"https://github.com/seznam","followers_url":"https://api.github.com/users/seznam/followers","following_url":"https://api.github.com/users/seznam/following{/other_user}","gists_url":"https://api.github.com/users/seznam/gists{/gist_id}","starred_url":"https://api.github.com/users/seznam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seznam/subscriptions","organizations_url":"https://api.github.com/users/seznam/orgs","repos_url":"https://api.github.com/users/seznam/repos","events_url":"https://api.github.com/users/seznam/events{/privacy}","received_events_url":"https://api.github.com/users/seznam/received_events","type":"Organization","site_admin":false},"repo":{"id":135420020,"node_id":"MDEwOlJlcG9zaXRvcnkxMzU0MjAwMjA=","name":"flexp","full_name":"seznam/flexp","private":false,"owner":{"login":"seznam","id":192214,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5MjIxNA==","avatar_url":"https://avatars3.githubusercontent.com/u/192214?v=4","gravatar_id":"","url":"https://api.github.com/users/seznam","html_url":"https://github.com/seznam","followers_url":"https://api.github.com/users/seznam/followers","following_url":"https://api.github.com/users/seznam/following{/other_user}","gists_url":"https://api.github.com/users/seznam/gists{/gist_id}","starred_url":"https://api.github.com/users/seznam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seznam/subscriptions","organizations_url":"https://api.github.com/users/seznam/orgs","repos_url":"https://api.github.com/users/seznam/repos","events_url":"https://api.github.com/users/seznam/events{/privacy}","received_events_url":"https://api.github.com/users/seznam/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seznam/flexp","description":null,"fork":false,"url":"https://api.github.com/repos/seznam/flexp","forks_url":"https://api.github.com/repos/seznam/flexp/forks","keys_url":"https://api.github.com/repos/seznam/flexp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seznam/flexp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seznam/flexp/teams","hooks_url":"https://api.github.com/repos/seznam/flexp/hooks","issue_events_url":"https://api.github.com/repos/seznam/flexp/issues/events{/number}","events_url":"https://api.github.com/repos/seznam/flexp/events","assignees_url":"https://api.github.com/repos/seznam/flexp/assignees{/user}","branches_url":"https://api.github.com/repos/seznam/flexp/branches{/branch}","tags_url":"https://api.github.com/repos/seznam/flexp/tags","blobs_url":"https://api.github.com/repos/seznam/flexp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seznam/flexp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seznam/flexp/git/refs{/sha}","trees_url":"https://api.github.com/repos/seznam/flexp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seznam/flexp/statuses/{sha}","languages_url":"https://api.github.com/repos/seznam/flexp/languages","stargazers_url":"https://api.github.com/repos/seznam/flexp/stargazers","contributors_url":"https://api.github.com/repos/seznam/flexp/contributors","subscribers_url":"https://api.github.com/repos/seznam/flexp/subscribers","subscription_url":"https://api.github.com/repos/seznam/flexp/subscription","commits_url":"https://api.github.com/repos/seznam/flexp/commits{/sha}","git_commits_url":"https://api.github.com/repos/seznam/flexp/git/commits{/sha}","comments_url":"https://api.github.com/repos/seznam/flexp/comments{/number}","issue_comment_url":"https://api.github.com/repos/seznam/flexp/issues/comments{/number}","contents_url":"https://api.github.com/repos/seznam/flexp/contents/{+path}","compare_url":"https://api.github.com/repos/seznam/flexp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seznam/flexp/merges","archive_url":"https://api.github.com/repos/seznam/flexp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seznam/flexp/downloads","issues_url":"https://api.github.com/repos/seznam/flexp/issues{/number}","pulls_url":"https://api.github.com/repos/seznam/flexp/pulls{/number}","milestones_url":"https://api.github.com/repos/seznam/flexp/milestones{/number}","notifications_url":"https://api.github.com/repos/seznam/flexp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seznam/flexp/labels{/name}","releases_url":"https://api.github.com/repos/seznam/flexp/releases{/id}","deployments_url":"https://api.github.com/repos/seznam/flexp/deployments","created_at":"2018-05-30T09:28:26Z","updated_at":"2018-09-27T05:34:34Z","pushed_at":"2018-09-27T05:34:32Z","git_url":"git://github.com/seznam/flexp.git","ssh_url":"git@github.com:seznam/flexp.git","clone_url":"https://github.com/seznam/flexp.git","svn_url":"https://github.com/seznam/flexp","homepage":null,"size":371,"stargazers_count":5,"watchers_count":5,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":2,"license":{"key":"bsd-3-clause","name":"BSD 3-Clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause","node_id":"MDc6TGljZW5zZTU="},"forks":1,"open_issues":2,"watchers":5,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/seznam/flexp/pulls/8"},"html":{"href":"https://github.com/seznam/flexp/pull/8"},"issue":{"href":"https://api.github.com/repos/seznam/flexp/issues/8"},"comments":{"href":"https://api.github.com/repos/seznam/flexp/issues/8/comments"},"review_comments":{"href":"https://api.github.com/repos/seznam/flexp/pulls/8/comments"},"review_comment":{"href":"https://api.github.com/repos/seznam/flexp/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/seznam/flexp/pulls/8/commits"},"statuses":{"href":"https://api.github.com/repos/seznam/flexp/statuses/eaf5ba56c0024a4ae3e119cd843a2ab14a43d7c5"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"alaneckhardt"}}