mobility icon indicating copy to clipboard operation
mobility copied to clipboard

Fichier ZIP incomplet

Open Mind-the-Cap opened this issue 6 months ago • 2 comments

Quand un fichier ZIP n'a pas été totalement téléchargé lors d'une itération précédente (par exemple à cause d'une mauvaise connexion), il apparaît quand même dans le dossier (mais n'est pas un ZIP complet et n'est pas ouvrable par le gestionnaire de dossiers). Cela peut causer une erreur BadZipFile à l'exécution suivante qui n'est pas triviale à comprendre (cf. ci-dessous).

Plusieurs possibilités :

  • expliquer pourquoi dans la doc ainsi que la solution (qui est tout simplement de supprimer manuellement le fichier ZIP incomplet)
  • changer le fonctionnement : télécharger dans un dossier temporaire puis modifier l'emplacement du fichier ZIP complet ? ajouter un timeout pour avoir une erreur plus claire ?
024-08-23 13:39:15.774 INFO     Reusing already downloaded file at : C:\Users\dubrocac\.mobility\data\insee\census_localized_individuals\RP2019_INDCVIZD_csv.zip.
Traceback (most recent call last):

  File ~\AppData\Local\miniforge3\envs\mob2\Lib\site-packages\spyder_kernels\py3compat.py:356 in compat_exec
    exec(code, globals, locals)

  File c:\users\dubrocac\documents\github\mobility\examples\trip_localizer_detailed_steps\trip_localizer_detailed_steps.py:54
    trips_df = trips.get()

  File ~\Documents\GitHub\mobility\mobility\asset.py:84 in get
    asset = self.create_and_get_asset(*args, **kwargs)

  File ~\Documents\GitHub\mobility\mobility\trips.py:68 in create_and_get_asset
    population = self.inputs["population"].get()

  File ~\Documents\GitHub\mobility\mobility\asset.py:84 in get
    asset = self.create_and_get_asset(*args, **kwargs)

  File ~\Documents\GitHub\mobility\mobility\population.py:41 in create_and_get_asset
    census_data = self.get_census_data(transport_zones)

  File ~\Documents\GitHub\mobility\mobility\population.py:94 in get_census_data
    census_data = [CensusLocalizedIndividuals(tz_region).get() for tz_region in transport_zones_regions]

  File ~\Documents\GitHub\mobility\mobility\population.py:94 in <listcomp>
    census_data = [CensusLocalizedIndividuals(tz_region).get() for tz_region in transport_zones_regions]

  File ~\Documents\GitHub\mobility\mobility\asset.py:84 in get
    asset = self.create_and_get_asset(*args, **kwargs)

  File ~\Documents\GitHub\mobility\mobility\parsers\census_localized_individuals.py:60 in create_and_get_asset
    with zipfile.ZipFile(output_path, "r") as zip_ref:

  File ~\AppData\Local\miniforge3\envs\mob2\Lib\zipfile.py:1312 in __init__
    self._RealGetContents()

  File ~\AppData\Local\miniforge3\envs\mob2\Lib\zipfile.py:1379 in _RealGetContents
    raise BadZipFile("File is not a zip file")

BadZipFile: File is not a zip file

Mind-the-Cap avatar Aug 23 '24 11:08 Mind-the-Cap