Skip to content

Commit e006e78

Browse files
committed
Update remote.py
1 parent 95626a8 commit e006e78

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

bw2io/remote.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from urllib.parse import urljoin
12
from pathlib import Path
23
from typing import Optional,Union
34

@@ -11,35 +12,40 @@
1112
PROJECTS_BW2 = {
1213
"ecoinvent-3.8-biosphere": "ecoinvent-3.8-biosphere.bw2.tar.gz",
1314
"ecoinvent-3.9.1-biosphere": "ecoinvent-3.9.1-biosphere.bw2.tar.gz",
15+
"ecoinvent-3.10-biosphere": "ecoinvent-3.10-biosphere.bw2.tar.gz",
1416
}
1517

1618
PROJECTS_BW25 = {
1719
"ecoinvent-3.8-biosphere": "ecoinvent-3.8-biosphere.tar.gz",
1820
"ecoinvent-3.9.1-biosphere": "ecoinvent-3.9.1-biosphere.tar.gz",
1921
"USEEIO-1.1": "USEEIO-1.1.tar.gz",
22+
"forwast": "forwast.tar.gz",
2023
}
2124

2225
cache_dir = Path(bd.projects._base_data_dir) / "bw2io_cache_dir"
2326
cache_dir.mkdir(exist_ok=True)
2427

2528

26-
def get_projects(update_config: Optional[bool] = True) -> dict:
29+
def get_projects(update_config: bool = True, base_url: Optional[str] = None, filename: Optional[str] = None) -> dict:
2730
BW2 = bd.__version__ < (4,)
2831
projects = PROJECTS_BW2 if BW2 else PROJECTS_BW25
29-
URL = "https://files.brightway.dev/"
30-
FILENAME = "projects-config.bw2.json" if BW2 else "projects-config.json"
32+
if base_url is None:
33+
base_url = "https://files.brightway.dev/"
34+
if filename is None:
35+
filename = "projects-config.bw2.json" if BW2 else "projects-config.json"
3136
if update_config:
3237
try:
33-
projects = requests.get(URL + FILENAME).json()
38+
projects.update(requests.get(urljoin(base_url, filename)).json())
3439
except:
40+
print(f"Can't connect to {base_url}")
3541
pass
3642
return projects
3743

3844

3945
def install_project(
4046
project_key: str,
4147
project_name: Optional[str] = None,
42-
projects_config: Optional[dict] = get_projects(),
48+
projects_config: Optional[dict] = None,
4349
url: Optional[str] = "https://files.brightway.dev/",
4450
overwrite_existing: Optional[bool] = False,
4551
__recursive: Union[bool,None] = False
@@ -69,6 +75,9 @@ def install_project(
6975
str
7076
The name of the created project.
7177
"""
78+
if projects_config is None:
79+
projects_config = get_projects(base_url=url)
80+
7281
try:
7382
filename = projects_config[project_key]
7483
except KeyError:
@@ -77,7 +86,7 @@ def install_project(
7786
fp = cache_dir / filename
7887
if not fp.exists():
7988
download_with_progressbar(
80-
url=url + filename, filename=filename, dirpath=cache_dir
89+
url=urljoin(url, filename), filename=filename, dirpath=cache_dir
8190
)
8291

8392
try:

0 commit comments

Comments
 (0)