)]}'
{"oslo/config/cfg.py":[{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"e400a2b6708f53479f88a36764e1653d044fc87b","unresolved":false,"context_lines":[{"line_number":1186,"context_line":"    Note, we don\u0027t actually assign values from config files as attributes"},{"line_number":1187,"context_line":"    on the namespace because config file options be registered after the"},{"line_number":1188,"context_line":"    command line has been parsed, so we may not know how to properly parse"},{"line_number":1189,"context_line":"    or convert a config file value at this point."},{"line_number":1190,"context_line":"    \"\"\""},{"line_number":1191,"context_line":""},{"line_number":1192,"context_line":"    def __init__(self, conf, delete\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2F%2ByU%3D","line":1189,"updated":"2013-05-17 08:26:28.000000000","message":"should conf and delete be documented here?","commit_id":"6c7d29bd9cbf14e3f5e83877298141bdbf56b5cf"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"40221f938166c40a79522d45758cda56703fa509","unresolved":false,"context_lines":[{"line_number":1219,"context_line":"        objects. Values in later config files or on the command line will"},{"line_number":1220,"context_line":"        override values found in this file."},{"line_number":1221,"context_line":""},{"line_number":1222,"context_line":"        The really nasty part of this is that we must delete any values for CLI"},{"line_number":1223,"context_line":"        options from the parsed config file stored on the namespace object. We"},{"line_number":1224,"context_line":"        do this by creating a new namespace object with only the values from"},{"line_number":1225,"context_line":"        this file and instruct the object to delete any values as they are"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2Fzgg%3D","line":1222,"updated":"2013-05-22 16:55:55.000000000","message":"If we stick all of the CLI options at the front of the search list for the namespace, I don\u0027t think we have to delete them from the parsed config file, do we? Or is that to properly handle multi-opts?\n\nMaybe something like a ChainMap or nested namespaces (see my comments on the previous commit) would make this easier after all. The parser would just build a series or stack of namespaces, and option lookup would search them. The outer namespace (the first one searched) would have all of the command line options, and could be configured to not continue the search if a value is found there (because it would already have the full multi-opt value for any options it contains). Otherwise, the search would scan all of the namespaces (maybe recursively?).","commit_id":"835016975ea0c7599f83140802beea746ebfea19"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"0c7d3d670093ed869c73ac1fcf0e9a60727f965d","unresolved":false,"context_lines":[{"line_number":1219,"context_line":"        objects. Values in later config files or on the command line will"},{"line_number":1220,"context_line":"        override values found in this file."},{"line_number":1221,"context_line":""},{"line_number":1222,"context_line":"        The really nasty part of this is that we must delete any values for CLI"},{"line_number":1223,"context_line":"        options from the parsed config file stored on the namespace object. We"},{"line_number":1224,"context_line":"        do this by creating a new namespace object with only the values from"},{"line_number":1225,"context_line":"        this file and instruct the object to delete any values as they are"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2FwEY%3D","line":1222,"in_reply_to":"AAAAPH%2F%2Fzgg%3D","updated":"2013-05-23 21:02:26.000000000","message":"We could avoid the deleting thing by changing the order in ConfigOpts._do_get() - i.e. look in cli_values before calling get_from_namespace()\n\nActually, I should probably completely re-work _do_get() ... there\u0027s no real need for _cli_values at all, we could instead make get_from_namespace() look for an attribute set on the namespace first\n\nAlso, the stuff currently in _do_get() about handling multi opts is bogus because you either get values from cli_values or get_from_namespace(), but never both\n\nHmm, now that I re-read what you said ... that\u0027s a lot like what you mean, I think :)","commit_id":"835016975ea0c7599f83140802beea746ebfea19"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"cb68351e593c52b10f81b8c4f71c31d8b94d3eef","unresolved":false,"context_lines":[{"line_number":1219,"context_line":"        objects. Values in later config files or on the command line will"},{"line_number":1220,"context_line":"        override values found in this file."},{"line_number":1221,"context_line":""},{"line_number":1222,"context_line":"        The really nasty part of this is that we must delete any values for CLI"},{"line_number":1223,"context_line":"        options from the parsed config file stored on the namespace object. We"},{"line_number":1224,"context_line":"        do this by creating a new namespace object with only the values from"},{"line_number":1225,"context_line":"        this file and instruct the object to delete any values as they are"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2FuWs%3D","line":1222,"in_reply_to":"AAAAPH%2F%2Fzgg%3D","updated":"2013-05-24 12:47:16.000000000","message":"What we\u0027ve ended up with now is that Namespace.get_value() will first look at attributes set on the namespace and then at values in the config parser\n\nAgain, we do need to treat CLI options and non-CLI options differently - i.e. by doing type conversion for the former via argparse and type conversion for the latter at lookup time","commit_id":"835016975ea0c7599f83140802beea746ebfea19"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"dfc80f5e68d125a28f176904ef86db527d93f170","unresolved":false,"context_lines":[{"line_number":1238,"context_line":"            except ValueError as ve:"},{"line_number":1239,"context_line":"                raise ConfigFileValueError(str(ve))"},{"line_number":1240,"context_line":""},{"line_number":1241,"context_line":"            if group_name is None:"},{"line_number":1242,"context_line":"                dest \u003d opt.dest"},{"line_number":1243,"context_line":"            else:"},{"line_number":1244,"context_line":"                dest \u003d group_name + \u0027_\u0027 + opt.dest"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2Fu%2B8%3D","line":1241,"updated":"2013-05-24 06:21:14.000000000","message":"suggestion: maybe a one liner would look better?","commit_id":"835016975ea0c7599f83140802beea746ebfea19"}]}
