def create_parser(): p = ArgumentParser() sub_parsers = p.add_subparsers() main_create.configure_parser(sub_parsers) main_export.configure_parser(sub_parsers) main_list.configure_parser(sub_parsers) main_remove.configure_parser(sub_parsers) main_update.configure_parser(sub_parsers) show_help_on_empty_command() return p
def main(): p = ArgumentParser( description='Tools for inspecting conda packages.', epilog=""" Run --help on the subcommands like 'conda inspect linkages --help' to see the options available. """, ) subcommand = p.add_subparsers( dest='subcommand', ) linkages_help = """ Investigates linkages of binary libraries in a package (works in Linux and OS X). This is an advanced command to aid building packages that link against C libraries. Aggregates the output of ldd (on Linux) and otool -L (on OS X) by dependent packages. Useful for finding broken links, or links against system libraries that ought to be dependent conda packages. """ linkages = subcommand.add_parser( "linkages", # help controls conda inspect -h and description controls conda # inspect linkages -h help=linkages_help, description=linkages_help, ) linkages.add_argument( 'packages', action='store', nargs='*', help='Conda packages to inspect.', ) linkages.add_argument( '--untracked', action='store_true', help="""Inspect the untracked files in the environment. This is useful when used in conjunction with conda build --build-only.""", ) linkages.add_argument( '--show-files', action="store_true", help="Show the files in the package that link to each library", ) linkages.add_argument( '--all', action='store_true', help="Generate a report for all packages in the environment.", ) add_parser_prefix(linkages) objects_help = """ Investigate binary object files in a package (only works on OS X). This is an advanced command to aid building packages that have compiled libraries. Aggregates the output of otool on all the binary object files in a package. """ objects = subcommand.add_parser( "objects", help=objects_help, description=objects_help, ) objects.add_argument( 'packages', action='store', nargs='*', help='Conda packages to inspect.', ) objects.add_argument( '--untracked', action='store_true', help="""Inspect the untracked files in the environment. This is useful when used in conjunction with conda build --build-only.""", ) # TODO: Allow groupby to include the package (like for --all) objects.add_argument( '--groupby', action='store', default='filename', choices=('filename', 'filetype', 'rpath'), help='Attribute to group by (default: %(default)s).', ) objects.add_argument( '--all', action='store_true', help="Generate a report for all packages in the environment.", ) add_parser_prefix(objects) p.set_defaults(func=execute) args = p.parse_args() args_func(args, p)
def main(): p = ArgumentParser( description=""" Generates a boilerplate/skeleton recipe, which you can then edit to create a full recipe. Some simple skeleton recipes may not even need edits. """, epilog=""" Run --help on the subcommands like 'conda skeleton pypi --help' to see the options available. """, ) repos = p.add_subparsers(dest="repo") pypi_example = """ Examples: Create a recipe for the sympy package: conda skeleton pypi sympy Create a recipes for the flake8 package and all its dependencies: conda skeleton pypi --recursive flake8 Use the --pypi-url flag to point to a PyPI mirror url: conda skeleton pypi --pypi-url <mirror-url> package_name """ pypi = repos.add_parser( "pypi", help=""" Create recipe skeleton for packages hosted on the Python Packaging Index (PyPI) (pypi.python.org). """, epilog=pypi_example, ) pypi.add_argument( "packages", action="store", nargs='+', help="""PyPi packages to create recipe skeletons for. You can also specify package[extra,...] features.""", ).completer = PyPIPackagesCompleter pypi.add_argument( "--output-dir", action="store", nargs=1, help="Directory to write recipes to (default: %(default)s).", default=".", ) pypi.add_argument( "--version", action="store", nargs=1, help="Version to use. Applies to all packages.", ) pypi.add_argument( "--all-urls", action="store_true", help="""Look at all URLs, not just source URLs. Use this if it can't find the right URL.""", ) pypi.add_argument( "--pypi-url", action="store", default='https://pypi.python.org/pypi', help="URL to use for PyPI (default: %(default)s).", ) pypi.add_argument( "--no-prompt", action="store_true", default=False, dest="noprompt", help="""Don't prompt the user on ambiguous choices. Instead, make the best possible choice and continue.""") pypi.add_argument( "--all-extras", action="store_true", default=False, help="Add all extra feature requirements. Applies to all packages.", ) pypi.add_argument( "--recursive", action='store_true', help='Create recipes for dependencies if they do not already exist.') pypi.add_argument( "--version-compare", action='store_true', help="""Compare the package version of the recipe with the one available on PyPI.""") pypi.add_argument( "--python-version", action='store', default=default_python, help= """Version of Python to use to run setup.py. Default is %(default)s.""", choices=['2.6', '2.7', '3.3', '3.4'], ) pypi.add_argument( "--manual-url", action='store_true', default=False, help="Manually choose source url when more than one urls are present." + "Default is the one with least source size.") pypi.add_argument("--noarch-python", action='store_true', default=False, help="Creates recipe as noarch python") cpan = repos.add_parser( "cpan", help=""" Create recipe skeleton for packages hosted on the Comprehensive Perl Archive Network (CPAN) (cpan.org). """, ) cpan.add_argument( "packages", action="store", nargs='+', help="CPAN packages to create recipe skeletons for.", ) cpan.add_argument( "--output-dir", help="Directory to write recipes to (default: %(default)s).", default=".", ) cpan.add_argument( "--version", help="Version to use. Applies to all packages.", ) cpan.add_argument( "--meta-cpan-url", action="store", nargs=1, default='http://api.metacpan.org', help="URL to use for MetaCPAN API.", ) cpan.add_argument( "--recursive", action='store_true', help='Create recipes for dependencies if they do not already exist.') cran = repos.add_parser( "cran", help=""" Create recipe skeleton for packages hosted on the Comprehensive R Archive Network (CRAN) (cran.r-project.org). """, ) cran.add_argument( "packages", action="store", nargs='*', help="""CRAN packages to create recipe skeletons for.""", ).completer = CRANPackagesCompleter cran.add_argument( "--output-dir", action="store", nargs=1, help="Directory to write recipes to (default: %(default)s).", default=".", ) cran.add_argument( "--version", action="store", nargs=1, help="Version to use. Applies to all packages.", ) cran.add_argument( "--git-tag", action="store", nargs=1, help="Git tag to use for GitHub recipes.", ) cran.add_argument( "--all-urls", action="store_true", help="""Look at all URLs, not just source URLs. Use this if it can't find the right URL.""", ) cran.add_argument( "--cran-url", action="store", default='http://cran.r-project.org/', help="URL to use for CRAN (default: %(default)s).", ) cran.add_argument( "--recursive", action='store_true', dest='recursive', help='Create recipes for dependencies if they do not already exist.', ) cran.add_argument( "--no-recursive", action='store_false', dest='recursive', help= "Don't create recipes for dependencies if they do not already exist.", ) cran.add_argument( '--no-archive', action='store_false', dest='archive', help="Don't include an Archive download url.", ) cran.add_argument( "--version-compare", action='store_true', help="""Compare the package version of the recipe with the one available on CRAN. Exits 1 if a newer version is available and 0 otherwise.""") cran.add_argument( "--update-outdated", action="store_true", help="""Update outdated packages in the output directory (set by --output-dir). If packages are given, they are updated; otherwise, all recipes in the output directory are updated.""", ) luarocks = repos.add_parser( "luarocks", help=""" Create recipe skeleton for luarocks, hosted at luarocks.org """, ) luarocks.add_argument( "packages", action="store", nargs='+', help="luarocks packages to create recipe skeletons for.", ) luarocks.add_argument( "--output-dir", help="Directory to write recipes to (default: %(default)s).", default=".", ) luarocks.add_argument( "--version", help="Version to use. Applies to all packages.", ) luarocks.add_argument( "--recursive", action='store_true', help='Create recipes for dependencies if they do not already exist.') p.set_defaults(func=execute) args = p.parse_args() args_func(args, p)
def main(): p = ArgumentParser( description=""" Generates a boilerplate/skeleton recipe, which you can then edit to create a full recipe. Some simple skeleton recipes may not even need edits. """, epilog=""" Run --help on the subcommands like 'conda skeleton pypi --help' to see the options available. """, ) repos = p.add_subparsers( dest="repo" ) pypi_example = """ Examples: Create a recipe for the sympy package: conda skeleton pypi sympy Create a recipes for the flake8 package and all its dependencies: conda skeleton pypi --recursive flake8 Use the --pypi-url flag to point to a PyPI mirror url: conda skeleton pypi --pypi-url <mirror-url> package_name """ pypi = repos.add_parser( "pypi", help=""" Create recipe skeleton for packages hosted on the Python Packaging Index (PyPI) (pypi.python.org). """, epilog=pypi_example, ) pypi.add_argument( "packages", action="store", nargs='+', help="""PyPi packages to create recipe skeletons for. You can also specify package[extra,...] features.""", ) pypi.add_argument( "--output-dir", action="store", nargs=1, help="Directory to write recipes to.", default=".", ) pypi.add_argument( "--version", action="store", nargs=1, help="Version to use. Applies to all packages.", ) pypi.add_argument( "--all-urls", action="store_true", help="""Look at all URLs, not just source URLs. Use this if it can't find the right URL.""", ) pypi.add_argument( "--pypi-url", action="store", default='https://pypi.python.org/pypi', help="URL to use for PyPI (default: %(default)s).", ) pypi.add_argument( "--no-download", action="store_false", dest="download", default=True, help="""Don't download the package. This will keep the recipe from finding the right dependencies and entry points if the package uses distribute. WARNING: Without this flag, conda skeleton pypi downloads and runs the package's setup.py script.""" ) pypi.add_argument( "--no-prompt", action="store_true", default=False, dest="noprompt", help="""Don't prompt the user on ambiguous choices. Instead, make the best possible choice and continue.""" ) pypi.add_argument( "--all-extras", action="store_true", default=False, help="Add all extra feature requirements. Applies to all packages.", ) pypi.add_argument( "--recursive", action='store_true', help='Create recipes for dependencies if they do not already exist.' ) pypi.add_argument( "--version-compare", action='store_true', help='Compare the package version of the recipe with the one available' 'on PyPI' ) pypi.add_argument( "--python-version", action='store', default=default_python, help="""Version of Python to use to run setup.py. Default is %(default)s.""", choices=['2.6', '2.7', '3.3', '3.4'], ) pypi.add_argument( "--manual-url", action='store_true', default=False, help="Manually choose source url when more than one urls are present." + "Default is the one with least source size." ) pypi.add_argument( "--noarch-python", action='store_true', default=False, help="Creates recipe as noarch python" ) cpan = repos.add_parser( "cpan", help=""" Create recipe skeleton for packages hosted on the Comprehensive Perl Archive Network (CPAN) (cpan.org). """, ) cpan.add_argument( "packages", action="store", nargs='+', help="CPAN packages to create recipe skeletons for.", ) cpan.add_argument( "--output-dir", help="Directory to write recipes to.", default=".", ) cpan.add_argument( "--version", help="Version to use. Applies to all packages.", ) cpan.add_argument( "--meta-cpan-url", action="store", nargs=1, default='http://api.metacpan.org', help="URL to use for MetaCPAN API.", ) cpan.add_argument( "--recursive", action='store_true', help='Create recipes for dependencies if they do not already exist.') cran = repos.add_parser( "cran", help=""" Create recipe skeleton for packages hosted on the Comprehensive R Archive Network (CRAN) (cran.r-project.org). """, ) cran.add_argument( "packages", action="store", nargs='+', help="""CRAN packages to create recipe skeletons for.""", ) cran.add_argument( "--output-dir", action="store", nargs=1, help="Directory to write recipes to.", default=".", ) cran.add_argument( "--version", action="store", nargs=1, help="Version to use. Applies to all packages.", ) cran.add_argument( "--git-tag", action="store", nargs=1, help="Git tag to use for GitHub recipes.", ) cran.add_argument( "--all-urls", action="store_true", help="""Look at all URLs, not just source URLs. Use this if it can't find the right URL.""", ) cran.add_argument( "--cran-url", action="store", default='http://cran.r-project.org/', help="URL to use for CRAN (default: %(default)s).", ) cran.add_argument( "--recursive", action='store_true', dest='recursive', help='Create recipes for dependencies if they do not already exist.', ) cran.add_argument( "--no-recursive", action='store_false', dest='recursive', help="Don't create recipes for dependencies if they do not already exist.", ) cran.add_argument( '--no-archive', action='store_false', dest='archive', help="Don't include an Archive download url.", ) p.set_defaults(func=execute) args = p.parse_args() args_func(args, p)
def main(): p = ArgumentParser( description='Tools for inspecting conda packages.', epilog=""" Run --help on the subcommands like 'conda inspect linkages --help' to see the options available. """, ) subcommand = p.add_subparsers(dest='subcommand', ) linkages_help = """ Investigates linkages of binary libraries in a package (works in Linux and OS X). This is an advanced command to aid building packages that link against C libraries. Aggregates the output of ldd (on Linux) and otool -L (on OS X) by dependent packages. Useful for finding broken links, or links against system libraries that ought to be dependent conda packages. """ linkages = subcommand.add_parser( "linkages", # help controls conda inspect -h and description controls conda # inspect linkages -h help=linkages_help, description=linkages_help, ) linkages.add_argument( 'packages', action='store', nargs='*', help='Conda packages to inspect.', ) linkages.add_argument( '--untracked', action='store_true', help= """Inspect the untracked files in the environment. This is useful when used in conjunction with conda build --build-only.""", ) linkages.add_argument( '--show-files', action="store_true", help="Show the files in the package that link to each library", ) linkages.add_argument( '--all', action='store_true', help="Generate a report for all packages in the environment.", ) add_parser_prefix(linkages) objects_help = """ Investigate binary object files in a package (only works on OS X). This is an advanced command to aid building packages that have compiled libraries. Aggregates the output of otool on all the binary object files in a package. """ objects = subcommand.add_parser( "objects", help=objects_help, description=objects_help, ) objects.add_argument( 'packages', action='store', nargs='*', help='Conda packages to inspect.', ) objects.add_argument( '--untracked', action='store_true', help= """Inspect the untracked files in the environment. This is useful when used in conjunction with conda build --build-only.""", ) # TODO: Allow groupby to include the package (like for --all) objects.add_argument( '--groupby', action='store', default='filename', choices=('filename', 'filetype', 'rpath'), help='Attribute to group by (default: %(default)s).', ) objects.add_argument( '--all', action='store_true', help="Generate a report for all packages in the environment.", ) add_parser_prefix(objects) p.set_defaults(func=execute) args = p.parse_args() args_func(args, p)
def main(): p = ArgumentParser( description=""" Generates a boilerplate/skeleton recipe, which you can then edit to create a full recipe. Some simple skeleton recipes may not even need edits. """, epilog=""" Run --help on the subcommands like 'conda skeleton pypi --help' to see the options available. """, ) repos = p.add_subparsers( dest="repo" ) pypi_example = """ Examples: Create a recipe for the sympy package: conda skeleton pypi sympy Create a recipes for the flake8 package and all its dependencies: conda skeleton pypi --recursive flake8 Use the --pypi-url flag to point to a PyPI mirror url: conda skeleton pypi --pypi-url <mirror-url> package_name """ pypi = repos.add_parser( "pypi", help=""" Create recipe skeleton for packages hosted on the Python Packaging Index (PyPI) (pypi.python.org). """, epilog=pypi_example, ) pypi.add_argument( "packages", action="store", nargs='+', help="""PyPi packages to create recipe skeletons for. You can also specify package[extra,...] features.""", ).completer = PyPIPackagesCompleter pypi.add_argument( "--output-dir", action="store", nargs=1, help="Directory to write recipes to (default: %(default)s).", default=".", ) pypi.add_argument( "--version", action="store", nargs=1, help="Version to use. Applies to all packages.", ) pypi.add_argument( "--all-urls", action="store_true", help="""Look at all URLs, not just source URLs. Use this if it can't find the right URL.""", ) pypi.add_argument( "--pypi-url", action="store", default='https://pypi.python.org/pypi', help="URL to use for PyPI (default: %(default)s).", ) pypi.add_argument( "--no-prompt", action="store_true", default=False, dest="noprompt", help="""Don't prompt the user on ambiguous choices. Instead, make the best possible choice and continue.""" ) pypi.add_argument( "--all-extras", action="store_true", default=False, help="Add all extra feature requirements. Applies to all packages.", ) pypi.add_argument( "--recursive", action='store_true', help='Create recipes for dependencies if they do not already exist.' ) pypi.add_argument( "--version-compare", action='store_true', help="""Compare the package version of the recipe with the one available on PyPI.""" ) pypi.add_argument( "--python-version", action='store', default=default_python, help="""Version of Python to use to run setup.py. Default is %(default)s.""", choices=['2.6', '2.7', '3.3', '3.4'], ) pypi.add_argument( "--manual-url", action='store_true', default=False, help="Manually choose source url when more than one urls are present." + "Default is the one with least source size." ) pypi.add_argument( "--noarch-python", action='store_true', default=False, help="Creates recipe as noarch python" ) pypi.add_argument( "--setup-options", action='append', default=[], help='Options to be added to setup.py install in the recipe. ' 'The same options are passed to setup.py install in both ' 'the construction of the recipe and in the recipe itself.' 'For options that include a double-hypen or to pass multiple ' 'options, use the syntax ' '--setup-options="--option1 --option-with-arg arg"' ) pypi.add_argument( "--pin-numpy", action='store_true', help="Ensure that the generated recipe pins the version of numpy" "to CONDA_NPY." ) cpan = repos.add_parser( "cpan", help=""" Create recipe skeleton for packages hosted on the Comprehensive Perl Archive Network (CPAN) (cpan.org). """, ) cpan.add_argument( "packages", action="store", nargs='+', help="CPAN packages to create recipe skeletons for.", ) cpan.add_argument( "--output-dir", help="Directory to write recipes to (default: %(default)s).", default=".", ) cpan.add_argument( "--version", help="Version to use. Applies to all packages.", ) cpan.add_argument( "--meta-cpan-url", action="store", nargs=1, default='http://api.metacpan.org', help="URL to use for MetaCPAN API.", ) cpan.add_argument( "--recursive", action='store_true', help='Create recipes for dependencies if they do not already exist.') cran = repos.add_parser( "cran", help=""" Create recipe skeleton for packages hosted on the Comprehensive R Archive Network (CRAN) (cran.r-project.org). """, ) cran.add_argument( "packages", action="store", nargs='*', help="""CRAN packages to create recipe skeletons for.""", ).completer = CRANPackagesCompleter cran.add_argument( "--output-dir", action="store", nargs=1, help="Directory to write recipes to (default: %(default)s).", default=".", ) cran.add_argument( "--version", action="store", nargs=1, help="Version to use. Applies to all packages.", ) cran.add_argument( "--git-tag", action="store", nargs=1, help="Git tag to use for GitHub recipes.", ) cran.add_argument( "--all-urls", action="store_true", help="""Look at all URLs, not just source URLs. Use this if it can't find the right URL.""", ) cran.add_argument( "--cran-url", action="store", default='http://cran.r-project.org/', help="URL to use for CRAN (default: %(default)s).", ) cran.add_argument( "--recursive", action='store_true', dest='recursive', help='Create recipes for dependencies if they do not already exist.', ) cran.add_argument( "--no-recursive", action='store_false', dest='recursive', help="Don't create recipes for dependencies if they do not already exist.", ) cran.add_argument( '--no-archive', action='store_false', dest='archive', help="Don't include an Archive download url.", ) cran.add_argument( "--version-compare", action='store_true', help="""Compare the package version of the recipe with the one available on CRAN. Exits 1 if a newer version is available and 0 otherwise.""" ) cran.add_argument( "--update-outdated", action="store_true", help="""Update outdated packages in the output directory (set by --output-dir). If packages are given, they are updated; otherwise, all recipes in the output directory are updated.""", ) luarocks = repos.add_parser( "luarocks", help=""" Create recipe skeleton for luarocks, hosted at luarocks.org """, ) luarocks.add_argument( "packages", action="store", nargs='+', help="luarocks packages to create recipe skeletons for.", ) luarocks.add_argument( "--output-dir", help="Directory to write recipes to (default: %(default)s).", default=".", ) luarocks.add_argument( "--version", help="Version to use. Applies to all packages.", ) luarocks.add_argument( "--recursive", action='store_true', help='Create recipes for dependencies if they do not already exist.') p.set_defaults(func=execute) args = p.parse_args() args_func(args, p)