)]}'
{"pyeclib/core.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8e9e11b9d7a0deb306506b6ca24f4c1bb6a545b4","unresolved":true,"context_lines":[{"line_number":30,"context_line":"import pyeclib_c"},{"line_number":31,"context_line":"import sys"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"pyver \u003d float(\u0027%s.%s\u0027 % sys.version_info[:2])"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class ECPyECLibDriver(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1731d2e8_977c3c10","side":"PARENT","line":33,"updated":"2025-08-05 23:04:25.000000000","message":"Missed when cleaning out all the py2-compat stuff.","commit_id":"80dc51bf6907bff9e48ff02b47a1bb880c1c5109"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8e9e11b9d7a0deb306506b6ca24f4c1bb6a545b4","unresolved":true,"context_lines":[{"line_number":251,"context_line":"                \"Decode requires %d fragments, %d fragments were given\" %"},{"line_number":252,"context_line":"                (len(fragment_payloads), self.k))"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        ret_string \u003d b\u0027\u0027"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        for fragment in fragment_payloads:"},{"line_number":257,"context_line":"            ret_string +\u003d fragment"}],"source_content_type":"text/x-python","patch_set":1,"id":"832b02b1_c8614f90","line":254,"updated":"2025-08-05 23:04:25.000000000","message":"Pretty sure this has been broken ever since we added py3 support -- I wonder if we could just remove `ECStripingDriver`.\n\nI think it was done so we could demonstrate how to use the `library_import_str` arg to `ECDriver`... but I\u0027m not really convinced anyone uses *that*, either.","commit_id":"9a97336bc25eca7087838a842f274aa3cb64ecc9"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"2c1e2ea26801dc6f80aa17045ea15e268f60a72b","unresolved":true,"context_lines":[{"line_number":251,"context_line":"                \"Decode requires %d fragments, %d fragments were given\" %"},{"line_number":252,"context_line":"                (len(fragment_payloads), self.k))"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        ret_string \u003d b\u0027\u0027"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        for fragment in fragment_payloads:"},{"line_number":257,"context_line":"            ret_string +\u003d fragment"}],"source_content_type":"text/x-python","patch_set":1,"id":"ee689cdc_7637ff5b","line":254,"in_reply_to":"832b02b1_c8614f90","updated":"2025-08-06 16:38:58.000000000","message":"So, it\u0027s been broken longer than that -- since [`396807d8`](https://github.com/openstack/pyeclib/commit/396807d83f590a38c530ba890c4d4a8735ede882), it fails roughly like\n```\n\u003e\u003e\u003e ec \u003d pyeclib.ec_iface.ECDriver(library_import_str\u003d\"pyeclib.core.ECStripingDriver\", k\u003d8, m\u003d0)\nTraceback (most recent call last):\n  File \"/home/tburke/code/pyeclib/src/pyeclib/utils.py\", line 35, in positive_int_value\n    raise ValueError\nValueError\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/home/tburke/code/pyeclib/src/pyeclib/ec_iface.py\", line 148, in __init__\n    self.m \u003d positive_int_value(kwargs[\u0027m\u0027])\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/home/tburke/code/pyeclib/src/pyeclib/utils.py\", line 39, in positive_int_value\n    raise ValueError(\u0027Must be an integer \u003e 0, not \"%s\".\u0027 % param)\nValueError: Must be an integer \u003e 0, not \"0\".\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\n  File \"/home/tburke/code/pyeclib/src/pyeclib/ec_iface.py\", line 150, in __init__\n    raise ECDriverError(\npyeclib.ec_iface.ECDriverError: Invalid number of parity fragments (m)\n\n```","commit_id":"9a97336bc25eca7087838a842f274aa3cb64ecc9"}],"pyeclib/ec_iface.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8e9e11b9d7a0deb306506b6ca24f4c1bb6a545b4","unresolved":true,"context_lines":[{"line_number":166,"context_line":"                    \"%s is not a valid checksum type for PyECLib!\""},{"line_number":167,"context_line":"                    % chksum_type)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        self.validate \u003d kwargs.get(\u0027validate\u0027, False)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        if self.hd \u003d\u003d -1:"},{"line_number":172,"context_line":"            self.hd \u003d self.m"}],"source_content_type":"text/x-python","patch_set":1,"id":"56727797_f45bfe52","line":169,"updated":"2025-08-05 23:04:25.000000000","message":"I never really liked the arg parsing here. I still don\u0027t like it. But at least I can make this work with the typing.","commit_id":"9a97336bc25eca7087838a842f274aa3cb64ecc9"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"354d40be31d17782f060d925ac197ec5a080ae6d","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                    \"%s is not a valid checksum type for PyECLib!\""},{"line_number":167,"context_line":"                    % chksum_type)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        self.validate \u003d kwargs.get(\u0027validate\u0027, False)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        if self.hd \u003d\u003d -1:"},{"line_number":172,"context_line":"            self.hd \u003d self.m"}],"source_content_type":"text/x-python","patch_set":1,"id":"5070d8fd_1c7d1da0","line":169,"in_reply_to":"56727797_f45bfe52","updated":"2025-08-27 20:52:53.000000000","message":"Done","commit_id":"9a97336bc25eca7087838a842f274aa3cb64ecc9"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8e9e11b9d7a0deb306506b6ca24f4c1bb6a545b4","unresolved":true,"context_lines":[{"line_number":210,"context_line":"                \"in %s: %s\" % (self.library_import_str, missing_methods))"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def __repr__(self):"},{"line_number":213,"context_line":"        if self.ec_type is None:"},{"line_number":214,"context_line":"            ec_type \u003d \u0027None\u0027"},{"line_number":215,"context_line":"        elif self.ec_type.name \u003d\u003d \u0027flat_xor_hd\u0027:"},{"line_number":216,"context_line":"            ec_type \u003d f\u0027flat_xor_hd_{self.hd}\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad9248b_7a775bee","line":213,"updated":"2025-08-05 23:04:25.000000000","message":"Oops -- we missed this case before.","commit_id":"9a97336bc25eca7087838a842f274aa3cb64ecc9"}],"pyeclib/utils.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8e9e11b9d7a0deb306506b6ca24f4c1bb6a545b4","unresolved":true,"context_lines":[{"line_number":31,"context_line":"    try:"},{"line_number":32,"context_line":"        value \u003d int(param)"},{"line_number":33,"context_line":"        assert value \u003e 0"},{"line_number":34,"context_line":"    except (TypeError, ValueError, AssertionError):"},{"line_number":35,"context_line":"        # Handle: TypeError for \u0027None\u0027, ValueError for non-int strings"},{"line_number":36,"context_line":"        # and AssertionError for values \u003c\u003d 0"},{"line_number":37,"context_line":"        raise ValueError(\u0027Must be an integer \u003e 0, not \"%s\".\u0027 % param)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1e8124d3_6babfd0d","side":"PARENT","line":34,"range":{"start_line":34,"start_character":35,"end_line":34,"end_character":49},"updated":"2025-08-05 23:04:25.000000000","message":"People never seem to remember about `python3 -O`","commit_id":"80dc51bf6907bff9e48ff02b47a1bb880c1c5109"}],"test/test_pyeclib_c.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8e9e11b9d7a0deb306506b6ca24f4c1bb6a545b4","unresolved":true,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def __init__(self):"},{"line_number":41,"context_line":"        self.start_time \u003d 0.0"},{"line_number":42,"context_line":"        self.end_time \u003d 0.0"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def start(self):"},{"line_number":45,"context_line":"        self.start_time \u003d time.time()"}],"source_content_type":"text/x-python","patch_set":1,"id":"27e968d3_daff4820","line":42,"updated":"2025-08-05 23:04:25.000000000","message":"I\u0027m still torn about whether we want type annotations for tests. This cleaned up two or three errors when I tried running `mypy --check-untyped-defs test` though.","commit_id":"9a97336bc25eca7087838a842f274aa3cb64ecc9"}]}
