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
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")
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")
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
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")
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')
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
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)
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