)]}'
{"doc/ext/plugin_reference.py":[{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"1f4237dd5d87a3fa9d5dad6e7af332156d43b9de","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def _get_group_for_cls(self, cls):"},{"line_number":90,"context_line":"        parts \u003d cls.__module__.split(\".\")"},{"line_number":91,"context_line":"        if len(parts) \u003e 2:"},{"line_number":92,"context_line":"            return parts[-2]"},{"line_number":93,"context_line":"        return \"\""},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_5b7061dc","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":26},"updated":"2016-06-24 11:10:29.000000000","message":"\u003e\u003d2 ?\n\n\"module.Class\".split(\".\") \u003d\u003d [\"module\", \"Class\"] # len \u003d\u003d 2","commit_id":"b2f58f8c653ea44c2901aea9e28a9a60201e06fc"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"78862fa36bdef2600228fde354909bd5b1bf43a7","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        for p in discover.itersubclasses(plugin.Plugin):"},{"line_number":98,"context_line":"            base_ref \u003d getattr(p, \"base_ref\", None)"},{"line_number":99,"context_line":"            if base_ref \u003d\u003d p:"},{"line_number":100,"context_line":"                name \u003d self._parse_class_name(p)"},{"line_number":101,"context_line":"                group \u003d self._get_group_for_cls(p)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"                plural_form \u003d (\"%ss\" % name if name[-1] !\u003d \"y\""}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_18389fee","line":100,"updated":"2016-06-24 10:44:50.000000000","message":"Will this work correctly with class-based scenarios?","commit_id":"b2f58f8c653ea44c2901aea9e28a9a60201e06fc"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"1f4237dd5d87a3fa9d5dad6e7af332156d43b9de","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                name \u003d self._parse_class_name(p)"},{"line_number":101,"context_line":"                group \u003d self._get_group_for_cls(p)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"                plural_form \u003d (\"%ss\" % name if name[-1] !\u003d \"y\""},{"line_number":104,"context_line":"                               else \"%sies\" % name[:-1])"},{"line_number":105,"context_line":"                if group:"},{"line_number":106,"context_line":"                    title \u003d \"%s %s\" % (group.title(), plural_form)"},{"line_number":107,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_db71f145","line":104,"range":{"start_line":103,"start_character":15,"end_line":104,"end_character":56},"updated":"2016-06-24 11:10:29.000000000","message":"I wish it was that easy))","commit_id":"b2f58f8c653ea44c2901aea9e28a9a60201e06fc"}]}
