PyPI download stats for Datasette projects
Showing downloads for
const packageName = view(Inputs.select(packages, {
value: "sqlite-utils",
label: "Package"
}));
Plot.plot({
y: {
grid: true,
label: `${packageName} PyPI downloads per day`
},
width: width,
marginLeft: 60,
marks: [
Plot.line(data_with_dates, {
x: "date",
y: "downloads",
title: "downloads",
tip: true
})
]
})
Fetch statistics for selected package
const data = d3.json(
`https://datasette.io/content/stats.json?_size=max&package=${packageName}&_sort_desc=date&_shape=array`
);
const data_with_dates = data.map(function(d) {
d.date = d3.timeParse("%Y-%m-%d")(d.date);
return d;
})
Inputs.table(data_with_dates)
Fetch list of packages
const packages_sql = "select package from stats group by package order by max(downloads) desc"
const packages = fetch(
`https://datasette.io/content.json?sql=${encodeURIComponent(
packages_sql
)}&_size=max&_shape=arrayfirst`
).then((r) => r.json());
packages