)]}'
{"openstack/common/cfgfilter.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"82e0813d901bac20534eea29d9185d434a49e0de","unresolved":false,"context_lines":[{"line_number":104,"context_line":"from oslo.config import cfg"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"class ConfigFilter(collections.Mapping):"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    \"\"\"A helper class which wraps a ConfigOpts object."},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_8242c90c","line":107,"updated":"2014-06-14 18:18:33.000000000","message":"It feels like there is probably some opportunity to refactoring ConfigOpts as well to separate the code for storing potential option values from different sources (cli, files, etc.) from the code that handles registering option definitions. That would give us a class private to oslo.config but that could have a stable API and be reused in both ConfigFilter and ConfigOpts. That can all come later.","commit_id":"0063a08c5fa64543e5d5e6483c36e9711500792d"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"e51e12d882eb78cd71d0638fbec5257d6a2650bc","unresolved":false,"context_lines":[{"line_number":104,"context_line":"from oslo.config import cfg"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"class ConfigFilter(collections.Mapping):"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    \"\"\"A helper class which wraps a ConfigOpts object."},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_6c45ac6d","line":107,"in_reply_to":"1ae5cdf2_8242c90c","updated":"2014-06-15 13:09:34.000000000","message":"Yeah, agree","commit_id":"0063a08c5fa64543e5d5e6483c36e9711500792d"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"82e0813d901bac20534eea29d9185d434a49e0de","unresolved":false,"context_lines":[{"line_number":127,"context_line":"                            \"liable to change at any time\")"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        self._conf \u003d conf"},{"line_number":130,"context_line":"        self._fconf \u003d cfg.ConfigOpts()"},{"line_number":131,"context_line":"        self._sync()"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        self._imported_opts \u003d set()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_42ee0123","line":130,"updated":"2014-06-14 18:18:33.000000000","message":"Does \"fconf\" stand for \"full conf\" or \"filtered conf\"?","commit_id":"0063a08c5fa64543e5d5e6483c36e9711500792d"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"e51e12d882eb78cd71d0638fbec5257d6a2650bc","unresolved":false,"context_lines":[{"line_number":127,"context_line":"                            \"liable to change at any time\")"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        self._conf \u003d conf"},{"line_number":130,"context_line":"        self._fconf \u003d cfg.ConfigOpts()"},{"line_number":131,"context_line":"        self._sync()"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        self._imported_opts \u003d set()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_8c5f5840","line":130,"in_reply_to":"1ae5cdf2_42ee0123","updated":"2014-06-15 13:09:34.000000000","message":"Filtered. Don\u0027t love the abbreviation","commit_id":"0063a08c5fa64543e5d5e6483c36e9711500792d"}]}
