From 1f23eb9a30d16b4e2bdd9f9e051768c2365bb025 Mon Sep 17 00:00:00 2001 From: zhupr Date: Wed, 30 Sep 2020 16:10:28 +0800 Subject: [PATCH] Fix C.provider_uri --- qlib/config.py | 5 +++-- qlib/data/data.py | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/qlib/config.py b/qlib/config.py index 977f8f29c..ce905dc83 100644 --- a/qlib/config.py +++ b/qlib/config.py @@ -207,14 +207,15 @@ class QlibConfig(Config): def resolve_path(self): # resolve path if self["mount_path"] is not None: - self["mount_path"]= str(Path(self["mount_path"]).expanduser().resolve()) + self["mount_path"] = str(Path(self["mount_path"]).expanduser().resolve()) if self.get_uri_type() == QlibConfig.LOCAL_URI: self["provider_uri"] = str(Path(self["provider_uri"]).expanduser().resolve()) def get_uri_type(self): rm = re.match("^[^/ ]+:.+", self["provider_uri"]) - if rm is None: + # Windows path is "C:\\" + if rm is None or Path(self["provider_uri"]).exists(): return QlibConfig.LOCAL_URI else: return QlibConfig.NFS_URI diff --git a/qlib/data/data.py b/qlib/data/data.py index 9b72d1b1c..dc2c5886c 100644 --- a/qlib/data/data.py +++ b/qlib/data/data.py @@ -459,7 +459,7 @@ class DatasetProvider(object): return data @staticmethod - def expression_calculator(inst, start_time, end_time, freq, column_names, spans=None, C=None): + def expression_calculator(inst, start_time, end_time, freq, column_names, spans=None, g_config=None): """ Calculate the expressions for one instrument, return a df result. If the expression has been calculated before, load from cache. @@ -467,6 +467,9 @@ class DatasetProvider(object): return value: A data frame with index 'datetime' and other data columns. """ + # FIXME: Windows OS or MacOS using spawn: https://docs.python.org/3.8/library/multiprocessing.html?highlight=spawn#contexts-and-start-methods + global C + C = g_config # NOTE: This place is compatible with windows, windows multi-process is spawn if getattr(ExpressionD, "_provider", None) is None: register_all_wrappers()