This commit is contained in:
crflynn
2018-08-23 21:32:20 -04:00
parent c41ce26ff9
commit 31e398c5d3
3 changed files with 45 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
{% extends "layout.html" %}
{% block title %}PyPI Download Stats{% endblock %}
{% block body %}
<h1>FAQs</h1>
<hr>
<h3>
What is the source of the download data?
</h3>
<p>
PyPI provides download records as a publicly available dataset on Google's BigQuery. You can access the data with a Google Cloud account <a href="https://bigquery.cloud.google.com/table/the-psf:pypi.downloads">here</a>.
</p>
<h3>
When is the website data updated?
</h3>
<p>
The data update begins at 01:00:00 UTC and should take less than 10 minutes.
</p>
<h3>
Why are there so many more downloads after July 26, 2018?
</h3>
<p>
PyPI download records are generated by a service known as <a href="https://github.com/pypa/linehaul">linehaul</a>. The previous iteration of the service had an issue which caused it to restart regularly due to running out of memory, resulting in a large quantity of dropped download records. On July 26, a newer version of the service was deployed, which is much more robust and reliable.
</p>
<h3>
Why are the cumulative download counts different from the sum of the downloads from the <i>overall</i> chart?
</h3>
<p>
The cumulative download counts consider only the download records which are not from a known set of PyPI mirror applications, namely <code>bandersnatch</code>, <code>z3c.pypimirror</code>, <code>Artifactory</code>, and <code>devpi</code>. In other words, the cumulative download counts take the sum of the downloads from the <i>Without_mirrors</i> dataset from the chart.
</p>
<h3>
Why disregard mirrors from aggregated data?
</h3>
<p>
The intent of disregarding mirrors is to provide metrics that reflect end-user download aggregation.
</p>
{% endblock %}

View File

@@ -65,6 +65,8 @@
<br> <br>
<a href="{{ url_for('general.about') }}">About</a> <a href="{{ url_for('general.about') }}">About</a>
<br> <br>
<a href="{{ url_for('general.faqs') }}">FAQs</a>
<br>
</p> </p>
</p> </p>
</footer> </footer>

View File

@@ -80,6 +80,12 @@ def about():
return render_template("about.html", user=g.user) return render_template("about.html", user=g.user)
@blueprint.route("/faqs")
def faqs():
"""Render the FAQs page."""
return render_template("faqs.html", user=g.user)
@blueprint.route("/packages/<package>") @blueprint.route("/packages/<package>")
def package(package): def package(package):
"""Render the package page.""" """Render the package page."""