def get_available_versions(self, package, dev=False, strict=False): """ Parameters ---------- package: `str` Package name dev: `bool` If set, will only return dev versions. Otherwise, return only released versions. strict: `bool` If set, matches dev versions strictly. Eg: 0.0.dev OK, 2.33.dev3 -not OK. """ versions = set(self.proxy.package_releases(package) + self.proxy.package_releases(package, True)) if dev: fn = is_dev_version if strict: fn = is_strict_dev_version versions = [version for version in versions if fn(version)] else: versions = [version for version in versions if not is_dev_version(version)] # Sort versions with most recent version at index 0. versions = [PackageVersion(v) for v in versions] versions.sort(reverse=True) versions = [str(v) for v in versions] return versions
def is_upgrade(package): if package not in working_set.by_key: return True current_version = working_set.by_key[package].version # TODO: get revision numbers from server so we can skip the auto-upgrade # of dev versions even if they haven't changed. if manage.is_dev_version(current_version): return True last_version = self.pypi_client.get_last_version(package, self.dev) # Pypi does not return any versions for this package. if not last_version: return False return parse_version(current_version) < parse_version(last_version)
def test_is_dev_version(): assert manage.is_dev_version('1.2.3.dev1') assert manage.is_dev_version('1.2.3.dev4') assert not manage.is_dev_version('1.2.3') assert not manage.is_dev_version('1.2.3dev4')
def isdev(self): return manage.is_dev_version(self.version)