)]}'
{"taskflow/atom.py":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"5c3a057bf9ea2ef83872b6a93d3414bbd83cbecc","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        self.version \u003d (1, 0)"},{"line_number":200,"context_line":"        self.inject \u003d inject"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        self.save_as \u003d None"},{"line_number":203,"context_line":"        self._provides \u003d sets.OrderedSet()"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        # this resets both self._provides and self.save_as, since they\u0027re"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_f06431e6","line":202,"updated":"2016-01-08 01:15:11.000000000","message":"Shall we just make this a read-only property?","commit_id":"ea679eb266d64d0f7aad47b1e9b4d7cc0de3d4d1"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"5c3a057bf9ea2ef83872b6a93d3414bbd83cbecc","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        # this resets both self._provides and self.save_as, since they\u0027re"},{"line_number":206,"context_line":"        # tightly coupled"},{"line_number":207,"context_line":"        self.provides \u003d provides"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        self._arg_mapping_kwargs \u003d {}"},{"line_number":210,"context_line":"        self._requires \u003d sets.OrderedSet()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_7030419f","line":207,"updated":"2016-01-08 01:15:11.000000000","message":"What about:\n\n  self._provides \u003d None\n  self._save_as \u003d None\n\nThen building both (or updating) on first property access/set?","commit_id":"ea679eb266d64d0f7aad47b1e9b4d7cc0de3d4d1"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"2ba5a3e5da71fbcbd5bbc82c6c3d2f09603d7c6b","unresolved":false,"context_lines":[{"line_number":214,"context_line":"    def _build_arg_mapping(self, executor, requires\u003dNone, rebind\u003dNone,"},{"line_number":215,"context_line":"                           auto_extract\u003dTrue, ignore_list\u003dNone):"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"        self._arg_mapping_kwargs \u003d {\u0027executor\u0027: executor,"},{"line_number":218,"context_line":"                                    \u0027requires\u0027: requires,"},{"line_number":219,"context_line":"                                    \u0027rebind\u0027: rebind,"},{"line_number":220,"context_line":"                                    \u0027auto_extract\u0027: auto_extract,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_c1c4bd60","line":217,"updated":"2016-01-08 01:36:58.000000000","message":"I wonder if we can do this differently somehow...\n\nSome of these seem like they should be instance attributes and some seem like they aren\u0027t.\n\nPerhaps at least it should be named \u0027_mapping_cache\u0027 or something (because it is more or less a cache of the last built arguments to be used in future calls to alter things without having to provide the full set of arguments again).","commit_id":"ea679eb266d64d0f7aad47b1e9b4d7cc0de3d4d1"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"3e0ddef69f8df99007ee38bf9ff6443e4cbea6b6","unresolved":false,"context_lines":[{"line_number":234,"context_line":"            self._requires -\u003d inject_keys"},{"line_number":235,"context_line":"            self._optional -\u003d inject_keys"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    def _rebuild_arg_mapping(self, **kwargs):"},{"line_number":238,"context_line":"        arg_mapping_kwargs \u003d dict(self._arg_mapping_kwargs)"},{"line_number":239,"context_line":"        arg_mapping_kwargs.update(**kwargs)"},{"line_number":240,"context_line":"        self._build_arg_mapping(**arg_mapping_kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_7ccb3a1f","line":237,"updated":"2016-01-08 01:48:59.000000000","message":"Should we just move most of this logic into _build_arg_mapping and then not really need this method?","commit_id":"ea679eb266d64d0f7aad47b1e9b4d7cc0de3d4d1"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"5c3a057bf9ea2ef83872b6a93d3414bbd83cbecc","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        arg_mapping_kwargs.update(**kwargs)"},{"line_number":240,"context_line":"        self._build_arg_mapping(**arg_mapping_kwargs)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    def rebind_for(self, executor, **kwargs):"},{"line_number":243,"context_line":"        self._rebuild_arg_mapping(executor\u003dexecutor, **kwargs)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_508e5d28","line":242,"updated":"2016-01-08 01:15:11.000000000","message":"Hmmm, executor, can we maybe do a different name, that makes me think of https://docs.python.org/dev/library/concurrent.futures.html#executor-objects and such (similar modules/names exist elsewhere); perhaps something better can be chosen as its name? \u0027kind\u0027? Are \u0027kwargs\u0027 really needed also, or can u just explicitly name the keyword arguments?","commit_id":"ea679eb266d64d0f7aad47b1e9b4d7cc0de3d4d1"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"5e326150fec5e7831af4cdf3d203d2bd5c5a5a7d","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        arg_mapping_kwargs.update(**kwargs)"},{"line_number":240,"context_line":"        self._build_arg_mapping(**arg_mapping_kwargs)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    def rebind_for(self, executor, **kwargs):"},{"line_number":243,"context_line":"        self._rebuild_arg_mapping(executor\u003dexecutor, **kwargs)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_c3e60516","line":242,"in_reply_to":"fa69d971_508e5d28","updated":"2016-01-08 01:29:11.000000000","message":"Also I think executor can only be [\u0027execute\u0027, \u0027revert\u0027] right? so probably restricting/checking those to right? I think I understand this is for a later change (to switch what is used for different actions, but just wanted to check)","commit_id":"ea679eb266d64d0f7aad47b1e9b4d7cc0de3d4d1"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"5c3a057bf9ea2ef83872b6a93d3414bbd83cbecc","unresolved":false,"context_lines":[{"line_number":240,"context_line":"        self._build_arg_mapping(**arg_mapping_kwargs)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    def rebind_for(self, executor, **kwargs):"},{"line_number":243,"context_line":"        self._rebuild_arg_mapping(executor\u003dexecutor, **kwargs)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @property"},{"line_number":246,"context_line":"    def provides(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_30d5e9b8","line":243,"updated":"2016-01-08 01:15:11.000000000","message":"Also probably we should note that changing this during an engine is executing may have unpredictable results (because it may work, but it may also not)...","commit_id":"ea679eb266d64d0f7aad47b1e9b4d7cc0de3d4d1"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"5c3a057bf9ea2ef83872b6a93d3414bbd83cbecc","unresolved":false,"context_lines":[{"line_number":255,"context_line":"    @property"},{"line_number":256,"context_line":"    def rebind(self):"},{"line_number":257,"context_line":"        return self._rebind"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    @rebind.setter"},{"line_number":260,"context_line":"    def rebind(self, rebind):"},{"line_number":261,"context_line":"        self._rebuild_arg_mapping(rebind\u003drebind)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_50117dae","line":258,"updated":"2016-01-08 01:15:11.000000000","message":"Add?\n\n  @property\n  def save_as(self):\n     ...","commit_id":"ea679eb266d64d0f7aad47b1e9b4d7cc0de3d4d1"}]}
