How to use the pypistats.models.download.RecentDownloadCount.query.filter_by function in pypistats

To help you get started, we’ve selected a few pypistats examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github crflynn / pypistats.org / pypistats / views / general.py View on Github external
def top():
    """Render the top packages page."""
    top = []
    for category in ("day", "week", "month"):
        downloads = RecentDownloadCount.query.filter_by(category=category).\
            filter(RecentDownloadCount.package != "__all__").\
            order_by(RecentDownloadCount.downloads.desc()).limit(20).all()
        top.append({
            "category": category,
            "packages": [{
                "package": d.package,
                "downloads": d.downloads,
            } for d in downloads]
        })
    return render_template("top.html", top=top, user=g.user)
github crflynn / pypistats.org / pypistats / views / general.py View on Github external
def package_page(package):
    """Render the package page."""
    package = package.replace(".", "-")
    # Recent download stats
    try:
        # Take the min of the lookback and 180
        lookback = min(abs(int(request.args.get("lookback", 180))), 180)
    except ValueError:
        lookback = 180

    start_date = str(datetime.date.today() - datetime.timedelta(lookback))

    recent_downloads = RecentDownloadCount.query.\
        filter_by(package=package).all()

    if len(recent_downloads) == 0:
        return redirect(f"/search/{package}")
    recent = {r: 0 for r in RECENT_CATEGORIES}
    for r in recent_downloads:
        recent[r.category] = r.downloads

    # PyPI metadata
    metadata = None
    if package != "__all__":
        try:
            metadata = requests.get(
                f"https://pypi.python.org/pypi/{package}/json",
                timeout=5).json()
            if metadata["info"].get("requires_dist", None):