Merge pull request 'feature/load_compressed_city' (#46) from feature/load_compressed_city into main

Reviewed-on: https://nextgenerations-cities.encs.concordia.ca/gitea/CERC/hub/pulls/46
This commit is contained in:
Guille Gutierrez 2023-10-05 04:38:59 -04:00
commit bb05b01312

View File

@ -14,6 +14,7 @@ import math
import pickle import pickle
import sys import sys
import pathlib import pathlib
import os
from pathlib import Path from pathlib import Path
from typing import List, Union from typing import List, Union
@ -299,6 +300,20 @@ class City:
with open(city_filename, 'rb') as file: with open(city_filename, 'rb') as file:
return pickle.load(file) return pickle.load(file)
@staticmethod
def load_compressed(compressed_city_filename, destination_filename) -> City:
"""
Load a city from compressed_city_filename
:param compressed_city_filename: Compressed pickle as source
:param destination_filename: Pickle file as destination
:return: City
"""
with open(str(compressed_city_filename), 'rb') as source, open(str(destination_filename), 'wb') as destination:
destination.write(bz2.decompress(source.read()))
loaded_city = City.load(destination_filename)
os.unlink(destination_filename)
return loaded_city
def save(self, city_filename): def save(self, city_filename):
""" """
Save a city into the given filename Save a city into the given filename