Skip to content

Commit 3969f7d

Browse files
author
Marin Visscher
committed
Converting between sqlite and functional_sqlite backends
1 parent e3f9f1e commit 3969f7d

2 files changed

Lines changed: 12 additions & 20 deletions

File tree

bw_functional/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
"MFExchanges",
99
"FunctionalSQLiteDatabase",
1010
"property_allocation",
11+
"convert_sqlite_to_functional_sqlite",
12+
"convert_functional_sqlite_to_sqlite"
1113
)
1214
# import os
1315
__version__ = "0.0.2"
@@ -21,6 +23,7 @@
2123
from .database import FunctionalSQLiteDatabase
2224
from .node_classes import Process, Product
2325
from .edge_classes import MFExchange, MFExchanges
26+
from .convert import convert_sqlite_to_functional_sqlite, convert_functional_sqlite_to_sqlite
2427

2528
log = getLogger(__name__)
2629

bw_functional/convert.py

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,16 @@
99
log = getLogger(__name__)
1010

1111

12-
def convert_sqlite_to_functional_sqlite(database_name: str) -> dict:
13-
return SQLiteToFunctionalSQLite.convert(database_name)
12+
def convert_sqlite_to_functional_sqlite(database_dict: dict) -> dict:
13+
return SQLiteToFunctionalSQLite.convert(database_dict)
1414

1515

1616
class SQLiteToFunctionalSQLite:
1717
@classmethod
18-
def convert(cls, database_name: str):
19-
db = bd.Database(database_name)
20-
21-
if not isinstance(db, SQLiteBackend):
22-
raise TypeError("Database is not of type SQLite.")
23-
18+
def convert(cls, database_dict: dict):
2419
converted = {}
2520

26-
for key, ds in tqdm.tqdm(db.load().items()):
21+
for key, ds in tqdm.tqdm(database_dict.items()):
2722
if ds["type"] in ["process", "processwithreferenceproduct"]:
2823
converted.update(cls.convert_process(key, ds))
2924

@@ -87,24 +82,18 @@ def convert_exchanges(key, ds) -> None:
8782
exc["input"] = (database, exc["input"][1] + "_function")
8883

8984

90-
def convert_functional_sqlite_to_sqlite(database_name: str):
91-
return FunctionalSQLiteToSQLite.convert(database_name)
85+
def convert_functional_sqlite_to_sqlite(database_dict: dict):
86+
return FunctionalSQLiteToSQLite.convert(database_dict)
9287

9388

9489
class FunctionalSQLiteToSQLite:
9590
@classmethod
96-
def convert(cls, database_name: str):
97-
db = bd.Database(database_name)
98-
99-
if not isinstance(db, FunctionalSQLiteDatabase):
100-
raise TypeError("Database is not of type functional_sqlite.")
101-
102-
raw = db.load()
91+
def convert(cls, database_dict: dict):
10392
converted = {}
10493

105-
for key, ds in tqdm.tqdm(raw.items()):
94+
for key, ds in tqdm.tqdm(database_dict.items()):
10695
if ds["type"] in ["product", "waste"]:
107-
processor = raw[ds["processor"]]
96+
processor = database_dict[ds["processor"]]
10897
converted[key] = cls.convert_function(key, ds, processor)
10998

11099
return converted

0 commit comments

Comments
 (0)