Exemple #1
0
def parse(buildout_filename, nocache=False):
    sys.stderr.write("Parsing buildout files:")
    if nocache:
        sys.stderr.write("\n(not using caches)")
    base_relative = find_relative(buildout_filename)
    session = requests_session(nocache=nocache)
    version_sections = _extract_versions_section(
        session,
        buildout_filename,
        version_sections=OrderedDict(),
        relative=base_relative)
    sys.stderr.write("\nparsing finished.\n")
    pkgs = {}

    for name in version_sections:
        for pkg in version_sections[name]:
            if pkg not in pkgs:
                pkgs[pkg] = OrderedDict()

    for pkgname in pkgs:
        pkg = pkgs[pkgname]
        for name in version_sections:
            if pkgname in version_sections[name]:
                pkg[name] = version_sections[name][pkgname]

    return pkgs
Exemple #2
0
def update_pkgs_info(pkgsinfo, limit=None, nocache=False):
    session = requests_session(nocache=nocache)
    pkgs = pkgsinfo["pkgs"]
    sys.stderr.write("Check PyPI for data of {0:d} packages.".format(
        len(pkgs)))
    if limit:
        sys.stderr.write(" Check limited to {0:d} packages.".format(limit))
    errors = []

    idx = 0
    for pkg_name, pkg_data in pkgs.items():
        if not idx % 20 and idx != limit:
            sys.stderr.write("\n{0:4d} ".format(idx))

        state = update_pkg_info(pkg_name, pkg_data, session)
        if not state:
            sys.stderr.write("E")
            errors.append((pkg_name, ))
            continue
        sys.stderr.write("O" if state == 1 else "o")
        if limit and idx == limit:
            break
        idx += 1

    for error in errors:
        sys.stderr.write("\nError in {0}".format(*error))

    sys.stderr.write("\nPyPI check finished\n")
Exemple #3
0
def update_tracking_info(pkgsinfo, nocache=False):
    session = requests_session(nocache=nocache)
    pkgs = pkgsinfo["tracking"]["versions"]
    sys.stderr.write("Check PyPI for data of {0:d} packages.".format(
        len(pkgs)))
    errors = []

    idx = 0
    for pkg_name, pkg_data in pkgs.items():
        if not idx % 20:
            sys.stderr.write("\n{0:4d} ".format(idx))

        state, result = update_tracking_version_info(pkg_name, pkg_data,
                                                     session)
        if not state:
            sys.stderr.write("E")
            errors.append((pkg_name, str(result)))
            continue
        sys.stderr.write("O" if state == 1 else "o")
        idx += 1

    for error in errors:
        sys.stderr.write("\nError in {0} reason: {1}".format(*error))

    sys.stderr.write("\nPyPI check finished\n")
Exemple #4
0
def parse(buildout_filename, nocache=False):
    sys.stderr.write("Parsing buildout files:")
    if nocache:
        sys.stderr.write("\n(not using caches)")
    base_relative, buildout_filename = find_relative(buildout_filename)
    session = requests_session(nocache=nocache)
    version_sections, annotations = _extract_versions_section(
        session, buildout_filename, relative=base_relative)
    sys.stderr.write("\nparsing finished.\n")
    pkgs = {}

    for name in version_sections:
        for pkg in version_sections[name]:
            if pkg not in pkgs:
                pkgs[pkg] = OrderedDict()

    for pkgname in pkgs:
        pkg = pkgs[pkgname]
        for name in version_sections.keys():
            if pkgname in version_sections.get(name, {}):
                pkg[name] = {"v": version_sections[name][pkgname], "a": ""}

        for name in annotations.keys():
            if pkgname in annotations.get(name, {}):
                if name in pkg:
                    pkg[name]["a"] = annotations[name][pkgname]
                else:
                    pkg[name] = {"v": None, "a": annotations[name][pkgname]}

    return pkgs
