Beispiel #1
0
def main():
    parser = ArgumentParser()
    parser.add_argument("dist_name")
    parser.add_argument("--index-url", "-i")
    parser.add_argument("--for-python",
                        "-p",
                        dest="env",
                        type=python_interpreter)
    parser.add_argument("--verbose",
                        "-v",
                        default=1,
                        type=int,
                        choices=range(3))
    debug = {
        "sys.argv": sys.argv,
        "sys.executable": sys.executable,
        "sys.version": sys.version,
        "sys.path": sys.path,
        "pip.__version__": pip.__version__,
        "pip.__file__": pip.__file__,
    }
    args = parser.parse_args()
    configure_logging(verbosity=args.verbose)
    log.debug("runtime info", **debug)
    result = get(dist_name=args.dist_name,
                 index_url=args.index_url,
                 env=args.env)
    text = json.dumps(result, indent=2, sort_keys=True, separators=(",", ": "))
    print(text)
Beispiel #2
0
def main():
    default_fields = os.environ.get("JOHNNYDEP_FIELDS", "name,summary").split(",")
    parser = ArgumentParser()
    parser.add_argument("req", help="The project name or requirement specifier")
    parser.add_argument("--index-url", "-i")
    parser.add_argument(
        "--output-format",
        "-o",
        choices=["human", "json", "yaml", "python", "toml", "pinned"],
        default="human",
    )
    parser.add_argument(
        "--no-deps", help="Don't recurse the dependency tree", dest="recurse", action="store_false"
    )
    parser.add_argument(
        "--fields", "-f", nargs="*", default=default_fields, choices=list(FIELDS) + ["ALL"]
    )
    parser.add_argument("--for-python", "-p", dest="env", type=python_interpreter)
    parser.add_argument("--verbose", "-v", default=1, type=int, choices=range(3))
    args = parser.parse_args()
    if "ALL" in args.fields:
        args.fields = list(FIELDS)
    configure_logging(verbosity=args.verbose)
    dist = JohnnyDist(args.req, index_url=args.index_url, env=args.env)
    print(dist.serialise(fields=args.fields, format=args.output_format, recurse=args.recurse))
Beispiel #3
0
def main():
    default_fields = os.environ.get('JOHNNYDEP_FIELDS',
                                    'name,summary').split(',')
    parser = ArgumentParser()
    parser.add_argument('req',
                        help='The project name or requirement specifier')
    parser.add_argument('--verbose', '-v', default=0, action='count')
    parser.add_argument('--index-url', '-i', default=DEFAULT_INDEX)
    parser.add_argument(
        '--output-format',
        '-o',
        choices=['json', 'yaml', 'text', 'python', 'toml', 'pinned'],
        default='text')
    parser.add_argument('--no-deps',
                        help="Don't recurse the dependency tree",
                        dest='recurse',
                        action='store_false')
    parser.add_argument('--fields',
                        '-f',
                        nargs='*',
                        default=default_fields,
                        choices=list(FIELDS) + ['ALL'])
    args = parser.parse_args()
    if 'ALL' in args.fields:
        args.fields = list(FIELDS)
    configure_logging(verbosity=args.verbose)
    dist = JohnnyDist(args.req, index_url=args.index_url)
    if args.output_format == 'text':
        table = gen_table(dist, extra_cols=args.fields)
        tabulate.PRESERVE_WHITESPACE = True
        print(tabulate.tabulate(table, headers='keys'))
    else:
        print(
            dist.serialise(fields=args.fields,
                           format=args.output_format,
                           recurse=args.recurse))
Beispiel #4
0
from pathlib import Path
from operator import attrgetter
from collections import namedtuple, defaultdict

from distutils.version import StrictVersion
from pkg_resources import (RequirementParseError,
                           Requirement as _RequirementBase)
from setuptools.command.test import test as _TestCommand
from setuptools.command.develop import develop as _DevelopCommand
from setuptools.command.install import install as _InstallCommand

try:
    import johnnydep
    from johnnydep.lib import JohnnyDist
    from johnnydep.logs import configure_logging
    configure_logging(0)
except ImportError:
    johnnydep = None

VERSION = "1.0a4"

_EXTRA = "extra_"
_REQ_D = Path("requirements")
_CFG_INFO_SECT = "parcyl"
_CFG_REQS_SECT = "parcyl:requirements"

STATUS_CLASSIFIERS = {
    # "alpha": "Development Status :: 1 - Planning",
    # "alpha": "Development Status :: 2 - Pre-Alpha",
    "alpha": "Development Status :: 3 - Alpha",
    "beta": "Development Status :: 4 - Beta",