Téléchargez, vérifiez et extrayez facilement des archives
Si vous souhaitez mettre à la disposition de vos utilisateurs des ensembles de données ou d'autres archives et vous assurer qu'ils disposent toujours des dernières versions et qu'ils sont téléchargés correctement, fastdownload
peut vous aider.
En utilisant pip :
pip install fastdownload
...ou en utilisant conda :
conda install -c fastai fastdownload
La situation dans laquelle vous souhaiterez peut-être utiliser fastdownload
est celle où vous avez une ou plusieurs URL pointant vers certaines archives que vous souhaitez rendre disponibles, et vous voulez vous assurer que vos utilisateurs téléchargent ces archives correctement, disposent de la dernière version et que c'est aussi simple que possible. que possible pour qu'ils puissent accéder aux informations contenues dans ces archives.
Votre utilisateur appelle simplement une seule méthode, FastDownload.get
, en transmettant l'URL requise, et l'URL sera téléchargée et extraite dans les répertoires de votre choix. Le chemin d'accès au fichier extrait est renvoyé. Si cette URL a déjà été téléchargée, l'archive ou le contenu mis en cache seront utilisés automatiquement. Cependant, si la taille ou le hachage de l'archive est différent de ce qu'il devrait être, l'utilisateur en sera informé et une nouvelle version sera téléchargée.
À l’avenir, vous souhaiterez peut-être mettre à jour une ou plusieurs de vos archives. Ce faisant, fastdownload
garantira que vos utilisateurs disposent de la dernière version, en vérifiant leurs archives téléchargées par rapport à la taille de votre fichier mis à jour et aux informations de hachage.
Par exemple, fastai
utilise fastdownload
pour donner accès à des ensembles de données pour l'apprentissage en profondeur. les utilisateurs fastai
peuvent les télécharger et les extraire avec une seule commande, en utilisant la valeur de retour pour accéder aux fichiers. Les fichiers sont automatiquement placés dans les sous-répertoires appropriés d'un dossier .fastai
dans le répertoire personnel de l'utilisateur. Si un ensemble de données est mis à jour, les utilisateurs sont informés la prochaine fois qu'ils utiliseront l'ensemble de données, et la dernière version est automatiquement téléchargée et extraite pour eux.
Lorsque vos utilisateurs téléchargent une archive, fastdownload
l'enregistrera automatiquement dans un répertoire, vérifiera si la taille et le hachage correspondent et extraira le contenu. L'utilisation minimale pour le téléchargement et l'extraction est :
à partir de fastdownload import FastDownloadd = FastDownload()path = d.get('https://...')
Après cela, path
contiendra le chemin où se trouvent les fichiers extraits. Par défaut, les archives sont enregistrées dans {base}/archive
et extraites dans {base}/data
. {base}
est par défaut ~/.fastdownload
. S'il existe plusieurs fichiers ou dossiers à la racine de l'archive téléchargée, un nouveau dossier est créé dans data
pour le contenu.
Au lieu de get
, utilisez download
pour télécharger l'URL sans l'extraire, ou extract
pour extraire l'URL sans la télécharger (en supposant qu'elle ait déjà été téléchargée dans le répertoire archive
). Toutes ces méthodes acceptent un paramètre force
qui téléchargera/extraira l'archive même si elle est déjà présente.
Vous pouvez modifier tout ou partie des chemins base
, archive
et data
en les transmettant à FastDownload
:
d = FastDownload(base='~/.mypath', archive='downloaded', data='extracted')
Vous pouvez supprimer le fichier d'archive mis en cache et/ou le contenu extrait avec rm
:
d.rm('https://...')
fastdownload
ajoutera un fichier download_checks.py
à votre module Python qui contient la taille des fichiers et les hachages pour vos archives. Le fichier se trouve dans le même répertoire qu'un module que vous choisissez, par exemple :
d = FastDownload(module=fastai.some_module)
Utilisez ensuite update
pour créer ou mettre à jour la taille et le hachage d'une URL :
d.update('https://...')
Vous trouverez maintenant un fichier appelé download_checks.py
dans le même répertoire où se trouve fastai.some_module
, qui contient un dict Python avec l'URL, la taille et le hachage de ce fichier. Si vous avez déjà téléchargé ce fichier sur votre chemin archive
, il sera utilisé au lieu de télécharger une nouvelle copie. Utilisez d'abord get(force=True)
pour télécharger une nouvelle copie si même vous l'avez dans vos archives.
S'il existe un fichier appelé config.ini
dans votre répertoire base
, alors archive
des clés et data
seront utilisées comme valeurs par défaut pour FastDownload
. Le fichier doit être au format configparser. Voici un exemple config.ini
:
[DEFAULT] archive = downloaded data = extracted
S'il n'y a pas de fichier ini présent, un sera automatiquement créé pour vous en utilisant les détails que vous transmettez à FastDownload
.
Vous pouvez ajouter toutes les paires clé/valeur supplémentaires au fichier de configuration de votre choix. Lorsque vous appelez FastDownload.get
transmettez extract_key
pour utiliser une clé autre que data
pour choisir un emplacement vers lequel extraire.