Skip to content

Commit e1a64a0

Browse files
committed
Merge branch 'release/1.3.0'
2 parents 058703d + f44d055 commit e1a64a0

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

pip_review/__main__.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ def parse_args():
8383
parser.add_argument(
8484
'--continue-on-fail', '-C', action='store_true', default=False,
8585
help='Continue with other installs when one fails')
86+
parser.add_argument(
87+
'--freeze-outdated-packages', action='store_true', default=False,
88+
help='Freeze all outdated packages to "requirements.txt" before upgrading them')
8689
return parser.parse_known_args()
8790

8891

@@ -166,8 +169,14 @@ def ask(self, prompt):
166169
ask_to_install = partial(InteractiveAsker().ask, prompt='Upgrade now?')
167170

168171

169-
def update_packages(packages, forwarded, continue_on_fail):
172+
def update_packages(packages, forwarded, continue_on_fail, freeze_outdated_packages):
170173
upgrade_cmd = pip_cmd() + ['install', '-U'] + forwarded
174+
175+
if freeze_outdated_packages:
176+
with open('requirements.txt', 'w') as f:
177+
for pkg in packages:
178+
f.write('{0}=={1}\n'.format(pkg['name'], pkg['version']))
179+
171180
if not continue_on_fail:
172181
upgrade_cmd += ['{0}'.format(pkg['name']) for pkg in packages]
173182
subprocess.call(upgrade_cmd, stdout=sys.stdout, stderr=sys.stderr)
@@ -232,7 +241,7 @@ def main():
232241
if not outdated and not args.raw:
233242
logger.info('Everything up-to-date')
234243
elif args.auto:
235-
update_packages(outdated, install_args, args.continue_on_fail)
244+
update_packages(outdated, install_args, args.continue_on_fail, args.freeze_outdated_packages)
236245
elif args.raw:
237246
for pkg in outdated:
238247
logger.info('{0}=={1}'.format(pkg['name'], pkg['latest_version']))
@@ -247,7 +256,7 @@ def main():
247256
if answer in ['y', 'a']:
248257
selected.append(pkg)
249258
if selected:
250-
update_packages(selected, install_args, args.continue_on_fail)
259+
update_packages(selected, install_args, args.continue_on_fail, args.freeze_outdated_packages)
251260

252261

253262
if __name__ == '__main__':

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setup(
77
name='pip-review',
8-
version='1.2.0',
8+
version='1.3.0',
99
url='https://github.com/jgonggrijp/pip-review',
1010
license='BSD',
1111
author='Julian Gonggrijp, Vincent Driessen',

0 commit comments

Comments
 (0)