)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a01be02d579b36343b13ef5e1eb54041c0cfaab0","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Previously, this would trip TypeErrors on py310:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    TypeError: \u0027S3Timestamp\u0027 object cannot be interpreted as an integer"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I124c1957264c80d28a6b3e852d042cbc8468939c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9e3131da_657606c2","line":11,"updated":"2022-07-26 04:38:17.000000000","message":"The really stupid thing is that we provide a __int__()...","commit_id":"bc3625142cccd1af00ef0394e3abba1db6764acc"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"41705fc44fb60cd79a855d4f322ca7c9c0ba1672","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Previously, this would trip TypeErrors on py310:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    TypeError: \u0027S3Timestamp\u0027 object cannot be interpreted as an integer"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I124c1957264c80d28a6b3e852d042cbc8468939c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1fac677e_de80a0c9","line":11,"in_reply_to":"9e3131da_657606c2","updated":"2022-07-26 05:11:31.000000000","message":"Whoa -- https://docs.python.org/3/reference/datamodel.html#object.__index__ (which was new way back in py25! 🤯)\n\n \u003e\u003e\u003e from swift.common.middleware.s3api.utils import S3Timestamp\n \u003e\u003e\u003e from email.utils import formatdate\n \u003e\u003e\u003e formatdate(S3Timestamp.now())\n Traceback (most recent call last):\n   File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\n   File \"/usr/lib64/python3.10/email/utils.py\", line 149, in formatdate\n     dt \u003d datetime.datetime.utcfromtimestamp(timeval)\n TypeError: \u0027S3Timestamp\u0027 object cannot be interpreted as an integer\n \u003e\u003e\u003e S3Timestamp.__index__ \u003d S3Timestamp.__int__\n \u003e\u003e\u003e formatdate(S3Timestamp.now())\n \u0027Tue, 26 Jul 2022 04:49:15 -0000\u0027\n\nI think I managed to trace this particular breakage to https://github.com/python/cpython/commit/578c3955 and https://github.com/python/cpython/issues/80229 -- tl;dr: deprecations are hard.","commit_id":"bc3625142cccd1af00ef0394e3abba1db6764acc"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"change_message_id":"57ae0655450185275ebd1e6c1d2db202c4db60c7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e6ae1652_3787608a","updated":"2022-07-28 20:37:34.000000000","message":"I tested with my vsaio, this MR fixed the S3Timestamp type errors.","commit_id":"bc3625142cccd1af00ef0394e3abba1db6764acc"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"41705fc44fb60cd79a855d4f322ca7c9c0ba1672","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"93ec16ac_dda8546e","updated":"2022-07-26 05:11:31.000000000","message":"Probably better to fix our Timestamp class.","commit_id":"bc3625142cccd1af00ef0394e3abba1db6764acc"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"21f3650d62f6475db47be3486d970a0eec7ac96d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0cd59713_abe43477","updated":"2022-07-26 16:19:46.000000000","message":"The more I think about it, we probably *shouldn\u0027t* update Timestamp. The __index__() method is for\n\n\u003e losslessly convert[ing] the numeric object to an integer object\n\nand implementing it for Timestamp would require the loss of sub-second resolution, so it\u0027s totally appropriate that we don\u0027t implement it (similar to float or Decimal or Fraction).","commit_id":"bc3625142cccd1af00ef0394e3abba1db6764acc"}]}
