)]}'
{"doc/source/writing_and_deploying_python_storlets.rst":[{"author":{"_account_id":11317,"name":"Eran Rom","email":"eran@itsonlyme.name","username":"eranr"},"change_message_id":"77807a49a3475a84f87030818e3109fe3de296fa","unresolved":false,"context_lines":[{"line_number":88,"context_line":"-------------------------------------------------"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Storlets supports IPython/Jupyter Notebookd extension to upload your own"},{"line_number":91,"context_line":"storlet apps with following steps:"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"1. Enables storlets extension on your app"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da4df55a_c70d87e9","line":91,"range":{"start_line":91,"start_character":13,"end_line":91,"end_character":27},"updated":"2016-12-27 19:36:41.000000000","message":"with the following","commit_id":"6587386b292d0ae05b1f136190ed7958f85b710d"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"8fee5e25d0ad3ee898ada3b3277da04367c748c0","unresolved":false,"context_lines":[{"line_number":88,"context_line":"-------------------------------------------------"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Storlets supports IPython/Jupyter Notebookd extension to upload your own"},{"line_number":91,"context_line":"storlet apps with following steps:"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"1. Enables storlets extension on your app"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5201f7_6d1319b9","line":91,"range":{"start_line":91,"start_character":13,"end_line":91,"end_character":27},"in_reply_to":"da4df55a_c70d87e9","updated":"2017-01-04 05:19:17.000000000","message":"Done","commit_id":"6587386b292d0ae05b1f136190ed7958f85b710d"},{"author":{"_account_id":11317,"name":"Eran Rom","email":"eran@itsonlyme.name","username":"eranr"},"change_message_id":"77807a49a3475a84f87030818e3109fe3de296fa","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Storlets supports IPython/Jupyter Notebookd extension to upload your own"},{"line_number":91,"context_line":"storlet apps with following steps:"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"1. Enables storlets extension on your app"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da4df55a_97748836","line":92,"updated":"2016-12-27 19:36:41.000000000","message":"I would add the following as either step 1 or 2:\nto upload a storlet app to Swift one needs to provide the authentication information of the Storlet enabled Swift account. This is done by setting environment variables similar to those used by swift client. The exact variables that need to be set are dependent on the auth middleware used and the auth protocol version. For more details please refer to:\nhttp://docs.openstack.org/developer/python-swiftclient/cli.html#authentication\n\nIn case you are working with an s2aio,sh installation just add a new cell with the following:\nimport os\nos.environ[\u0027OS_AUTH_VERSION\u0027] \u003d \u00273\u0027\nos.environ[\u0027OS_AUTH_URL\u0027] \u003d \u0027http://127.0.0.1:5000/v3\u0027\nos.environ[\u0027OS_USERNAME\u0027] \u003d \u0027tester\u0027\nos.environ[\u0027OS_PASSWORD\u0027] \u003d \u0027testing\u0027\nos.environ[\u0027OS_USER_DOMAIN_NAME\u0027] \u003d \u0027default\u0027\nos.environ[\u0027OS_PROJECT_DOMAIN_NAME\u0027] \u003d \u0027default\u0027\nos.environ[\u0027OS_PROJECT_NAME\u0027] \u003d \u0027test\u0027","commit_id":"6587386b292d0ae05b1f136190ed7958f85b710d"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"8fee5e25d0ad3ee898ada3b3277da04367c748c0","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Storlets supports IPython/Jupyter Notebookd extension to upload your own"},{"line_number":91,"context_line":"storlet apps with following steps:"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"1. Enables storlets extension on your app"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5201f7_ed78e9c6","line":92,"in_reply_to":"da4df55a_97748836","updated":"2017-01-04 05:19:17.000000000","message":"Done","commit_id":"6587386b292d0ae05b1f136190ed7958f85b710d"},{"author":{"_account_id":11317,"name":"Eran Rom","email":"eran@itsonlyme.name","username":"eranr"},"change_message_id":"77807a49a3475a84f87030818e3109fe3de296fa","unresolved":false,"context_lines":[{"line_number":113,"context_line":"          :param in_files: a list of StorletInputFile"},{"line_number":114,"context_line":"          :param out_files: a list of StorletOutputFile"},{"line_number":115,"context_line":"          :param params: a dict of request parameters"},{"line_number":116,"context_line":"          \"\"\""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"3. If you want to run the app with actual data set, please specify some options"},{"line_number":119,"context_line":"   like:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da4df55a_97aba874","line":116,"updated":"2016-12-27 19:36:41.000000000","message":"I would either add a minimal code example or point to the python simple storlet here","commit_id":"6587386b292d0ae05b1f136190ed7958f85b710d"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"8fee5e25d0ad3ee898ada3b3277da04367c748c0","unresolved":false,"context_lines":[{"line_number":113,"context_line":"          :param in_files: a list of StorletInputFile"},{"line_number":114,"context_line":"          :param out_files: a list of StorletOutputFile"},{"line_number":115,"context_line":"          :param params: a dict of request parameters"},{"line_number":116,"context_line":"          \"\"\""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"3. If you want to run the app with actual data set, please specify some options"},{"line_number":119,"context_line":"   like:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5201f7_2d08312c","line":116,"in_reply_to":"da4df55a_97aba874","updated":"2017-01-04 05:19:17.000000000","message":"Done","commit_id":"6587386b292d0ae05b1f136190ed7958f85b710d"}],"storlets/tools/extensions/ipython.py":[{"author":{"_account_id":11317,"name":"Eran Rom","email":"eran@itsonlyme.name","username":"eranr"},"change_message_id":"151cf6850f51fd30d0aa1b69a25cf0c5e18f7eed","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @magic_arguments.magic_arguments()"},{"line_number":90,"context_line":"    @magic_arguments.argument("},{"line_number":91,"context_line":"        \u0027container_obj\u0027, type\u003dunicode_type,"},{"line_number":92,"context_line":"        help\u003d\u0027container/object path to upload\u0027"},{"line_number":93,"context_line":"    )"},{"line_number":94,"context_line":"    @cell_magic"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_5431a30a","line":91,"updated":"2017-01-03 09:18:40.000000000","message":"upload file is super useful!\nFew comments:\n1. Does it make sense to add an optional local path instead of the cell\u0027s content, so that we support both? (just a future comment)\n2. Should the content-type be an optional parameter? (again - future comment)\n3. Do we want to allow optional metadata, e..g the way I have done with invocation parameters using the shell user_ns? (future comment)","commit_id":"6587386b292d0ae05b1f136190ed7958f85b710d"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"d88e8f8caddb84d3f87b4484d417db9714cccfd2","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @magic_arguments.magic_arguments()"},{"line_number":90,"context_line":"    @magic_arguments.argument("},{"line_number":91,"context_line":"        \u0027container_obj\u0027, type\u003dunicode_type,"},{"line_number":92,"context_line":"        help\u003d\u0027container/object path to upload\u0027"},{"line_number":93,"context_line":"    )"},{"line_number":94,"context_line":"    @cell_magic"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_5800d1aa","line":91,"in_reply_to":"ba5201f7_5431a30a","updated":"2017-01-04 05:39:29.000000000","message":"Ah, this is from my attempt to test the ipython syntax/semantics and forget to remove :P.\n\nEither is fine to support some line extensions for swift native api but it could be nice that it is in swift upstream or in some other repos as related projects with swift.\n\nHow do you think of?","commit_id":"6587386b292d0ae05b1f136190ed7958f85b710d"},{"author":{"_account_id":11317,"name":"Eran Rom","email":"eran@itsonlyme.name","username":"eranr"},"change_message_id":"151cf6850f51fd30d0aa1b69a25cf0c5e18f7eed","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    )"},{"line_number":122,"context_line":"    @magic_arguments.argument("},{"line_number":123,"context_line":"        \u0027--input\u0027, type\u003dunicode_type, default\u003d\u0027\u0027,"},{"line_number":124,"context_line":"        help\u003d\u0027Specifiy input file or string for dry run, \u0027"},{"line_number":125,"context_line":"             \u0027this option regard the string starting from \"path:\" as path\u0027"},{"line_number":126,"context_line":"             \u0027otherwise string type.\u0027"},{"line_number":127,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_4f74b09b","line":124,"updated":"2017-01-03 09:18:40.000000000","message":"How about:\nhelp\u003d\u0027Specifiy input file or string for dry run\u0027 \u003c---same as before\n         \u0027When specifying an input file, must be of the form \"path:c/o\"\u0027\n         \u0027When specifying a string for dry run must not start with \"path:\"\u0027","commit_id":"6587386b292d0ae05b1f136190ed7958f85b710d"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"d88e8f8caddb84d3f87b4484d417db9714cccfd2","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    )"},{"line_number":122,"context_line":"    @magic_arguments.argument("},{"line_number":123,"context_line":"        \u0027--input\u0027, type\u003dunicode_type, default\u003d\u0027\u0027,"},{"line_number":124,"context_line":"        help\u003d\u0027Specifiy input file or string for dry run, \u0027"},{"line_number":125,"context_line":"             \u0027this option regard the string starting from \"path:\" as path\u0027"},{"line_number":126,"context_line":"             \u0027otherwise string type.\u0027"},{"line_number":127,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_b8f45df2","line":124,"in_reply_to":"ba5201f7_4f74b09b","updated":"2017-01-04 05:39:29.000000000","message":"Thanks for the comment but it looks like a bit differ from my intent because the path format can be used both for swift and for local file at dry-run so \"path:\u003clocal path\u003e\" or \"paht: c/o\"\n\ni.e. likely:\n When specifying an input file, must starts with \"path:\" (e.g. either \"path: c/o\" or \"path: \u003clocal file path\u003e\")\n\nHowever, now I think we don\u0027t put the dry run into this patch but in the future so make it simply just a line you suggested.","commit_id":"6587386b292d0ae05b1f136190ed7958f85b710d"},{"author":{"_account_id":11317,"name":"Eran Rom","email":"eran@itsonlyme.name","username":"eranr"},"change_message_id":"151cf6850f51fd30d0aa1b69a25cf0c5e18f7eed","unresolved":false,"context_lines":[{"line_number":125,"context_line":"             \u0027this option regard the string starting from \"path:\" as path\u0027"},{"line_number":126,"context_line":"             \u0027otherwise string type.\u0027"},{"line_number":127,"context_line":"    )"},{"line_number":128,"context_line":"    @magic_arguments.argument("},{"line_number":129,"context_line":"        \u0027--print-result\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"},{"line_number":130,"context_line":"        help\u003d\u0027Print result objet to stdout. Note that this may be a large\u0027"},{"line_number":131,"context_line":"             \u0027binary depends on your app\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_2f1bec73","line":128,"updated":"2017-01-03 09:18:40.000000000","message":"In the future we can add another option of --return-result which returns the iterator, again similar to what I have done with the get","commit_id":"6587386b292d0ae05b1f136190ed7958f85b710d"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"d88e8f8caddb84d3f87b4484d417db9714cccfd2","unresolved":false,"context_lines":[{"line_number":125,"context_line":"             \u0027this option regard the string starting from \"path:\" as path\u0027"},{"line_number":126,"context_line":"             \u0027otherwise string type.\u0027"},{"line_number":127,"context_line":"    )"},{"line_number":128,"context_line":"    @magic_arguments.argument("},{"line_number":129,"context_line":"        \u0027--print-result\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"},{"line_number":130,"context_line":"        help\u003d\u0027Print result objet to stdout. Note that this may be a large\u0027"},{"line_number":131,"context_line":"             \u0027binary depends on your app\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_783835a1","line":128,"in_reply_to":"ba5201f7_2f1bec73","updated":"2017-01-04 05:39:29.000000000","message":"I think you mean the functionality your patch tries to get and it should be super great feature but I think it could be in the future anyway.","commit_id":"6587386b292d0ae05b1f136190ed7958f85b710d"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b5376e135d04e19af09882b244b0120df5a4078b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            auth_password \u003d os.environ[\u0027OS_PASSWORD\u0027]"},{"line_number":55,"context_line":"        except KeyError:"},{"line_number":56,"context_line":"            print(\"You need to set OS_AUTH_URL, OS_USERNAME, OS_PASSWORD\""},{"line_number":57,"context_line":"                  \"for Swift authentication\")"},{"line_number":58,"context_line":"        auth_os_options \u003d {"},{"line_number":59,"context_line":"            \u0027user_domain_name\u0027: os.environ.get("},{"line_number":60,"context_line":"                \u0027OS_USER_DOMAIN_NAME\u0027, \u0027Default\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_1d0626ce","line":57,"updated":"2017-01-04 15:41:11.000000000","message":"Don\u0027t you need to raise Exception here?\n(Maybe this causes NameError in L66)","commit_id":"5924b999380d4732dc28eae10eaf1c28174a6938"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"069a6e71b07076514596aa964c56095e50b2fa93","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            auth_password \u003d os.environ[\u0027OS_PASSWORD\u0027]"},{"line_number":55,"context_line":"        except KeyError:"},{"line_number":56,"context_line":"            print(\"You need to set OS_AUTH_URL, OS_USERNAME, OS_PASSWORD\""},{"line_number":57,"context_line":"                  \"for Swift authentication\")"},{"line_number":58,"context_line":"        auth_os_options \u003d {"},{"line_number":59,"context_line":"            \u0027user_domain_name\u0027: os.environ.get("},{"line_number":60,"context_line":"                \u0027OS_USER_DOMAIN_NAME\u0027, \u0027Default\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_4c91cc46","line":57,"in_reply_to":"ba5201f7_1d0626ce","updated":"2017-01-05 04:35:37.000000000","message":"correct, thanks.\n\nAnd probably UsageError is suitable instead of just `raise`","commit_id":"5924b999380d4732dc28eae10eaf1c28174a6938"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b5376e135d04e19af09882b244b0120df5a4078b","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                \u0027OS_USER_DOMAIN_NAME\u0027, \u0027Default\u0027),"},{"line_number":61,"context_line":"            \u0027project_domain_name\u0027: os.environ.get("},{"line_number":62,"context_line":"                \u0027OS_PROJECT_DOMAIN_NAME\u0027, \u0027Default\u0027),"},{"line_number":63,"context_line":"            \u0027project_name\u0027: os.environ.get("},{"line_number":64,"context_line":"                \u0027OS_PROJECT_NAME\u0027, \u0027Default\u0027),"},{"line_number":65,"context_line":"        }"},{"line_number":66,"context_line":"        return Connection(auth_url, auth_user, auth_password,"},{"line_number":67,"context_line":"                          os_options\u003dauth_os_options,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_bd6efa93","line":64,"range":{"start_line":63,"start_character":12,"end_line":64,"end_character":45},"updated":"2017-01-04 15:41:11.000000000","message":"As far as I know, project_name should be always given in credentials, so it seems better to remove default value for it.","commit_id":"5924b999380d4732dc28eae10eaf1c28174a6938"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"069a6e71b07076514596aa964c56095e50b2fa93","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                \u0027OS_USER_DOMAIN_NAME\u0027, \u0027Default\u0027),"},{"line_number":61,"context_line":"            \u0027project_domain_name\u0027: os.environ.get("},{"line_number":62,"context_line":"                \u0027OS_PROJECT_DOMAIN_NAME\u0027, \u0027Default\u0027),"},{"line_number":63,"context_line":"            \u0027project_name\u0027: os.environ.get("},{"line_number":64,"context_line":"                \u0027OS_PROJECT_NAME\u0027, \u0027Default\u0027),"},{"line_number":65,"context_line":"        }"},{"line_number":66,"context_line":"        return Connection(auth_url, auth_user, auth_password,"},{"line_number":67,"context_line":"                          os_options\u003dauth_os_options,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_0cda6417","line":64,"range":{"start_line":63,"start_character":12,"end_line":64,"end_character":45},"in_reply_to":"ba5201f7_bd6efa93","updated":"2017-01-05 04:35:37.000000000","message":"Thanks for the info. Ok, let\u0027s move this to upper try/except block.","commit_id":"5924b999380d4732dc28eae10eaf1c28174a6938"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b5376e135d04e19af09882b244b0120df5a4078b","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            auth_password \u003d os.environ[\u0027ST_KEY\u0027]"},{"line_number":78,"context_line":"        except KeyError:"},{"line_number":79,"context_line":"            print(\"You need to set ST_AUTH, ST_USER, ST_KEY for\""},{"line_number":80,"context_line":"                  \"Swift authentication\")"},{"line_number":81,"context_line":"        return Connection(auth_url, auth_user, auth_password)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_5d27ce63","line":80,"updated":"2017-01-04 15:41:11.000000000","message":"ditto","commit_id":"5924b999380d4732dc28eae10eaf1c28174a6938"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"069a6e71b07076514596aa964c56095e50b2fa93","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            auth_password \u003d os.environ[\u0027ST_KEY\u0027]"},{"line_number":78,"context_line":"        except KeyError:"},{"line_number":79,"context_line":"            print(\"You need to set ST_AUTH, ST_USER, ST_KEY for\""},{"line_number":80,"context_line":"                  \"Swift authentication\")"},{"line_number":81,"context_line":"        return Connection(auth_url, auth_user, auth_password)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_ecf7e088","line":80,"in_reply_to":"ba5201f7_5d27ce63","updated":"2017-01-05 04:35:37.000000000","message":"Done","commit_id":"5924b999380d4732dc28eae10eaf1c28174a6938"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b5376e135d04e19af09882b244b0120df5a4078b","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    )"},{"line_number":94,"context_line":"    @cell_magic"},{"line_number":95,"context_line":"    def uploadfile(self, line, cell):"},{"line_number":96,"context_line":"        \"\"\"Upload fthe contents of the cell to OpenStack Swift."},{"line_number":97,"context_line":"        \"\"\""},{"line_number":98,"context_line":"        args \u003d magic_arguments.parse_argstring(self.uploadfile, line)"},{"line_number":99,"context_line":"        container, obj \u003d args.container_obj.split(\u0027/\u0027, 1)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_3dd76a24","line":96,"range":{"start_line":96,"start_character":18,"end_line":96,"end_character":19},"updated":"2017-01-04 15:41:11.000000000","message":"?","commit_id":"5924b999380d4732dc28eae10eaf1c28174a6938"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"069a6e71b07076514596aa964c56095e50b2fa93","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    )"},{"line_number":94,"context_line":"    @cell_magic"},{"line_number":95,"context_line":"    def uploadfile(self, line, cell):"},{"line_number":96,"context_line":"        \"\"\"Upload fthe contents of the cell to OpenStack Swift."},{"line_number":97,"context_line":"        \"\"\""},{"line_number":98,"context_line":"        args \u003d magic_arguments.parse_argstring(self.uploadfile, line)"},{"line_number":99,"context_line":"        container, obj \u003d args.container_obj.split(\u0027/\u0027, 1)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_8c33b461","line":96,"range":{"start_line":96,"start_character":18,"end_line":96,"end_character":19},"in_reply_to":"ba5201f7_3dd76a24","updated":"2017-01-05 04:35:37.000000000","message":"my bad. done.","commit_id":"5924b999380d4732dc28eae10eaf1c28174a6938"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b5376e135d04e19af09882b244b0120df5a4078b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        args \u003d magic_arguments.parse_argstring(self.uploadfile, line)"},{"line_number":99,"context_line":"        container, obj \u003d args.container_obj.split(\u0027/\u0027, 1)"},{"line_number":100,"context_line":"        conn \u003d get_swift_connection()"},{"line_number":101,"context_line":"        conn.put_object(args.container, obj, cell,"},{"line_number":102,"context_line":"                        {\u0027Content-Type\u0027: \u0027application/python\u0027})"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @magic_arguments.magic_arguments()"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_1da2a6ae","line":101,"range":{"start_line":101,"start_character":24,"end_line":101,"end_character":38},"updated":"2017-01-04 15:41:11.000000000","message":"I\u0027m not so sure about IPython, but just \u0027container\u0027 seems to work here.","commit_id":"5924b999380d4732dc28eae10eaf1c28174a6938"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"069a6e71b07076514596aa964c56095e50b2fa93","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        args \u003d magic_arguments.parse_argstring(self.uploadfile, line)"},{"line_number":99,"context_line":"        container, obj \u003d args.container_obj.split(\u0027/\u0027, 1)"},{"line_number":100,"context_line":"        conn \u003d get_swift_connection()"},{"line_number":101,"context_line":"        conn.put_object(args.container, obj, cell,"},{"line_number":102,"context_line":"                        {\u0027Content-Type\u0027: \u0027application/python\u0027})"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @magic_arguments.magic_arguments()"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_ec3e0027","line":101,"range":{"start_line":101,"start_character":24,"end_line":101,"end_character":38},"in_reply_to":"ba5201f7_1da2a6ae","updated":"2017-01-05 04:35:37.000000000","message":"oops, good catch! done.","commit_id":"5924b999380d4732dc28eae10eaf1c28174a6938"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b5376e135d04e19af09882b244b0120df5a4078b","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    )"},{"line_number":122,"context_line":"    @magic_arguments.argument("},{"line_number":123,"context_line":"        \u0027--input\u0027, type\u003dunicode_type, default\u003d\u0027\u0027,"},{"line_number":124,"context_line":"        help\u003d\u0027Specifiy input object path that must be of the form \"path: c/o\"\u0027"},{"line_number":125,"context_line":"    )"},{"line_number":126,"context_line":"    @magic_arguments.argument("},{"line_number":127,"context_line":"        \u0027--print-result\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_dde65eb3","line":124,"range":{"start_line":124,"start_character":72,"end_line":124,"end_character":73},"updated":"2017-01-04 15:41:11.000000000","message":"This is not consistent with L160.","commit_id":"5924b999380d4732dc28eae10eaf1c28174a6938"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"069a6e71b07076514596aa964c56095e50b2fa93","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    )"},{"line_number":122,"context_line":"    @magic_arguments.argument("},{"line_number":123,"context_line":"        \u0027--input\u0027, type\u003dunicode_type, default\u003d\u0027\u0027,"},{"line_number":124,"context_line":"        help\u003d\u0027Specifiy input object path that must be of the form \"path: c/o\"\u0027"},{"line_number":125,"context_line":"    )"},{"line_number":126,"context_line":"    @magic_arguments.argument("},{"line_number":127,"context_line":"        \u0027--print-result\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_18d1bbfa","line":124,"range":{"start_line":124,"start_character":72,"end_line":124,"end_character":73},"in_reply_to":"ba5201f7_dde65eb3","updated":"2017-01-05 04:35:37.000000000","message":"good call. thanks. done.","commit_id":"5924b999380d4732dc28eae10eaf1c28174a6938"}]}
