)]}'
{"couchbase/management/collections.py":[{"author":{"_account_id":1005035,"name":"Dimitris Christodoulou","email":"dimitris.christodoulou@couchbase.com","username":"DemetrisChr","avatars":[{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"5b4369101b88076e1624241ff29759f585799000","unresolved":true,"context_lines":[{"line_number":107,"context_line":"                                                                      **kwargs)"},{"line_number":108,"context_line":"        return self._impl.get_all_scopes(req)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    @OverloadManager.handle_overload(is_default_overload\u003dFalse,"},{"line_number":111,"context_line":"                                     overload_types\u003d[\u0027couchbase.common.management.collections.CollectionSpec\u0027,"},{"line_number":112,"context_line":"                                                     \u0027couchbase.management.options.CreateCollectionOptions\u0027])"},{"line_number":113,"context_line":"    def create_collection(self,"}],"source_content_type":"text/x-python","patch_set":6,"id":"a71f895f_9adfe37f","line":110,"updated":"2026-02-19 16:38:48.000000000","message":"I know that this is behavior that we already have, so it might be out of scope for these changes, but I was curious as to how much benefit we get from having the `OverloadManager`.\n\nCould a simpler approach be to do something like what\u0027s being described here? https://typing.python.org/en/latest/spec/overload.html. We would have 2 stubs with the `@overload` decorator, followed by a generic `def create_collection(*args, **kwargs)` that handles both.\n\nIt would be something like:\n```python\n@overload\ndef create_collection(self,\n                      collection: CollectionSpec,\n                      *options: CreateCollectionOptions,\n                      **kwargs: Dict[str, Any]\n                      ) -\u003e None:\n    ...\n\n@overload\ndef create_collection(self,\n                      scope_name: str,\n                      collection_name: str,\n                      settings: Optional[CreateCollectionSettings] \u003d None,\n                      *options: CreateCollectionOptions,\n                      **kwargs: Dict[str, Any]\n                      ) -\u003e None:\n    ...\n\n\ndef create_collection(self, *args, **kwargs):\n    # Handle args, kwargs\n```","commit_id":"cba60a089f1a4e3acaef6a642aec44f8d93d2586"},{"author":{"_account_id":1005035,"name":"Dimitris Christodoulou","email":"dimitris.christodoulou@couchbase.com","username":"DemetrisChr","avatars":[{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"2988a190d48b15267a1703845fe4ec65c6b0376e","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                                                                      **kwargs)"},{"line_number":108,"context_line":"        return self._impl.get_all_scopes(req)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    @OverloadManager.handle_overload(is_default_overload\u003dFalse,"},{"line_number":111,"context_line":"                                     overload_types\u003d[\u0027couchbase.common.management.collections.CollectionSpec\u0027,"},{"line_number":112,"context_line":"                                                     \u0027couchbase.management.options.CreateCollectionOptions\u0027])"},{"line_number":113,"context_line":"    def create_collection(self,"}],"source_content_type":"text/x-python","patch_set":6,"id":"0324b61e_6ea298a8","line":110,"in_reply_to":"a40dd8c2_393d2031","updated":"2026-02-24 12:18:45.000000000","message":"Thanks! Yeah, I think the new approach is cleaner.","commit_id":"cba60a089f1a4e3acaef6a642aec44f8d93d2586"},{"author":{"_account_id":1004568,"name":"Jared Casey","email":"jared.casey@couchbase.com","username":"thejcfactor","avatars":[{"url":"https://www.gravatar.com/avatar/20ac69da8a1fb4cc11bdd1c880389132.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/20ac69da8a1fb4cc11bdd1c880389132.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/20ac69da8a1fb4cc11bdd1c880389132.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/20ac69da8a1fb4cc11bdd1c880389132.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"beeba3c34f87f2791815341aef7f4d97f2dfa1ab","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                                                                      **kwargs)"},{"line_number":108,"context_line":"        return self._impl.get_all_scopes(req)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    @OverloadManager.handle_overload(is_default_overload\u003dFalse,"},{"line_number":111,"context_line":"                                     overload_types\u003d[\u0027couchbase.common.management.collections.CollectionSpec\u0027,"},{"line_number":112,"context_line":"                                                     \u0027couchbase.management.options.CreateCollectionOptions\u0027])"},{"line_number":113,"context_line":"    def create_collection(self,"}],"source_content_type":"text/x-python","patch_set":6,"id":"a40dd8c2_393d2031","line":110,"in_reply_to":"a71f895f_9adfe37f","updated":"2026-02-19 20:51:03.000000000","message":"Yah, that was something I had thought about, but kept the overload manager as I had previously worked through that in trying to prep for PS changes.  But, I think in the end using the type hints more straight forward.  I have made those changes in the latest patchset.  Will remove the OverloadManager in the PYCBC-1743 changes.","commit_id":"cba60a089f1a4e3acaef6a642aec44f8d93d2586"}],"couchbase/management/logic/collection_mgmt_impl.py":[{"author":{"_account_id":1005035,"name":"Dimitris Christodoulou","email":"dimitris.christodoulou@couchbase.com","username":"DemetrisChr","avatars":[{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/4291f7baa025a5558b77019a9c264ab2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"3a63b32d20130f1737fa82e6429a8a3d52d775ae","unresolved":true,"context_lines":[{"line_number":62,"context_line":"        \"\"\"**INTERNAL**\"\"\""},{"line_number":63,"context_line":"        res \u003d self._client_adapter.execute_mgmt_request(req)"},{"line_number":64,"context_line":"        scopes \u003d []"},{"line_number":65,"context_line":"        raw_scopes \u003d res.raw_result.get(\u0027scopes\u0027, None)"},{"line_number":66,"context_line":"        if raw_scopes:"},{"line_number":67,"context_line":"            for s in raw_scopes:"},{"line_number":68,"context_line":"                scope \u003d ScopeSpec(s[\u0027name\u0027], list())"}],"source_content_type":"text/x-python","patch_set":6,"id":"c53dd1ec_d935cf35","line":65,"updated":"2026-02-19 16:23:30.000000000","message":"Similar to my comment in the bucket management patch, I think it would be fair to assume that `\u0027scopes\u0027` always exists in the raw result, otherwise, we might accidentally obscure SDK bugs.\n\nBut I think here it\u0027s not as important, as `[]` is a valid response (as opposed to operations where `None` is returned if something is unexpectedly missing from the raw reult.","commit_id":"cba60a089f1a4e3acaef6a642aec44f8d93d2586"},{"author":{"_account_id":1004568,"name":"Jared Casey","email":"jared.casey@couchbase.com","username":"thejcfactor","avatars":[{"url":"https://www.gravatar.com/avatar/20ac69da8a1fb4cc11bdd1c880389132.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/20ac69da8a1fb4cc11bdd1c880389132.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/20ac69da8a1fb4cc11bdd1c880389132.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/20ac69da8a1fb4cc11bdd1c880389132.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"beeba3c34f87f2791815341aef7f4d97f2dfa1ab","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        \"\"\"**INTERNAL**\"\"\""},{"line_number":63,"context_line":"        res \u003d self._client_adapter.execute_mgmt_request(req)"},{"line_number":64,"context_line":"        scopes \u003d []"},{"line_number":65,"context_line":"        raw_scopes \u003d res.raw_result.get(\u0027scopes\u0027, None)"},{"line_number":66,"context_line":"        if raw_scopes:"},{"line_number":67,"context_line":"            for s in raw_scopes:"},{"line_number":68,"context_line":"                scope \u003d ScopeSpec(s[\u0027name\u0027], list())"}],"source_content_type":"text/x-python","patch_set":6,"id":"217ad14b_644dd555","line":65,"in_reply_to":"c53dd1ec_d935cf35","updated":"2026-02-19 20:51:03.000000000","message":"Done","commit_id":"cba60a089f1a4e3acaef6a642aec44f8d93d2586"}]}