Exemple #5
0
def check_all(pkgsinfo, limit=None, nocache=False):
    session = requests_session(nocache=nocache)
    pkgs = pkgsinfo["pkgs"]
    sys.stderr.write("Check PyPI for updates of {0:d} packages.".format(
        len(pkgs)))
    if limit:
        sys.stderr.write(" Check limited to {0:d} packages.".format(limit))
    pkgsinfo["pypi"] = {}
    errors = []
    for idx, pkgname in enumerate(sorted(pkgs)):
        if not idx % 20 and idx != limit:
            sys.stderr.write("\n{0:4d} ".format(idx))
        current = next(iter(pkgs[pkgname]))
        state, result = check(pkgname, pkgs[pkgname][current]["v"], session)
        if not state:
            sys.stderr.write("E")
            errors.append((pkgname, pkgs[pkgname][current]["v"], str(result)))
            continue
        pkgsinfo["pypi"][pkgname] = result
        sys.stderr.write("O" if state == 1 else "o")
        if limit and idx == limit:
            break
    for error in errors:
        sys.stderr.write(
            "\nError in {0} version {1} reason: {2}".format(*error))

    sys.stderr.write("\nPyPI check finished\n")
Exemple #6
0
def check_all(pkgsinfo, limit=None, nocache=False):
    session = requests_session(nocache=nocache)
    pkgs = pkgsinfo['pkgs']
    sys.stderr.write(
        'Check PyPI for updates of {0:d} packages.'.format(len(pkgs))
    )
    if limit:
        sys.stderr.write(' Check limited to {0:d} packages.'.format(limit))
    pkgsinfo['pypi'] = {}
    errors = []
    for idx, pkgname in enumerate(sorted(pkgs)):
        if not idx % 20 and idx != limit:
            sys.stderr.write('\n{0:4d} '.format(idx))
        current = next(iter(pkgs[pkgname]))
        state, result = check(
            pkgname,
            pkgs[pkgname][current]['v'],
            session
        )
        if not state:
            sys.stderr.write('E')
            errors.append((pkgname, pkgs[pkgname][current]['v'], str(result)))
            continue
        pkgsinfo['pypi'][pkgname] = result
        sys.stderr.write('O' if state == 1 else 'o')
        if limit and idx == limit:
            break
    for error in errors:
        sys.stderr.write(
            '\nError in {0} version {1} reason {2}'.format(
                *error
            )
        )

    sys.stderr.write('\nPyPI check finished\n')
Exemple #7
0
def parse(buildout_filename, nocache=False):
    sys.stderr.write("Parsing buildout files:")
    if nocache:
        sys.stderr.write("\n(not using caches)")
    base_relative = find_relative(buildout_filename)
    session = requests_session(nocache=nocache)
    version_sections, annotations = _extract_versions_section(session, buildout_filename, relative=base_relative)
    sys.stderr.write("\nparsing finished.\n")
    pkgs = {}

    for name in version_sections:
        for pkg in version_sections[name]:
            if pkg not in pkgs:
                pkgs[pkg] = OrderedDict()

    for pkgname in pkgs:
        pkg = pkgs[pkgname]
        for name in version_sections.keys():
            if pkgname in version_sections.get(name, {}):
                pkg[name] = {"v": version_sections[name][pkgname], "a": ""}

        for name in annotations.keys():
            if pkgname in annotations.get(name, {}):
                if name in pkg:
                    pkg[name]["a"] = annotations[name][pkgname]
                else:
                    pkg[name] = {"v": None, "a": annotations[name][pkgname]}

    return pkgs
Exemple #8
0
def test_check():
    session = requests_session(nocache=False)
    name = u'demo'
    responses.add(
        responses.GET,
        '{0}/{1}/json'.format(PYPI_URL, name),
        content_type='application/json',
        body=demo_json,
    )
    assert check(name, u'1.0', session) == (1, assumed_demo_result)
def test_check():
    session = requests_session(nocache=False)
    name = u"demo"
    responses.add(
        responses.GET,
        "{url}/pypi/{name}/json".format(url=PYPI_URL, name=name),
        content_type="application/json",
        body=demo_json,
    )
    assert check(name, u"1.0", session) == (1, assumed_demo_result)
Exemple #10
0
def parse(buildout_filename, nocache=False):
    sys.stderr.write("Parsing buildout files:")
    if nocache:
        sys.stderr.write("\n(not using caches)")
    base_relative = find_relative(buildout_filename)
    session = requests_session(nocache=nocache)
    version_sections = _extract_versions_section(
        session, buildout_filename, version_sections=OrderedDict(), relative=base_relative
    )
    sys.stderr.write("\nparsing finished.\n")
    pkgs = {}

    for name in version_sections:
        for pkg in version_sections[name]:
            if pkg not in pkgs:
                pkgs[pkg] = OrderedDict()

    for pkgname in pkgs:
        pkg = pkgs[pkgname]
        for name in version_sections:
            if pkgname in version_sections[name]:
                pkg[name] = version_sections[name][pkgname]

    return pkgs