def main(): if len(sys.argv) > 1: if sys.argv[1] in ('..activate', '..deactivate', '..checkenv'): import conda.cli.activate as activate activate.main() return if sys.argv[1] in ('..changeps1'): import conda.cli.misc as misc misc.main() return if sys.argv[1] == 'pip': sys.exit("""ERROR: The "conda pip" command has been removed from conda version 1.8 for the following reasons: * users get the wrong impression that you *must* use conda pip (instead of simply pip) when using Anaconda * there should only be one preferred way to build packages, and that is the conda build command * the command did too many things at once, i.e. build a package and then also install it * the command is Python centric, whereas conda (from a package management perspective) is Python agnostic * packages created with conda pip are not robust, i.e. they will maybe not work on other people's systems In short: * use "conda build" if you want to build a conda package * use "conda install" if you want to install something * use "pip" if you want to install something that is on PyPI for which there isn't a conda package. """) if len(sys.argv) == 1: sys.argv.append('-h') import logging import conda p = conda_argparse.ArgumentParser( description='conda is a tool for managing environments and packages.' ) p.add_argument( '-V', '--version', action = 'version', version = 'conda %s' % conda.__version__, ) p.add_argument( "--debug", action = "store_true", help = argparse.SUPPRESS, ) sub_parsers = p.add_subparsers( metavar = 'command', dest = 'cmd', ) main_info.configure_parser(sub_parsers) main_help.configure_parser(sub_parsers) main_list.configure_parser(sub_parsers) main_search.configure_parser(sub_parsers) main_create.configure_parser(sub_parsers) main_install.configure_parser(sub_parsers) main_update.configure_parser(sub_parsers) main_remove.configure_parser(sub_parsers) main_config.configure_parser(sub_parsers) main_clean.configure_parser(sub_parsers) main_build.configure_parser(sub_parsers) main_skeleton.configure_parser(sub_parsers) main_package.configure_parser(sub_parsers) main_index.configure_parser(sub_parsers) try: import argcomplete argcomplete.autocomplete(p) except ImportError: pass except AttributeError: # On Python 3.3, argcomplete can be an empty namespace package when # argcomplete is not installed. Not sure why, but this fixes it. pass args = p.parse_args() if args.debug: logging.basicConfig(level=logging.DEBUG) try: args.func(args, p) except RuntimeError as e: sys.exit("Error: %s" % e) except Exception as e: if e.__class__.__name__ not in ('ScannerError', 'ParserError'): print("""\ An unexpected error has occurred, please consider sending the following traceback to the conda GitHub issue tracker at: https://github.com/ContinuumIO/conda/issues Include the output of the command 'conda info' in your report. """) raise # as if we did not catch it
def main(): if len(sys.argv) > 1: argv1 = sys.argv[1] if argv1 in ('..activate', '..deactivate', '..checkenv'): import conda.cli.activate as activate activate.main() return if argv1 in ('..changeps1'): import conda.cli.misc as misc misc.main() return if argv1 == 'pip': sys.exit("""ERROR: The "conda pip" command has been removed from conda (as of version 1.8) for the following reasons: * users get the wrong impression that you *must* use conda pip (instead of simply pip) when using Anaconda * there should only be one preferred way to build packages, and that is the conda build command * the command did too many things at once, i.e. build a package and then also install it * the command is Python centric, whereas conda (from a package management perspective) is Python agnostic * packages created with conda pip are not robust, i.e. they will maybe not work on other people's systems In short: * use "conda build" if you want to build a conda package * use "conda install" if you want to install something * use "pip" if you want to install something that is on PyPI for which there isn't a conda package. """) if argv1 in ('activate', 'deactivate'): sys.stderr.write("Error: '%s' is not a conda command.\n" % argv1) if sys.platform != 'win32': sys.stderr.write('Did you mean "source %s" ?\n' % ' '.join(sys.argv[1:])) sys.exit(1) # for backwards compatibility of conda-api if sys.argv[1:4] == ['share', '--json', '--prefix']: import json from os.path import abspath from conda.builder.share import old_create_bundle prefix = sys.argv[4] path, warnings = old_create_bundle(abspath(prefix)) json.dump(dict(path=path, warnings=warnings), sys.stdout, indent=2, sort_keys=True) return if sys.argv[1:4] == ['clone', '--json', '--prefix']: import json from os.path import abspath from conda.builder.share import old_clone_bundle prefix, path = sys.argv[4:6] old_clone_bundle(path, abspath(prefix)) json.dump(dict(warnings=[]), sys.stdout, indent=2) return if len(sys.argv) == 1: sys.argv.append('-h') import logging import conda p = conda_argparse.ArgumentParser( description='conda is a tool for managing environments and packages.' ) p.add_argument( '-V', '--version', action = 'version', version = 'conda %s' % conda.__version__, ) p.add_argument( "--debug", action = "store_true", help = argparse.SUPPRESS, ) sub_parsers = p.add_subparsers( metavar = 'command', dest = 'cmd', ) main_info.configure_parser(sub_parsers) main_help.configure_parser(sub_parsers) main_list.configure_parser(sub_parsers) main_search.configure_parser(sub_parsers) main_create.configure_parser(sub_parsers) main_install.configure_parser(sub_parsers) main_update.configure_parser(sub_parsers) main_remove.configure_parser(sub_parsers) main_config.configure_parser(sub_parsers) main_init.configure_parser(sub_parsers) main_clean.configure_parser(sub_parsers) main_build.configure_parser(sub_parsers) main_skeleton.configure_parser(sub_parsers) main_package.configure_parser(sub_parsers) main_bundle.configure_parser(sub_parsers) main_index.configure_parser(sub_parsers) try: import argcomplete argcomplete.autocomplete(p) except ImportError: pass except AttributeError: # On Python 3.3, argcomplete can be an empty namespace package when # argcomplete is not installed. Not sure why, but this fixes it. pass args = p.parse_args() if args.debug: logging.basicConfig(level=logging.DEBUG) if (not main_init.is_initialized() and 'init' not in sys.argv and 'info' not in sys.argv): sys.exit("Error: conda is not initalized yet, try: conda init") try: args.func(args, p) except RuntimeError as e: sys.exit("Error: %s" % e) except Exception as e: if e.__class__.__name__ not in ('ScannerError', 'ParserError'): print("""\ An unexpected error has occurred, please consider sending the following traceback to the conda GitHub issue tracker at: https://github.com/ContinuumIO/conda/issues Include the output of the command 'conda info' in your report. """) raise # as if we did not catch it
def main(): if len(sys.argv) > 1 and sys.argv[1] in ('..activate', '..deactivate', '..changeps1'): import conda.cli.activate as activate activate.main() return if len(sys.argv) == 1: sys.argv.append('-h') import logging import conda p = conda_argparse.ArgumentParser( description='conda is a tool for managing environments and packages.' ) p.add_argument( '-V', '--version', action = 'version', version = 'conda %s' % conda.__version__, ) p.add_argument( "--debug", action = "store_true", help = argparse.SUPPRESS, ) sub_parsers = p.add_subparsers( metavar = 'command', dest = 'cmd', ) main_info.configure_parser(sub_parsers) main_help.configure_parser(sub_parsers) main_list.configure_parser(sub_parsers) main_search.configure_parser(sub_parsers) main_create.configure_parser(sub_parsers) main_install.configure_parser(sub_parsers) main_update.configure_parser(sub_parsers) main_remove.configure_parser(sub_parsers) main_package.configure_parser(sub_parsers) main_pip.configure_parser(sub_parsers) main_skeleton.configure_parser(sub_parsers) main_share.configure_parser(sub_parsers) main_clone.configure_parser(sub_parsers) main_build.configure_parser(sub_parsers) main_index.configure_parser(sub_parsers) main_config.configure_parser(sub_parsers) args = p.parse_args() if args.debug: logging.basicConfig(level=logging.DEBUG) try: args.func(args, p) except RuntimeError as e: sys.exit(filldedent("Error: %s" % e)) except Exception as e: if e.__class__.__name__ not in ('ScannerError', 'ParserError'): print("""\ An unexpected error has occurred, please consider sending the following traceback to the conda GitHub issue tracker at: https://github.com/ContinuumIO/conda/issues" """) raise # as if we did not catch it