def badge_version_for_repo(repo: str, name: str) -> Any: if repo not in repometadata.all_names(): flask.abort(404) args = flask.request.args.to_dict() best_package = packageset_to_best(get_db().get_metapackage_packages( name, repo=repo, fields=['repo', 'version', 'versionclass']), allow_ignored=args.get( 'allow_ignored', False)) left_cell = BadgeCell(flask.request.args.to_dict().get( 'header', repometadata[repo]['singular']), collapsible=True) if best_package is None: # Note: it would be more correct to return 404 with content here, # but some browsers (e.g. Firefox) won't display the image in that case right_cell = BadgeCell('-') else: minversion = flask.request.args.to_dict().get('minversion') unsatisfying = minversion and version_compare(best_package.version, minversion) < 0 right_cell = BadgeCell(best_package.version, badge_color(best_package.versionclass, unsatisfying), truncate=20) return render_generic_badge([[left_cell, right_cell]])
def badge_version_only_for_repo(repo, name): if repo not in repometadata.all_names(): flask.abort(404) packages = get_db().get_metapackage_packages( name, fields=['repo', 'version', 'versionclass']) best_pkg_by_repo = PackagesetToBestByRepo(packages) if repo not in best_pkg_by_repo: return ( flask.render_template('badge-tiny-string.svg', string='-'), # XXX: it's more correct to return 404 with content # here, but some browsers (e.g. Firefox) won't display # the image in that case { 'Content-type': 'image/svg+xml' }) return (flask.render_template( 'badge-tiny-version-only.svg', repo=repo, version=best_pkg_by_repo[repo].version, versionclass=best_pkg_by_repo[repo].versionclass, ), { 'Content-type': 'image/svg+xml' })
def badge_version_for_repo(repo, name): if repo not in repometadata.all_names(): flask.abort(404) packages = get_db().get_metapackage_packages( name, fields=['repo', 'version', 'versionclass']) best_pkg_by_repo = packageset_to_best_by_repo(packages) if repo not in best_pkg_by_repo: # XXX: display this as normal "pill" badge with correct repository name return ( flask.render_template('badge-tiny-string.svg', string='No package'), # XXX: it's more correct to return 404 with content # here, but some browsers (e.g. Firefox) won't display # the image in that case { 'Content-type': 'image/svg+xml' }) minversion = flask.request.args.to_dict().get('minversion') unsatisfying = version_compare(best_pkg_by_repo[repo].version, minversion) < 0 if minversion else False return (flask.render_template( 'badge-tiny-version.svg', repo=repo, version=best_pkg_by_repo[repo].version, versionclass=best_pkg_by_repo[repo].versionclass, unsatisfying=unsatisfying, ), { 'Content-type': 'image/svg+xml' })
def prepare_repos(repos: Collection[str]) -> List[str]: if not repos: return [] repos = set(repos) # ensure correct ordering return [name for name in repometadata.all_names() if name in repos]
def prepare_repos(repos): if not repos: return [] repos = set(repos) # ensure correct ordering return [name for name in repometadata.all_names() if name in repos]
def repository(repo): if repo not in repometadata.all_names(): flask.abort(404) #return (flask.render_template('repository-404.html', repo=repo), 404) if repo not in repometadata.active_names(): # HTTP code is intentionally 404 return (flask.render_template( 'repository-410.html', repo=repo, repo_info=get_db().get_repository_information(repo)), 404) return flask.render_template( 'repository.html', repo=repo, repo_info=get_db().get_repository_information(repo))
def repository(repo: str) -> Response: autorefresh = flask.request.args.to_dict().get('autorefresh') if repo not in repometadata.all_names(): flask.abort(404) #return (flask.render_template('repository-404.html', repo=repo), 404) if repo not in repometadata.active_names(): # HTTP code is intentionally 404 return (flask.render_template('repository-410.html', repo=repo, repo_info=get_db().get_repository_information(repo)), 404) return flask.render_template( 'repository.html', repo=repo, repo_info=get_db().get_repository_information(repo), autorefresh=autorefresh )