)]}'
{"keystoneauth1/identity/generic/base.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c7d75330dc9b008ebbdf35c604478f104540807d","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        # NOTE(jamielennox): implemented here is just a way to make sure that"},{"line_number":198,"context_line":"        # something overrides this method. We don\u0027t want the base"},{"line_number":199,"context_line":"        # implementation to respond with a dict without the subclass modifying"},{"line_number":200,"context_line":"        # it to add their own data in case the subclass doesn\u0027t support caching"},{"line_number":201,"context_line":"        if not implemented:"},{"line_number":202,"context_line":"            raise NotImplemented()"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_8f61a2d5","line":200,"updated":"2016-10-03 21:04:45.000000000","message":"Can\u0027t we do the same thing with abstract base classes?","commit_id":"48e370394c543642b417dd6df2ecf118ef742881"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"85164d78dd4ad8de84bf9684c0d63d0427fea905","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        # NOTE(jamielennox): implemented here is just a way to make sure that"},{"line_number":198,"context_line":"        # something overrides this method. We don\u0027t want the base"},{"line_number":199,"context_line":"        # implementation to respond with a dict without the subclass modifying"},{"line_number":200,"context_line":"        # it to add their own data in case the subclass doesn\u0027t support caching"},{"line_number":201,"context_line":"        if not implemented:"},{"line_number":202,"context_line":"            raise NotImplemented()"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a95cdbc_23680587","line":200,"in_reply_to":"1a95cdbc_2a839699","updated":"2016-10-06 23:09:19.000000000","message":"If we add a new abstractmethod to a class then anything outside the library that implements that class is suddenly non-conforming to the ABC. So we\u0027ve only ever been able to add abstractmethods when initially defining an object and then we have to handle the case where it may or may not be implemented.\n\nAlso i can see times where you don\u0027t need to implement this method. I kind of need this here as like a base list for the higher ups. \n\nI could do the same thing by like get_cache_id_elements_real or something which you can override (v3 plugins does something like this), but here it just seemed eaiser to pass a flag.","commit_id":"48e370394c543642b417dd6df2ecf118ef742881"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ae79555615248d4a4e6801ee7ed0cce4634d32e6","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        # NOTE(jamielennox): implemented here is just a way to make sure that"},{"line_number":198,"context_line":"        # something overrides this method. We don\u0027t want the base"},{"line_number":199,"context_line":"        # implementation to respond with a dict without the subclass modifying"},{"line_number":200,"context_line":"        # it to add their own data in case the subclass doesn\u0027t support caching"},{"line_number":201,"context_line":"        if not implemented:"},{"line_number":202,"context_line":"            raise NotImplemented()"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a95cdbc_2a839699","line":200,"in_reply_to":"3a98d1f4_6593955b","updated":"2016-10-06 13:48:10.000000000","message":"We can\u0027t? I think we\u0027ve done that in other places before?","commit_id":"48e370394c543642b417dd6df2ecf118ef742881"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"701ea4120dc0269db8935560e1f7055d33d32dc1","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        # NOTE(jamielennox): implemented here is just a way to make sure that"},{"line_number":198,"context_line":"        # something overrides this method. We don\u0027t want the base"},{"line_number":199,"context_line":"        # implementation to respond with a dict without the subclass modifying"},{"line_number":200,"context_line":"        # it to add their own data in case the subclass doesn\u0027t support caching"},{"line_number":201,"context_line":"        if not implemented:"},{"line_number":202,"context_line":"            raise NotImplemented()"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_6593955b","line":200,"in_reply_to":"3a98d1f4_8f61a2d5","updated":"2016-10-03 21:55:22.000000000","message":"Yea, but the abstract base class was defined a long time ago, and we can\u0027t add new methods to an abstract base class.","commit_id":"48e370394c543642b417dd6df2ecf118ef742881"}],"keystoneauth1/identity/generic/password.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c7d75330dc9b008ebbdf35c604478f104540807d","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        self._user_domain_name \u003d value"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def get_cache_id_elements(self):"},{"line_number":83,"context_line":"        elements \u003d super(Password, self).get_cache_id_elements(True)"},{"line_number":84,"context_line":"        elements[\u0027username\u0027] \u003d self._username"},{"line_number":85,"context_line":"        elements[\u0027user_id\u0027] \u003d self._user_id"},{"line_number":86,"context_line":"        elements[\u0027password\u0027] \u003d self._password"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_4f995ac3","line":83,"updated":"2016-10-03 21:04:45.000000000","message":"nit: suggest using a keyword here since that\u0027s what ``implemented`` is defined as in the parent method signature.","commit_id":"48e370394c543642b417dd6df2ecf118ef742881"}],"keystoneauth1/identity/generic/token.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c7d75330dc9b008ebbdf35c604478f104540807d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            return v3.Token(url, self._token, **self._v3_params)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def get_cache_id_elements(self):"},{"line_number":37,"context_line":"        elements \u003d super(Token, self).get_cache_id_elements(True)"},{"line_number":38,"context_line":"        elements[\u0027token\u0027] \u003d self._token"},{"line_number":39,"context_line":"        return elements"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_6f94568a","line":37,"updated":"2016-10-03 21:04:45.000000000","message":"Same comment here.","commit_id":"48e370394c543642b417dd6df2ecf118ef742881"}]}
