This repository has been archived on 2025-09-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Employee-Management-Portal/Lib/site-packages/pipenv/vendor/passa/actions/upgrade.py
Alicja Cięciwa cb8886666c login page
2020-10-27 12:57:58 +01:00

53 lines
1.4 KiB
Python

# -*- coding=utf-8 -*-
from __future__ import absolute_import, print_function, unicode_literals
import sys
def upgrade(project=None, strategy="only-if-needed", sync=True, packages=[]):
from passa.models.lockers import EagerUpgradeLocker, PinReuseLocker
from passa.operations.lock import lock
for package in packages:
if not project.contains_key_in_pipfile(package):
print("{package!r} not found in Pipfile".format(
package=package,
), file=sys.stderr)
return 2
project.remove_keys_from_lockfile(packages)
prev_lockfile = project.lockfile
if strategy == "eager":
locker = EagerUpgradeLocker(project, packages)
else:
locker = PinReuseLocker(project)
success = lock(locker)
if not success:
return 1
project._l.write()
print("Written to project at", project.root)
if not sync:
return
from passa.operations.sync import sync
from passa.models.synchronizers import Synchronizer
lockfile_diff = project.difference_lockfile(prev_lockfile)
default = bool(any(lockfile_diff.default))
develop = bool(any(lockfile_diff.develop))
syncer = Synchronizer(
project, default=default, develop=develop,
clean_unneeded=False,
)
success = sync(syncer)
if not success:
return 1
print("Synchronized project at", project.root)