dog_data = {
let dogZip = await FileAttachment("Dog_Photos@3.zip").zip();
let breeds = d3
.sort(
(await dogZip.file("Readme.txt").text())
.split("\r")
.slice(3, -1)
.map((s) => s.split("\t")),
(a) => a[0]
)
.map((a) => a[1]);
let urls = await Promise.all(
dogZip.filenames
.filter((f) => f.slice(-4) == ".jpg")
.map(async function (name, i) {
return dogZip.file(name).url();
})
);
return d3.zip(breeds, urls).map((a) => ({ breed: a[0], url: a[1] }));
}