示例#1
0
        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));
                 }
             }
         }
     }
 }