I'm updating my package for Dirichlet Characters (https://github.com/truculentmath/DirichletCharacters) to include precomputed zeros of the associated $L$-series. That's about 15 meg of data, currently parsed into about 900 files. Most users of the package (there aren't many, yet) would not use that data, but for those that would, the data will be a valuable time saver. A particular user may only use the data from 1 file, or 5 files. In my own work, I need all 900.
Where is the correct location (to instruct the user) to put the data? FileNameJoin[{$UserBaseDirectory, "Applications", "CharacterData"}]? Is there a convenient (or standard) way for the package to load the data if the user has the data files and tries to use the function, but to not load those files that aren't called for, or that the user doesn't have? Is there a reasonable way to (within the package) have the user download the data?
Uncompress
. There are more efficient ways to store it too, e.g. a gzipped MX file (though I'm not sure how future-proof that is). $\endgroup$$UserBaseDirectory/ApplicationData/DirichletCharacters
. Some people use the package's own installation directory, but I don't like that approach: what if the package is updated or reinstalled or repackaged into paclet form? $\endgroup$Dataset
, as the performance is not always great. Would you be okay with using other formats to manipulate the data in your package? $\endgroup$