示例#1
0
def format_for_columns(pkgs, options):
    """
    Convert the package data into something usable
    by output_package_listing_columns.
    """
    running_outdated = options.outdated
    # Adjust the header for the `pip list --outdated` case.
    if running_outdated:
        header = ["Package", "Version", "Latest", "Type"]
    else:
        header = ["Package", "Version"]

    data = []
    if options.verbose >= 1 or any(dist_is_editable(x) for x in pkgs):
        header.append("Location")
    if options.verbose >= 1:
        header.append("Installer")

    for proj in pkgs:
        # if we're working on the 'outdated' list, separate out the
        # latest_version and type
        row = [proj.project_name, proj.version]

        if running_outdated:
            row.append(proj.latest_version)
            row.append(proj.latest_filetype)

        if options.verbose >= 1 or dist_is_editable(proj):
            row.append(proj.location)
        if options.verbose >= 1:
            row.append(get_installer(proj))

        data.append(row)

    return data, header
示例#2
0
def format_for_columns(pkgs, options):
    """
    Convert the package data into something usable
    by output_package_listing_columns.
    """
    running_outdated = options.outdated
    # Adjust the header for the `pip list --outdated` case.
    if running_outdated:
        header = ["Package", "Version", "Latest", "Type"]
    else:
        header = ["Package", "Version"]

    data = []
    if options.verbose >= 1 or any(dist_is_editable(x) for x in pkgs):
        header.append("Location")
    if options.verbose >= 1:
        header.append("Installer")

    for proj in pkgs:
        # if we're working on the 'outdated' list, separate out the
        # latest_version and type
        row = [proj.project_name, proj.version]

        if running_outdated:
            row.append(proj.latest_version)
            row.append(proj.latest_filetype)

        if options.verbose >= 1 or dist_is_editable(proj):
            row.append(proj.location)
        if options.verbose >= 1:
            row.append(get_installer(proj))

        data.append(row)

    return data, header
示例#3
0
def format_for_json(packages, options):

    # type: (List[Distribution], Values) -> str

    data = []

    for dist in packages:

        info = {
            'name': dist.project_name,
            'version': str(dist.version),
        }

        if options.verbose >= 1:

            info['location'] = dist.location

            info['installer'] = get_installer(dist)

        if options.outdated:

            info['latest_version'] = str(dist.latest_version)

            info['latest_filetype'] = dist.latest_filetype

        data.append(info)

    return json.dumps(data)
def was_installed_by_pip(pkg):
    # type: (str) -> bool
    """Checks whether pkg was installed by pip

    This is used not to display the upgrade message when pip is in fact
    installed by system package manager, such as dnf on Fedora.
    """
    dist = get_distribution(pkg)
    if not dist:
        return False
    return "pip" == get_installer(dist)
示例#5
0
def was_installed_by_pip(pkg):
    # type: (str) -> bool
    """Checks whether pkg was installed by pip

    This is used not to display the upgrade message when pip is in fact
    installed by system package manager, such as dnf on Fedora.
    """
    try:
        dist = pkg_resources.get_distribution(pkg)
        return "pip" == get_installer(dist)
    except pkg_resources.DistributionNotFound:
        return False
示例#6
0
def format_for_json(packages, options):
    data = []
    for dist in packages:
        info = {"name": dist.project_name, "version": six.text_type(dist.version)}
        if options.verbose >= 1:
            info["location"] = dist.location
            info["installer"] = get_installer(dist)
        if options.outdated:
            info["latest_version"] = six.text_type(dist.latest_version)
            info["latest_filetype"] = dist.latest_filetype
        data.append(info)
    return json.dumps(data)
示例#7
0
 def output_legacy(self, dist, options):
     if options.verbose >= 1:
         return "%s (%s, %s, %s)" % (
             dist.project_name,
             dist.version,
             dist.location,
             get_installer(dist),
         )
     elif dist_is_editable(dist):
         return "%s (%s, %s)" % (dist.project_name, dist.version, dist.location)
     else:
         return "%s (%s)" % (dist.project_name, dist.version)
示例#8
0
def format_for_columns(pkgs, options):
    """
    Convert the package data into something usable
    by output_package_listing_columns.
    """
    running_outdated = options.outdated
    running_columnsx = True if options.list_format == 'columnsx' else False

    # Adjust the header for the `pip list --outdated` case.
    running_showlatest = False
    header = ["Package", "Version"]
    if running_outdated:
        header.append("Latest")
        header.append("Type")
        running_showlatest = True

    data = []
    if options.verbose >= 1 or any(dist_is_editable(x) for x in pkgs):
        header.append("Location")
    if options.verbose >= 1 or running_columnsx:
        header.append("Installer")

    dct = rdCndGetNames() if running_columnsx else {}
    nLngDct = len(dct)
    if (nLngDct > 1):  # dct may be empty on Python without Anaconda
        header.append("Owner")

    for proj in pkgs:
        # if we're working on the 'outdated' list, separate out the
        # latest_version and type
        row = [proj.project_name, proj.version]

        if running_outdated:
            row.append(proj.latest_version)
            row.append(proj.latest_filetype)

        if options.verbose >= 1 or dist_is_editable(proj):
            row.append(proj.location)

        if options.verbose >= 1 or running_columnsx:
            row.append(get_installer(proj))

        if (nLngDct > 1):
            if rdCndIsNameIn(dct, proj.project_name):
                row.append("Anaconda")
            else:
                row.append("ThePip")

        data.append(row)

    return data, header
示例#9
0
def format_for_json(packages, options):
    data = []
    for dist in packages:
        info = {
            'name': dist.project_name,
            'version': six.text_type(dist.version),
        }
        if options.verbose >= 1:
            info['location'] = dist.location
            info['installer'] = get_installer(dist)
        if options.outdated:
            info['latest_version'] = six.text_type(dist.latest_version)
            info['latest_filetype'] = dist.latest_filetype
        data.append(info)
    return DealJson.dumps(data)
示例#10
0
def format_for_json(packages, options):
    data = []
    for dist in packages:
        info = {
            'name': dist.project_name,
            'version': six.text_type(dist.version),
        }
        if options.verbose >= 1:
            info['location'] = dist.location
            info['installer'] = get_installer(dist)
        if options.outdated:
            info['latest_version'] = six.text_type(dist.latest_version)
            info['latest_filetype'] = dist.latest_filetype
        data.append(info)
    return json.dumps(data)
示例#11
0
 def output_legacy(self, dist, options):
     if options.verbose >= 1:
         return '%s (%s, %s, %s)' % (
             dist.project_name,
             dist.version,
             dist.location,
             get_installer(dist),
         )
     elif dist_is_editable(dist):
         return '%s (%s, %s)' % (
             dist.project_name,
             dist.version,
             dist.location,
         )
     else:
         return '%s (%s)' % (dist.project_name, dist.version)
示例#12
0
 def installer(self) -> str:
     return get_installer(self._dist)
示例#13
0
 def installer(self):
     # type: () -> str
     return get_installer(self._dist)