def handle(self): from poetry.__version__ import __version__ from poetry.repositories.pypi_repository import PyPiRepository from poetry.semver import Version from poetry.utils._compat import decode version = self.argument("version") if not version: version = ">=" + __version__ repo = PyPiRepository(fallback=False) packages = repo.find_packages("poetry", version, allow_prereleases=self.option("preview")) if not packages: self.line("No release found for the specified version") return packages.sort(key=cmp_to_key(lambda x, y: 0 if x.version == y.version else int(x.version < y.version or -1))) release = None for package in packages: if package.is_prerelease(): if self.option("preview"): release = package break continue release = package break if release is None: self.line("No new release found") return if release.version == Version.parse(__version__): self.line("You are using the latest version") return try: self.update(release) except subprocess.CalledProcessError as e: self.line("") self.output.block( [ "[CalledProcessError]", "An error has occured: {}".format(str(e)), decode(e.output), ], style="error", ) return e.returncode
def handle(self): from poetry.__version__ import __version__ from poetry.repositories.pypi_repository import PyPiRepository from poetry.semver.comparison import less_than version = self.argument('version') if not version: version = '>=' + __version__ repo = PyPiRepository(fallback=False) packages = repo.find_packages('poetry', version, allow_prereleases=self.option('preview')) if not packages: self.line('No release found for the specified version') return packages.sort( key=cmp_to_key(lambda x, y: 0 if x.version == y.version else -1 * int(less_than(x.version, y.version) or -1))) release = None for package in reversed(packages): if package.is_prerelease(): if self.option('preview'): release = package break continue release = package break if release is None: self.line('No new release found') return if release.version == __version__: self.line('You are using the latest version') return try: self.update(release) except subprocess.CalledProcessError as e: self.line('') self.output.block([ '[CalledProcessError]', 'An error has occured: {}'.format( str(e)), e.output ], style='error') return e.returncode
def handle(self): from poetry.__version__ import __version__ from poetry.repositories.pypi_repository import PyPiRepository from poetry.semver import Version from poetry.utils._compat import Path current = Path(__file__) try: current.relative_to(self.home) except ValueError: raise RuntimeError( "Poetry was not installed with the recommended installer. " "Cannot update automatically.") version = self.argument("version") if not version: version = ">=" + __version__ repo = PyPiRepository(fallback=False) packages = repo.find_packages("poetry", version, allow_prereleases=self.option("preview")) if not packages: self.line("No release found for the specified version") return packages.sort(key=cmp_to_key(lambda x, y: 0 if x.version == y.version else int(x.version < y.version or -1))) release = None for package in packages: if package.is_prerelease(): if self.option("preview"): release = package break continue release = package break if release is None: self.line("No new release found") return if release.version == Version.parse(__version__): self.line("You are using the latest version") return self.update(release)
def handle(self) -> None: from poetry.__version__ import __version__ from poetry.core.packages.dependency import Dependency from poetry.core.semver.version import Version from poetry.repositories.pypi_repository import PyPiRepository self._check_recommended_installation() version = self.argument("version") if not version: version = ">=" + __version__ repo = PyPiRepository(fallback=False) packages = repo.find_packages( Dependency("poetry", version, allows_prereleases=self.option("preview")) ) if not packages: self.line("No release found for the specified version") return packages.sort( key=cmp_to_key( lambda x, y: 0 if x.version == y.version else int(x.version < y.version or -1) ) ) release = None for package in packages: if package.is_prerelease(): if self.option("preview"): release = package break continue release = package break if release is None: self.line("No new release found") return if release.version == Version.parse(__version__): self.line("You are using the latest version") return self.update(release)