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
Alicja Cięciwa cb8886666c login page
2020-10-27 12:57:58 +01:00

58 lines
1.5 KiB
Python

# -*- coding=utf-8 -*-
from __future__ import absolute_import, print_function, unicode_literals
import itertools
import sys
def add_packages(packages=[], editables=[], project=None, dev=False, sync=False, clean=False):
from passa.models.lockers import PinReuseLocker
from passa.operations.lock import lock
lines = list(itertools.chain(
packages,
("-e {}".format(e) for e in editables),
))
project = project
for line in lines:
try:
project.add_line_to_pipfile(line, develop=dev)
except (TypeError, ValueError) as e:
print("Cannot add {line!r} to Pipfile: {error}".format(
line=line, error=str(e),
), file=sys.stderr)
return 2
prev_lockfile = project.lockfile
locker = PinReuseLocker(project)
success = lock(locker)
if not success:
return 1
project._p.write()
project._l.write()
print("Written to project at", project.root)
if not sync:
return
from passa.models.synchronizers import Synchronizer
from passa.operations.sync import sync
lockfile_diff = project.difference_lockfile(prev_lockfile)
default = any(lockfile_diff.default)
develop = any(lockfile_diff.develop)
syncer = Synchronizer(
project, default=default, develop=develop,
clean_unneeded=clean,
)
success = sync(syncer)
if not success:
return 1
print("Synchronized project at", project.root)