)]}'
{"keystone/contrib/federation/utils.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ebdcf52c71f0983acdaa58840ffc8b3253e89028","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                    \"type\": \"array\""},{"line_number":87,"context_line":"                },"},{"line_number":88,"context_line":"                \"regex\": {"},{"line_number":89,"context_line":"                    \"type\": \"string\""},{"line_number":90,"context_line":"                }"},{"line_number":91,"context_line":"            }"},{"line_number":92,"context_line":"        },"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_1b1b9ecb","line":89,"updated":"2015-06-23 22:47:01.000000000","message":"i think we can keep backwards compatibility by writing this as:\n\n  \"type\": [\"boolean\", \"string\"]","commit_id":"55dd2cba199a2bb61bcccbbe50f6e7d1432ca59c"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ebdcf52c71f0983acdaa58840ffc8b3253e89028","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                    \"type\": \"array\""},{"line_number":103,"context_line":"                },"},{"line_number":104,"context_line":"                \"regex\": {"},{"line_number":105,"context_line":"                    \"type\": \"string\""},{"line_number":106,"context_line":"                }"},{"line_number":107,"context_line":"            }"},{"line_number":108,"context_line":"        },"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_bb7ab2ef","line":105,"updated":"2015-06-23 22:47:01.000000000","message":"same as above","commit_id":"55dd2cba199a2bb61bcccbbe50f6e7d1432ca59c"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ebdcf52c71f0983acdaa58840ffc8b3253e89028","unresolved":false,"context_lines":[{"line_number":755,"context_line":"        assertion_values \u003d assertion.get(requirement_type)"},{"line_number":756,"context_line":"        if not assertion_values:"},{"line_number":757,"context_line":"            return False"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"        if regex:"},{"line_number":760,"context_line":"            any_match \u003d self._evaluate_values_by_regex(values,"},{"line_number":761,"context_line":"                                                       assertion_values)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_fb903aef","line":758,"updated":"2015-06-23 22:47:01.000000000","message":"if you keep this as a string, you\u0027ll need to evaluate what the string says. writing this as `if regex:` will always evaluated to a logical true because python evaluates strings to true if they have any content.\n\n  \u003e\u003e\u003e x\u003d\"False\"\n  \u003e\u003e\u003e if x: print(\"hello\")\n  ... \n  hello","commit_id":"55dd2cba199a2bb61bcccbbe50f6e7d1432ca59c"}]}
