Esempio n. 1
0
def search_packages_info(query):

    """
    Gather details from installed distributions. Print distribution name,
    version, location, and installed files. Installed files requires a
    pip generated 'installed-files.txt' in the distributions '.egg-info'
    directory.
    """
    installed_packages = dict(
        [(p.project_name.lower(), p) for p in pkg_resources.working_set])


    for name in query:
        normalized_name = name.lower()
        if normalized_name in installed_packages:
            dist = installed_packages[normalized_name]

            try:
                metadata = dist.get_metadata('METADATA')
            except:
                try:
                    metadata = list(dist._get_metadata('PKG-INFO'))
                except:
                    metadata = None

            package = {
                'name': dist.project_name,
                'version': dist.version,
                'requires': [(dep.project_name, dep.specs) for dep in dist.requires()],
                'metadata' : metadata,
            }
            fileinfo.save_data(name, package)
Esempio n. 2
0
def get_package_data(name):
    client = xmlrpclib.ServerProxy('http://pypi.python.org/pypi')
    releases = client.package_releases(name)
    if not releases:
        return

    release = releases[0]

    package = {
        'name': name,
        'version': release,
    }

    more_package_data = get_metadata(client, name, release)

    if more_package_data:
        package.update(more_package_data)

    fileinfo.save_data(name, package, fileinfo.PYPI_DATA_DIR)
Esempio n. 3
0
def get_package_data(name):
    client = xmlrpclib.ServerProxy('http://pypi.python.org/pypi')
    releases = client.package_releases(name)
    if not releases:
        return

    release = releases[0]

    package = {
        'name': name,
        'version': release,
    }

    more_package_data = get_metadata(client, name, release)

    if more_package_data:
        package.update(more_package_data)

    fileinfo.save_data(name, package, fileinfo.PYPI_DATA_DIR)