From 36f93e4e05063572642379f5aff0b20538934629 Mon Sep 17 00:00:00 2001 From: Derek Schaller Date: Wed, 21 Feb 2018 22:49:49 -0700 Subject: [PATCH 1/2] fix graph command for missing virtualenv --- pipenv/core.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/pipenv/core.py b/pipenv/core.py index c672f72f..80a6fcde 100644 --- a/pipenv/core.py +++ b/pipenv/core.py @@ -2200,14 +2200,20 @@ def do_graph(bare=False, json=False, reverse=False): flag ) - # Run dep-tree. - c = delegator.run(cmd) + if not project.virtualenv_exists: + tree_output = '{}' if json else '' + return_code = 0 + else: + # Run dep-tree. + c = delegator.run(cmd) + tree_output = c.out + return_code = c.return_code if not bare: if json: data = [] - for d in simplejson.loads(c.out): + for d in simplejson.loads(tree_output): if d['package']['key'] not in BAD_PACKAGES: data.append(d) @@ -2215,7 +2221,7 @@ def do_graph(bare=False, json=False, reverse=False): click.echo(simplejson.dumps(data, indent=4)) sys.exit(0) else: - for line in c.out.split('\n'): + for line in tree_output.split('\n'): # Ignore bad packages as top level. if line.split('==')[0] in BAD_PACKAGES and not reverse: @@ -2229,10 +2235,10 @@ def do_graph(bare=False, json=False, reverse=False): else: click.echo(crayons.normal(line, bold=False)) else: - click.echo(c.out) + click.echo(tree_output) # Return its return code. - sys.exit(c.return_code) + sys.exit(return_code) def do_update(ctx, install, dev=False, three=None, python=None, dry_run=False, bare=False, dont_upgrade=False, user=False, verbose=False, clear=False, unused=False, package_name=None, sequential=False): From 3ef54241dcb18f46311d437671d8d838fbd262cc Mon Sep 17 00:00:00 2001 From: Derek Schaller Date: Fri, 23 Feb 2018 01:17:18 -0800 Subject: [PATCH 2/2] show warning when pipfile not present in graph command --- pipenv/core.py | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/pipenv/core.py b/pipenv/core.py index 80a6fcde..00e89688 100644 --- a/pipenv/core.py +++ b/pipenv/core.py @@ -2194,26 +2194,33 @@ def do_graph(bare=False, json=False, reverse=False): if reverse: flag = '--reverse' + if not project.virtualenv_exists: + click.echo( + u'{0}: No virtualenv has been created for this project yet! Consider ' + u'running {1} first to automatically generate one for you or see' + u'{2} for further instructions.'.format( + crayons.red('Warning', bold=True), + crayons.green('`pipenv install`'), + crayons.green('`pipenv install --help`') + ), err=True + ) + sys.exit(1) + + cmd = '"{0}" {1} {2}'.format( python_path, shellquote(pipdeptree.__file__.rstrip('cdo')), flag ) - if not project.virtualenv_exists: - tree_output = '{}' if json else '' - return_code = 0 - else: - # Run dep-tree. - c = delegator.run(cmd) - tree_output = c.out - return_code = c.return_code + # Run dep-tree. + c = delegator.run(cmd) if not bare: if json: data = [] - for d in simplejson.loads(tree_output): + for d in simplejson.loads(c.out): if d['package']['key'] not in BAD_PACKAGES: data.append(d) @@ -2221,7 +2228,7 @@ def do_graph(bare=False, json=False, reverse=False): click.echo(simplejson.dumps(data, indent=4)) sys.exit(0) else: - for line in tree_output.split('\n'): + for line in c.out.split('\n'): # Ignore bad packages as top level. if line.split('==')[0] in BAD_PACKAGES and not reverse: @@ -2235,10 +2242,10 @@ def do_graph(bare=False, json=False, reverse=False): else: click.echo(crayons.normal(line, bold=False)) else: - click.echo(tree_output) + click.echo(c.out) # Return its return code. - sys.exit(return_code) + sys.exit(c.return_code) def do_update(ctx, install, dev=False, three=None, python=None, dry_run=False, bare=False, dont_upgrade=False, user=False, verbose=False, clear=False, unused=False, package_name=None, sequential=False):