Skip to content

Commit 482f6c8

Browse files
committed
Fix permission error
1 parent f4ed155 commit 482f6c8

File tree

6 files changed

+25
-41
lines changed

6 files changed

+25
-41
lines changed

premise/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
__all__ = ("NewDatabase", "clear_cache", "get_regions_definition")
2-
__version__ = (2, 1, 0, "dev4")
2+
__version__ = (2, 1, 0, "dev5")
33

44

55
from premise.new_database import NewDatabase

premise/logger.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,12 @@ def empty_log_files():
5858
for file in DIR_LOG_REPORT.iterdir():
5959
# if suffix is ".log"
6060
if file.suffix == ".log":
61-
file.unlink()
61+
try:
62+
file.unlink()
63+
except PermissionError:
64+
try:
65+
# instead, let's empty the file
66+
with open(file, "w") as f:
67+
f.write("")
68+
except PermissionError:
69+
pass

premise/new_database.py

+9-2
Original file line numberDiff line numberDiff line change
@@ -1042,10 +1042,18 @@ def write_db_to_matrices(self, filepath: str = None):
10421042
10431043
"""
10441044

1045+
def scenario_name(scenario):
1046+
name = scenario["pathway"]
1047+
1048+
if "external scenarios" in scenario:
1049+
for external in scenario["external scenarios"]:
1050+
name += f"-{external['scenario']}"
1051+
return name
1052+
10451053
if filepath is not None:
10461054
if isinstance(filepath, str):
10471055
filepath = [
1048-
(Path(filepath) / s["model"] / s["pathway"] / str(s["year"]))
1056+
(Path(filepath) / s["model"] / scenario_name(s) / str(s["year"]))
10491057
for s in self.scenarios
10501058
]
10511059
elif isinstance(filepath, list):
@@ -1072,7 +1080,6 @@ def write_db_to_matrices(self, filepath: str = None):
10721080
keep_uncertainty_data=self.keep_uncertainty_data,
10731081
)
10741082
Export(scenario, filepath[s], self.version).export_db_to_matrices()
1075-
del scenario["database"]
10761083

10771084
# generate scenario report
10781085
self.generate_scenario_report()

premise/transformation.py

-17
Original file line numberDiff line numberDiff line change
@@ -310,23 +310,6 @@ def find_fuel_efficiency(
310310
print(
311311
f"Warning: {dataset['name'], dataset['location']} has no energy input"
312312
)
313-
for exc in dataset["exchanges"]:
314-
print(
315-
exc["type"],
316-
exc["name"],
317-
exc["amount"],
318-
exc.get("product"),
319-
exc["unit"],
320-
)
321-
from pprint import pprint
322-
323-
print()
324-
pprint(fuel_filters)
325-
print()
326-
pprint(fuel_specs)
327-
print()
328-
pprint(fuel_map_reverse)
329-
print()
330313

331314
if energy_input != 0 and float(energy_out) != 0:
332315
current_efficiency = float(energy_out) / energy_input

premise/transport.py

-20
Original file line numberDiff line numberDiff line change
@@ -517,26 +517,6 @@ def create_vehicle_markets(self) -> list:
517517
Create vehicle market (fleet average) datasets.
518518
"""
519519

520-
# # create and regionalize vehicle datasets
521-
# vehicle_datasets = list(ws.get_many(
522-
# self.database,
523-
# ws.either(*[
524-
# ws.contains("name", size)
525-
# for size in self.mapping[self.vehicle_type]["sizes"]
526-
# ]),
527-
# ws.contains("name", self.vehicle_type),
528-
# ws.equals("unit", "unit")
529-
# ))
530-
#
531-
# for ds in vehicle_datasets:
532-
# new_vehicle_datasets = self.fetch_proxies(
533-
# subset = vehicle_datasets,
534-
# name=ds["name"],
535-
# ref_prod=ds["reference product"],
536-
# )
537-
#
538-
# self.database.extend(new_vehicle_datasets.values())
539-
540520
# create and regionalize transport datasets
541521
filters = [
542522
ws.either(

premise/utils.py

+6
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,9 @@ def dump_database(scenario):
357357
:param scenario: scenario dictionary
358358
"""
359359

360+
if "database filepath" in scenario:
361+
return scenario
362+
360363
# generate random name
361364
name = f"{uuid.uuid4().hex}.pickle"
362365
# dump as pickle
@@ -374,6 +377,9 @@ def load_database(scenario):
374377
:param scenario: scenario dictionary
375378
"""
376379

380+
if "database" in scenario:
381+
return scenario
382+
377383
filepath = scenario["database filepath"]
378384

379385
# load pickle

0 commit comments

Comments
 (0)