)]}'
{"pbr/packaging.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"bb7334e5bd38448a85c9d816be0cd30e928880ef","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        # take a versioned egg fragment and return a"},{"line_number":81,"context_line":"        # versioned package requirement e.g."},{"line_number":82,"context_line":"        # nova-1.2.3 becomes nova\u003e\u003d1.2.3"},{"line_number":83,"context_line":"        return re.sub(r\u0027([\\w.]+)-([\\w.-]+)\u0027,"},{"line_number":84,"context_line":"                      r\u0027\\1\u003e\u003d\\2\u0027,"},{"line_number":85,"context_line":"                      match.group(1))"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2Ffh0%3D","line":83,"updated":"2013-05-31 23:26:49.000000000","message":"This regex splits on the first \u0027-\u0027 it encounters instead of the last. So nova-foo-1.2.3 is converted to nova\u003e\u003dfoo-1.2.3. I think it needs to be a little smarter about figuring out where the version component is located to handle packages with dashes in their names.","commit_id":"2dc50ea1e467fa5a301fc6b6812b798599f0ac04"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"a5efa95064accdbee3cd42fced2aa4952f45664c","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        # take a versioned egg fragment and return a"},{"line_number":81,"context_line":"        # versioned package requirement e.g."},{"line_number":82,"context_line":"        # nova-1.2.3 becomes nova\u003e\u003d1.2.3"},{"line_number":83,"context_line":"        return re.sub(r\u0027([\\w.]+)-([\\w.-]+)\u0027,"},{"line_number":84,"context_line":"                      r\u0027\\1\u003e\u003d\\2\u0027,"},{"line_number":85,"context_line":"                      match.group(1))"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2Fe%2F0%3D","line":83,"in_reply_to":"AAAAPH%2F%2Ffh0%3D","updated":"2013-06-01 12:20:19.000000000","message":"Take a look at https://github.com/pypa/pip/blob/b7b39b2/pip/index.py#L321 and https://github.com/pypa/pip/blob/b7b39b2/pip/index.py#L402\n\nAlso to_filename() in http://pythonhosted.org/distribute/pkg_resources.html\n\n  Escape a name or version string so it can be used in a dash-separated filename\n  (or #egg\u003dname-version tag) without ambiguity. You should only pass in values that \n  were returned by safe_name() or safe_version().\n\nSo, the format is very explicitly name-version and hyphens aren\u0027t supported in the name and version","commit_id":"2dc50ea1e467fa5a301fc6b6812b798599f0ac04"}],"pbr/tests/test_setup.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"bb7334e5bd38448a85c9d816be0cd30e928880ef","unresolved":false,"context_lines":[{"line_number":297,"context_line":"            fh.write(\"https://foo.com/zipball#egg\u003dbar-4.2.1\")"},{"line_number":298,"context_line":"        self.assertEqual([\u0027bar\u003e\u003d4.2.1\u0027],"},{"line_number":299,"context_line":"                         packaging.parse_requirements([self.tmp_file]))"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"    def test_parse_requirements_removes_index_lines(self):"},{"line_number":302,"context_line":"        with open(self.tmp_file, \u0027w\u0027) as fh:"},{"line_number":303,"context_line":"            fh.write(\"-f foobar\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2Ffho%3D","line":300,"updated":"2013-05-31 23:26:49.000000000","message":"If you do add support for dashes in package names adding a test for that case would be nice.","commit_id":"2dc50ea1e467fa5a301fc6b6812b798599f0ac04"}]}
