From 30f615b9af0f451c63a8990c4f3af13e422972d5 Mon Sep 17 00:00:00 2001
From: Christian <christian.geishauser@hhu.de>
Date: Tue, 5 Jul 2022 09:45:34 +0200
Subject: [PATCH] solved by 1) ensuring database exists or is downloaded and 2)
 import using exec python method

---
 convlab/policy/vector/vector_base.py | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/convlab/policy/vector/vector_base.py b/convlab/policy/vector/vector_base.py
index 62245a32..8b7d8ff0 100644
--- a/convlab/policy/vector/vector_base.py
+++ b/convlab/policy/vector/vector_base.py
@@ -3,7 +3,6 @@ import os
 import sys
 import numpy as np
 
-from data.unified_datasets.multiwoz21.database import Database
 from copy import deepcopy
 from convlab.policy.vec import Vector
 from convlab.util.custom_util import flatten_acts
@@ -26,8 +25,11 @@ class VectorBase(Vector):
         self.set_seed(seed)
         self.ontology = load_ontology(dataset_name)
         try:
-            #self.db = load_database(dataset_name)
-            self.db = Database()
+            # execute to make sure that the database exists or is downloaded otherwise
+            load_database(dataset_name)
+            # the following two lines are needed for pickling correctly during multi-processing
+            exec(f'from data.unified_datasets.{dataset_name}.database import Database')
+            self.db = eval('Database()')
             self.db_domains = self.db.domains
         except Exception as e:
             self.db = None
-- 
GitLab