def conda(self, line, command): if not (command == 'CONDA' or command.startswith('CONDA ')): return # Get command args args = line.split(' ') args = [w for w in args if w] args.pop(0) # remove 'conda' # Stop if user does "conda = ..." if args and '=' in args[0]: return # Add channels when using install, this gets added last, so # that user-specified channels take preference channel_list = [] if args and args[0] == 'install': channel_list = ['-c', 'conda-forge', '-c', 'pyzo'] def write_no_dots(x): if x.strip() == '.': # note, no "x if y else z" in Python 2.4 return 0 return stderr_write(x) # Go! # Weird double-try, to make work on Python 2.4 oldargs = sys.argv stderr_write = sys.stderr.write try: try: # older version of conda would spew dots to stderr during downloading sys.stderr.write = write_no_dots import conda # noqa from conda.cli import main sys.argv = ['conda'] + list(args) + channel_list main() except SystemExit: # as err: type, err, tb = sys.exc_info(); del tb err = str(err) if len(err) > 4: # Only print if looks like a message print(err) except Exception: # as err: type, err, tb = sys.exc_info(); del tb print('Error in conda command:') print(err) finally: sys.argv = oldargs sys.stderr.write = stderr_write return ''
def capture_with_argv(*argv): sys.argv = argv stdout, stderr = StringIO(), StringIO() oldstdout, oldstderr = sys.stdout, sys.stderr sys.stdout = stdout sys.stderr = stderr try: cli.main() except SystemExit: pass sys.stdout = oldstdout sys.stderr = oldstderr stdout.seek(0) stderr.seek(0) return stdout.read(), stderr.read()
def run_inprocess_conda_command(command): reset_context(()) with argv(split(command)), captured() as c: initialize_logging() try: exit_code = cli.main() except SystemExit: pass print(c.stderr, file=sys.stderr) print(c.stdout) return c.stdout, c.stderr, exit_code
def run(cmdList): # Avoid subprocess overhead # TODO: benchmark vs subprocess if '--dummy' in sys.argv: print(cmdList) return '' from conda import cli stdout = StringIO() old = sys.stdout sys.stdout = stdout sys.argv = cmdList try: cli.main() except SystemExit: pass sys.stdout = old stdout.seek(0) return stdout.read()
def conda(self, line, command): if not (command == "CONDA" or command.startswith("CONDA ")): return # Get command args args = line.split(" ") args = [w for w in args if w] args.pop(0) # remove 'conda' # Stop if user does "conda = ..." if args and "=" in args[0]: return # Go! # Weird double-try, to make work on Python 2.4 oldargs = sys.argv try: try: import conda from conda.cli import main sys.argv = ["conda"] + list(args) if args and args[0] in ("install", "update", "remove"): self._check_imported_modules() main() except SystemExit: # as err: type, err, tb = sys.exc_info() del tb err = str(err) if len(err) > 4: # Only print if looks like a message print(err) except Exception: # as err: type, err, tb = sys.exc_info() del tb print("Error in conda command:") print(err) finally: sys.argv = oldargs return ""
def run_inprocess_conda_command(command, disallow_stderr=True): # anything that uses this function is an integration test reset_context(()) with argv(split(command)), captured(disallow_stderr) as c: initialize_logging() try: exit_code = cli.main() except SystemExit: pass print(c.stderr, file=sys.stderr) print(c.stdout) return c.stdout, c.stderr, exit_code
def capture_with_argv(*argv): # only used in capture_json_with_argv() sys.argv = argv stdout, stderr = StringIO(), StringIO() oldstdout, oldstderr = sys.stdout, sys.stderr sys.stdout = stdout sys.stderr = stderr try: cli.main() except SystemExit: pass sys.stdout = oldstdout sys.stderr = oldstderr stdout.seek(0) stderr.seek(0) stdout, stderr = stdout.read(), stderr.read() print(stdout) print(stderr, file=sys.stderr) return stdout, strip_expected(stderr)
def run_inprocess_conda_command(command, disallow_stderr=True): # anything that uses this function is an integration test reset_context(()) # May want to do this to command: with argv(encode_arguments(shlex_split_unicode(command))), captured(disallow_stderr) as c: initialize_logging() try: exit_code = cli.main(*sys.argv) except SystemExit: pass print(c.stderr, file=sys.stderr) print(c.stdout) return c.stdout, c.stderr, exit_code
def capture_with_argv(*argv): sys.argv = argv stdout, stderr = StringIO(), StringIO() oldstdout, oldstderr = sys.stdout, sys.stderr sys.stdout = stdout sys.stderr = stderr try: cli.main() except SystemExit: pass sys.stdout = oldstdout sys.stderr = oldstderr stdout.seek(0) stderr.seek(0) stdout, stderr = stdout.read(), stderr.read() print('>>>>>>>>> stdout >>>>>>>>>') print(stdout) print('>>>>>>>>> stderr >>>>>>>>>') print(stderr) print('>>>>>>>>>') return stdout, strip_expected(stderr)
def capture_with_argv(*argv): sys.argv = argv stdout, stderr = StringIO(), StringIO() oldstdout, oldstderr = sys.stdout, sys.stderr sys.stdout = stdout sys.stderr = stderr try: cli.main() except SystemExit: pass sys.stdout = oldstdout sys.stderr = oldstderr stdout.seek(0) stderr.seek(0) stdout, stderr = stdout.read(), stderr.read() print('>>>>>>>>> stdout >>>>>>>>>') print(stdout) print('>>>>>>>>> stderr >>>>>>>>>') print(stderr) print('>>>>>>>>>') return stdout, stderr
# -*- coding: utf-8 -*- import sys # Before any more imports, leave cwd out of sys.path for internal 'conda shell.*' commands. # see https://github.com/conda/conda/issues/6549 if len(sys.argv) > 1 and sys.argv[1].startswith( 'shell.') and sys.path and sys.path[0] == '': # The standard first entry in sys.path is an empty string, # and os.path.abspath('') expands to os.getcwd(). del sys.path[0] if __name__ == '__main__': from conda.cli import main sys.exit(main())
# -*- coding: utf-8 -*- import re import sys from conda.cli import main if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) sys.exit(main())
def conda_upgrade(): conda_cli.main("install", "-y", "-c", "floydhub", "-c", "conda-forge", "floyd-cli")
def execute_conda_cmd(args): from conda.cli import main with patch.object(sys, 'argv', args): return main()