Ejemplo n.º 1
0
 internal PipPackageView(PipPackageCache provider, string name, string version, string description)
 {
     _provider = provider;
     _name     = name ?? "";
     if (!string.IsNullOrEmpty(version))
     {
         Pep440Version.TryParse(version, out _version);
     }
     _description = description ?? "";
 }
Ejemplo n.º 2
0
        internal PipPackageView(PipPackageCache provider, string packageSpec, bool versionIsInstalled = true)
        {
            _provider = provider;
            Match m;

            try {
                m = PipListOutputRegex.Match(packageSpec);
            } catch (RegexMatchTimeoutException) {
                Debug.Fail("Regex timeout");
                m = null;
            }
            if (m == null || !m.Success)
            {
                try {
                    m = PipFreezeOutputRegex.Match(packageSpec);
                } catch (RegexMatchTimeoutException) {
                    Debug.Fail("Regex timeout");
                    m = null;
                }
                if (m == null || !m.Success)
                {
                    try {
                        m = NameAndDescriptionRegex.Match(packageSpec);
                    } catch (RegexMatchTimeoutException) {
                        Debug.Fail("Regex timeout");
                        m = null;
                    }
                }
            }

            Pep440Version version;

            if (m.Success)
            {
                _name = m.Groups["name"].Value;
                Pep440Version.TryParse(m.Groups["version"].Value, out version);
            }
            else
            {
                _name   = packageSpec;
                version = Pep440Version.Empty;
            }

            var description = m.Groups["description"].Value;

            if (!string.IsNullOrEmpty(description))
            {
                _description = Uri.UnescapeDataString(description);
            }

            if (versionIsInstalled)
            {
                _version        = version;
                _upgradeVersion = null;
            }
            else
            {
                _version        = Pep440Version.Empty;
                _upgradeVersion = version;
            }
        }