)]}'
{"taskflow/atom.py":[{"author":{"_account_id":8340,"name":"Craig Jellick","email":"craig.jellick@gmail.com","username":"cjellick"},"change_message_id":"d8fc65f26108627b973cf1eebf16dd42aa457633","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                   execute method) to symbol name."},{"line_number":133,"context_line":"    :ivar rebind: An *immutable* input ``symbol`` mapping dictionary that"},{"line_number":134,"context_line":"                  can be used to alter the input symbols given to this atom. It"},{"line_number":135,"context_line":"                  is typically used for mapping a prior atoms produced symbols"},{"line_number":136,"context_line":"                  into the symbols that this atom expects (in a way this"},{"line_number":137,"context_line":"                  is like remapping a namespace of another atom into the"},{"line_number":138,"context_line":"                  namespace of this atom)."}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_2d773709","line":135,"updated":"2014-08-12 14:33:04.000000000","message":"atoms should have an apostrophe: \"...mapping a prior atom\u0027s produced symbols...\"","commit_id":"81adf6dc633f74104fcb386b971107578049ef09"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"6c1e1ba2bbc5c54c8624e42ecce3647d65a5401f","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                   execute method) to symbol name."},{"line_number":133,"context_line":"    :ivar rebind: An *immutable* input ``symbol`` mapping dictionary that"},{"line_number":134,"context_line":"                  can be used to alter the input symbols given to this atom. It"},{"line_number":135,"context_line":"                  is typically used for mapping a prior atoms produced symbols"},{"line_number":136,"context_line":"                  into the symbols that this atom expects (in a way this"},{"line_number":137,"context_line":"                  is like remapping a namespace of another atom into the"},{"line_number":138,"context_line":"                  namespace of this atom)."}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_793e4a8b","line":135,"in_reply_to":"baada198_2d773709","updated":"2014-08-12 16:14:41.000000000","message":"Done","commit_id":"81adf6dc633f74104fcb386b971107578049ef09"},{"author":{"_account_id":8340,"name":"Craig Jellick","email":"craig.jellick@gmail.com","username":"cjellick"},"change_message_id":"d8fc65f26108627b973cf1eebf16dd42aa457633","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                  namespace of this atom)."},{"line_number":139,"context_line":"    :ivar inject: An *immutable* symbol \u003d\u003e value dictionary which specifies"},{"line_number":140,"context_line":"                  any initial symbols \u0026 values that should be automatically"},{"line_number":141,"context_line":"                  injected into the atoms scope before the atom execution"},{"line_number":142,"context_line":"                  commences (this allows for providing atom *local* values"},{"line_number":143,"context_line":"                  that do not need to be provided by other atoms)."},{"line_number":144,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_6d54cf55","line":141,"updated":"2014-08-12 14:33:04.000000000","message":"same as above: s/atoms scope/atom\u0027s scope","commit_id":"81adf6dc633f74104fcb386b971107578049ef09"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"6c1e1ba2bbc5c54c8624e42ecce3647d65a5401f","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                  namespace of this atom)."},{"line_number":139,"context_line":"    :ivar inject: An *immutable* symbol \u003d\u003e value dictionary which specifies"},{"line_number":140,"context_line":"                  any initial symbols \u0026 values that should be automatically"},{"line_number":141,"context_line":"                  injected into the atoms scope before the atom execution"},{"line_number":142,"context_line":"                  commences (this allows for providing atom *local* values"},{"line_number":143,"context_line":"                  that do not need to be provided by other atoms)."},{"line_number":144,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_3938529e","line":141,"in_reply_to":"baada198_6d54cf55","updated":"2014-08-12 16:14:41.000000000","message":"Done","commit_id":"81adf6dc633f74104fcb386b971107578049ef09"}],"taskflow/storage.py":[{"author":{"_account_id":8340,"name":"Craig Jellick","email":"craig.jellick@gmail.com","username":"cjellick"},"change_message_id":"d8fc65f26108627b973cf1eebf16dd42aa457633","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def ensure_retry(self, retry_name, retry_version\u003dNone,"},{"line_number":126,"context_line":"                     result_mapping\u003dNone):"},{"line_number":127,"context_line":"        \"\"\"Ensure that there is retrydetail that corresponds to the retry."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        If retry does not exist, adds a record for it. Added retry"},{"line_number":130,"context_line":"        will have PENDING state. Sets symbol mapping for the retry from"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_cd6f9bf8","line":127,"updated":"2014-08-12 14:33:04.000000000","message":"add \" a \" like you did above: \"...there is a retrydetail...\"","commit_id":"81adf6dc633f74104fcb386b971107578049ef09"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"6c1e1ba2bbc5c54c8624e42ecce3647d65a5401f","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def ensure_retry(self, retry_name, retry_version\u003dNone,"},{"line_number":126,"context_line":"                     result_mapping\u003dNone):"},{"line_number":127,"context_line":"        \"\"\"Ensure that there is retrydetail that corresponds to the retry."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        If retry does not exist, adds a record for it. Added retry"},{"line_number":130,"context_line":"        will have PENDING state. Sets symbol mapping for the retry from"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_395f72e5","line":127,"in_reply_to":"baada198_cd6f9bf8","updated":"2014-08-12 16:14:41.000000000","message":"U the best, thanks, someday I\u0027ll understand english grammar ;)","commit_id":"81adf6dc633f74104fcb386b971107578049ef09"},{"author":{"_account_id":8340,"name":"Craig Jellick","email":"craig.jellick@gmail.com","username":"cjellick"},"change_message_id":"d8fc65f26108627b973cf1eebf16dd42aa457633","unresolved":false,"context_lines":[{"line_number":420,"context_line":"    def inject_atom_args(self, atom_name, pairs):"},{"line_number":421,"context_line":"        \"\"\"Add *transient* values into storage for a specific atom only."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        This method injects a dictionary/pairs of bound symbols (symbols"},{"line_number":424,"context_line":"        with values) for an atom so that when that atom is scheduled for"},{"line_number":425,"context_line":"        execution it will have immediate access to these values."},{"line_number":426,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_b892a355","line":423,"updated":"2014-08-12 14:33:04.000000000","message":"\"dictionary/pairs\" confused me. Do you need \"dictionary/\"? Do you have that bit because it sets the default to an empty dictionary? More explicit would be something like:\n\"This method sets the default injected args to an empty dictionary and then updates the injected args with the provided pairs.\"","commit_id":"81adf6dc633f74104fcb386b971107578049ef09"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"6c1e1ba2bbc5c54c8624e42ecce3647d65a5401f","unresolved":false,"context_lines":[{"line_number":420,"context_line":"    def inject_atom_args(self, atom_name, pairs):"},{"line_number":421,"context_line":"        \"\"\"Add *transient* values into storage for a specific atom only."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        This method injects a dictionary/pairs of bound symbols (symbols"},{"line_number":424,"context_line":"        with values) for an atom so that when that atom is scheduled for"},{"line_number":425,"context_line":"        execution it will have immediate access to these values."},{"line_number":426,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_f9f7bace","line":423,"in_reply_to":"baada198_b892a355","updated":"2014-08-12 16:14:41.000000000","message":"It can be either so thats why pairs is ok.\n\nFor example:\n\n \u003e\u003e\u003e a \u003d dict()\n \u003e\u003e\u003e a.update([(1, 2), (2, 3)]) is ok\n \u003e\u003e\u003e a.update({\u0027b\u0027: \u0027c\u0027}) is also ok\n\nWill adjust it to try to make it more clear.","commit_id":"81adf6dc633f74104fcb386b971107578049ef09"},{"author":{"_account_id":8340,"name":"Craig Jellick","email":"craig.jellick@gmail.com","username":"cjellick"},"change_message_id":"d8fc65f26108627b973cf1eebf16dd42aa457633","unresolved":false,"context_lines":[{"line_number":509,"context_line":"                            \" for symbol named %r\", name)"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"    def fetch(self, name):"},{"line_number":512,"context_line":"        \"\"\"Fetch a symbols associated value.\"\"\""},{"line_number":513,"context_line":"        with self._lock.read_lock():"},{"line_number":514,"context_line":"            try:"},{"line_number":515,"context_line":"                indexes \u003d self._reverse_mapping[name]"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_98fb1f79","line":512,"updated":"2014-08-12 14:33:04.000000000","message":"s/symbols/symbol\u0027s","commit_id":"81adf6dc633f74104fcb386b971107578049ef09"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"6c1e1ba2bbc5c54c8624e42ecce3647d65a5401f","unresolved":false,"context_lines":[{"line_number":509,"context_line":"                            \" for symbol named %r\", name)"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"    def fetch(self, name):"},{"line_number":512,"context_line":"        \"\"\"Fetch a symbols associated value.\"\"\""},{"line_number":513,"context_line":"        with self._lock.read_lock():"},{"line_number":514,"context_line":"            try:"},{"line_number":515,"context_line":"                indexes \u003d self._reverse_mapping[name]"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_79daca4a","line":512,"in_reply_to":"baada198_98fb1f79","updated":"2014-08-12 16:14:41.000000000","message":"Done","commit_id":"81adf6dc633f74104fcb386b971107578049ef09"},{"author":{"_account_id":8340,"name":"Craig Jellick","email":"craig.jellick@gmail.com","username":"cjellick"},"change_message_id":"6a05424b16b4c6a7af5830d7962bb9e3b7d3d681","unresolved":false,"context_lines":[{"line_number":420,"context_line":"    def inject_atom_args(self, atom_name, pairs):"},{"line_number":421,"context_line":"        \"\"\"Add *transient* values into storage for a specific atom only."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        This method injects a pairs (or a dictionary) of bound symbols (symbols"},{"line_number":424,"context_line":"        with associated values) for an atom so that when that atom is scheduled"},{"line_number":425,"context_line":"        for execution it will have immediate access to these injected values."},{"line_number":426,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"baada198_79572a59","line":423,"updated":"2014-08-12 16:22:39.000000000","message":"s/a pairs/pairs","commit_id":"420e257f9866bfa3ceb4d3b9245db2ef2151c5a0"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"667a8a2759bcf54104b1c5d1febfb9e417776dbc","unresolved":false,"context_lines":[{"line_number":420,"context_line":"    def inject_atom_args(self, atom_name, pairs):"},{"line_number":421,"context_line":"        \"\"\"Add *transient* values into storage for a specific atom only."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        This method injects a pairs (or a dictionary) of bound symbols (symbols"},{"line_number":424,"context_line":"        with associated values) for an atom so that when that atom is scheduled"},{"line_number":425,"context_line":"        for execution it will have immediate access to these injected values."},{"line_number":426,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"baada198_34bbf7e4","line":423,"in_reply_to":"baada198_79572a59","updated":"2014-08-12 16:35:38.000000000","message":"Done","commit_id":"420e257f9866bfa3ceb4d3b9245db2ef2151c5a0"},{"author":{"_account_id":9648,"name":"Greg Hill","email":"greg.hill@rackspace.com","username":"jimbobhickville"},"change_message_id":"f1b04760ff847e9cec0ca32f8d994216778b9c39","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def ensure_retry(self, retry_name, retry_version\u003dNone,"},{"line_number":126,"context_line":"                     result_mapping\u003dNone):"},{"line_number":127,"context_line":"        \"\"\"Ensure that there is a retrydetail that corresponds to the retry."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        If retry does not exist, adds a record for it. Added retry"},{"line_number":130,"context_line":"        will have PENDING state. Sets symbol mapping for the retry from"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa69d971_9a91fdf3","line":127,"updated":"2016-01-04 21:56:33.000000000","message":"Missing a space in `retrydetail`","commit_id":"61ec1a7f08dfbd6b05d7172356a289670c104063"},{"author":{"_account_id":9648,"name":"Greg Hill","email":"greg.hill@rackspace.com","username":"jimbobhickville"},"change_message_id":"f1b04760ff847e9cec0ca32f8d994216778b9c39","unresolved":false,"context_lines":[{"line_number":431,"context_line":"        if atom_name not in self._atom_name_to_uuid:"},{"line_number":432,"context_line":"            raise exceptions.NotFound(\"Unknown atom name: %s\" % atom_name)"},{"line_number":433,"context_line":"        with self._lock.write_lock():"},{"line_number":434,"context_line":"            values \u003d self._injected_args.setdefault(atom_name, {})"},{"line_number":435,"context_line":"            values.update(pairs)"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def inject(self, pairs, transient\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa69d971_fa5d9947","line":434,"updated":"2016-01-04 21:56:33.000000000","message":"Should this be `self._injected_symbols` then?","commit_id":"61ec1a7f08dfbd6b05d7172356a289670c104063"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"bbaeead478a7df03a2a2829647e7253a8ba08bf9","unresolved":false,"context_lines":[{"line_number":431,"context_line":"        if atom_name not in self._atom_name_to_uuid:"},{"line_number":432,"context_line":"            raise exceptions.NotFound(\"Unknown atom name: %s\" % atom_name)"},{"line_number":433,"context_line":"        with self._lock.write_lock():"},{"line_number":434,"context_line":"            values \u003d self._injected_args.setdefault(atom_name, {})"},{"line_number":435,"context_line":"            values.update(pairs)"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def inject(self, pairs, transient\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa69d971_43707cdc","line":434,"in_reply_to":"fa69d971_fa5d9947","updated":"2016-01-04 23:22:31.000000000","message":"Right. Good idea.","commit_id":"61ec1a7f08dfbd6b05d7172356a289670c104063"}]}
