public static PythonPackage GetPackage(Tuple <string, string> source, string name, string version, Request request) { var detailed_info = GetDetailedPackageInfo(source, name, version, request); PythonPackage package = new PythonPackage(name); package.version = new VersionIdentifier(version); package.summary = detailed_info["info"]["summary"].ToString(); package.source = source.Item1; package.sourceurl = source.Item2; package.search_key = name; package.downloads = ParseUrls(detailed_info["urls"]); JToken requires_dist; if (((JObject)detailed_info["info"]).TryGetValue("requires_dist", out requires_dist)) { foreach (var requirement in requires_dist) { package.requires_dist.Add(DistRequirement.Parse(requirement.ToString())); } } if (((JObject)detailed_info["info"]).TryGetValue("requires", out requires_dist)) { foreach (var requirement in requires_dist) { package.requires_dist.Add(DistRequirement.Parse(requirement.ToString())); } } return(package); }
public void ReadMetadata(Stream stream) { using (var reader = new StreamReader(stream)) { string line; while ((line = reader.ReadLine()) != null) { if (line == "") { break; } if (line.StartsWith(" ")) { // Line continuation continue; } int delim_index = line.IndexOf(": "); if (delim_index != -1) { string name = line.Substring(0, delim_index); string value = line.Substring(delim_index + 2); name = name.ToLowerInvariant(); if (name == "name") { this.name = value; } else if (name == "version") { this.version = new VersionIdentifier(value); } else if (name == "summary") { this.summary = value; } else if (name == "requires-dist") { this.requires_dist.Add(DistRequirement.Parse(value)); } } } } }