Skip to content

Commit

Permalink
REFACTOR-modin-project#2059: Fix defaults for MODIN_ENGINE and MODIN_…
Browse files Browse the repository at this point in the history
…BACKEND

Signed-off-by: Vasilij Litvinov <[email protected]>
  • Loading branch information
vnlitvinov committed Oct 12, 2020
1 parent cd3610e commit 0247ad3
Showing 1 changed file with 43 additions and 8 deletions.
51 changes: 43 additions & 8 deletions modin/config/envvars.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import os
from textwrap import dedent
import warnings
from packaging import version

from .pubsub import Parameter, _TYPE_PARAMS

Expand All @@ -37,6 +38,14 @@ def get_help(cls) -> str:
return help


class IsDebug(EnvironmentVariable, type=bool):
"""
Forces Modin engine to be "Python" unless specified by $MODIN_ENGINE
"""

varname = "MODIN_DEBUG"


class Engine(EnvironmentVariable, type=str):
"""
Distribution engine to run queries by
Expand All @@ -45,24 +54,50 @@ class Engine(EnvironmentVariable, type=str):
varname = "MODIN_ENGINE"
choices = ("Ray", "Dask", "Python")

def __compute_default():
if IsDebug.get():
return "Python"
try:
import ray

except ImportError:
pass
else:
if version.parse(ray.__version__) != version.parse("0.8.7"):
raise ImportError(
"Please `pip install modin[ray]` to install compatible Ray version."
)
return "Ray"
try:
import dask
import distributed

except ImportError:
raise ImportError(
"Please `pip install modin[ray]` or `modin[dask]` to install an engine"
)
if version.parse(dask.__version__) < version.parse("2.1.0") or version.parse(
distributed.__version__
) < version.parse("2.3.2"):
raise ImportError(
"Please `pip install modin[dask]` to install compatible Dask version."
)
return "Dask"

default = __compute_default()
del __compute_default


class Backend(EnvironmentVariable, type=str):
"""
Engine running on a single node of distribution
"""

varname = "MODIN_BACKEND"
default = "Pandas"
choices = ("Pandas", "OmniSci", "Pyarrow")


class IsDebug(EnvironmentVariable, type=bool):
"""
Forces Modin engine to be "Python" unless specified by $MODIN_ENGINE
"""

varname = "MODIN_DEBUG"


class IsExperimental(EnvironmentVariable, type=bool):
"""
Turns on experimental features
Expand Down

0 comments on commit 0247ad3

Please sign in to comment.