def metapackages(bound=None): # process search filterinfo = MetapackagesFilterInfo() filterinfo.ParseFlaskArgs() request = filterinfo.GetRequest() request.Bound(bound) # get packages packages = get_db().GetMetapackages(request, limit=config['METAPACKAGES_PER_PAGE']) # on empty result, fallback to show first, last set of results if not packages: request = filterinfo.GetRequest() if bound and bound.startswith('..'): request.NameTo(None) packages = get_db().GetMetapackages( request, limit=config['METAPACKAGES_PER_PAGE']) firstname, lastname = get_packages_name_range(packages) metapackagedata = metapackages_to_summary_items( PackagesToMetapackages(packages), filterinfo.GetRepo(), filterinfo.GetMaintainer()) return flask.render_template('metapackages.html', firstname=firstname, lastname=lastname, search=filterinfo.GetDict(), advanced=filterinfo.IsAdvanced(), metapackagedata=metapackagedata, repo=filterinfo.GetRepo(), maintainer=filterinfo.GetMaintainer())
def projects(bound: Optional[str] = None) -> Response: # process search filterinfo = MetapackagesFilterInfo() filterinfo.parse_flask_args() request = filterinfo.get_request() request.set_bound(bound) # get packages def get_packages( request: MetapackageRequest ) -> Tuple[Dict[str, Dict[str, Any]], List[PackageDataSummarizable]]: metapackages = get_db().query_metapackages( **request.__dict__, limit=config['METAPACKAGES_PER_PAGE'], ) packages = [ PackageDataSummarizable(**item) for item in get_db().get_metapackages_packages( list(metapackages.keys()), summarizable=True) ] return metapackages, packages metapackages, packages = get_packages(request) # on empty result, fallback to show first, last set of results if not packages: request = filterinfo.get_request() if bound and bound.startswith('..'): request.require_name_to(None) metapackages, packages = get_packages(request) firstname, lastname = get_packages_name_range(packages) metapackagedata = packages_to_summary_items(packages, filterinfo.get_repo(), filterinfo.get_maintainer()) return flask.render_template('projects.html', firstname=firstname, lastname=lastname, search=filterinfo.get_dict(), advanced=filterinfo.is_advanced(), metapackages=metapackages, metapackagedata=metapackagedata, repo=filterinfo.get_repo(), maintainer=filterinfo.get_maintainer())
def metapackages(bound=None): # process search filterinfo = MetapackagesFilterInfo() filterinfo.ParseFlaskArgs() request = filterinfo.GetRequest() request.Bound(bound) # get packages def get_packages(request): metapackages = get_db().query_metapackages( **request.__dict__, limit=config['METAPACKAGES_PER_PAGE'], ) packages = get_db().get_metapackages_packages( list(metapackages.keys()), fields=[ 'repo', 'family', 'effname', 'version', 'versionclass', 'maintainers', 'flags' ]) return metapackages, packages metapackages, packages = get_packages(request) # on empty result, fallback to show first, last set of results if not packages: request = filterinfo.GetRequest() if bound and bound.startswith('..'): request.NameTo(None) metapackages, packages = get_packages(request) firstname, lastname = get_packages_name_range(packages) metapackagedata = metapackages_to_summary_items( PackagesToMetapackages(packages), filterinfo.GetRepo(), filterinfo.GetMaintainer()) return flask.render_template('metapackages.html', firstname=firstname, lastname=lastname, search=filterinfo.GetDict(), advanced=filterinfo.IsAdvanced(), metapackages=metapackages, metapackagedata=metapackagedata, repo=filterinfo.GetRepo(), maintainer=filterinfo.GetMaintainer())
def metapackages_generic(bound, *filters, template='metapackages.html', repo=None, maintainer=None): namefilter = bound_to_filter(bound) # process search search = flask.request.args.to_dict().get('search') search = None if search is None else search.strip() searchfilter = NameSubstringQueryFilter(search) if search else None # get packages packages = get_db().GetMetapackages(namefilter, InAnyRepoQueryFilter(reponames), searchfilter, *filters, limit=config['METAPACKAGES_PER_PAGE']) # on empty result, fallback to show first, last set of results if not packages: if bound and bound.startswith('<'): namefilter = NameStartingQueryFilter() else: namefilter = NameBeforeQueryFilter() packages = get_db().GetMetapackages( namefilter, InAnyRepoQueryFilter(reponames), searchfilter, *filters, limit=config['METAPACKAGES_PER_PAGE']) firstname, lastname = get_packages_name_range(packages) metapackagedata = metapackages_to_summary_items( PackagesToMetapackages(packages), repo, maintainer) return flask.render_template(template, firstname=firstname, lastname=lastname, search=search, metapackagedata=metapackagedata, repo=repo, maintainer=maintainer)