Installation

Installation#

Conda#

You can install Cubed with a minimal set of dependencies using conda:

conda install -c conda-forge cubed

Pip#

You can also install Cubed with pip:

python -m pip install cubed

Optional dependencies#

Cubed has many optional dependencies, which can be installed in sets for different functionality (especially for running on different executors):

$ python -m pip install "cubed[diagnostics]"  # Install optional dependencies for cubed diagnostics
$ python -m pip install "cubed[beam]"         # Install optional dependencies for the beam executor
$ python -m pip install "cubed[lithops]"      # Install optional dependencies for the lithops executor
$ python -m pip install "cubed[modal]"        # Install optional dependencies for the modal executor

To see the full list of which packages are installed with which options see [project.optional_dependencies] in pyproject.toml:

[project.optional-dependencies]
diagnostics = [
    "tqdm",
    "graphviz",
    "jinja2",
    "pydot",
    "pandas",
    "matplotlib",
    "rich",
    "seaborn",
]
beam = ["apache-beam", "gcsfs"]
dask = ["dask"]
dask-distributed = ["distributed"]
lithops = ["lithops[aws] >= 2.7.0"]
lithops-aws = [
    "cubed[diagnostics]",
    "lithops[aws]",
    "s3fs",
]
lithops-gcp = [
    "cubed[diagnostics]",
    "lithops[gcp]",
    "gcsfs",
]
modal = [
    "cubed[diagnostics]",
    "modal-client",
    "s3fs",
]
modal-gcp = [
    "cubed[diagnostics]",
    "modal-client",
    "gcsfs",
]
coiled = [
    "cubed[diagnostics]",
    "coiled",
    "dask[complete]",
    "s3fs",
]
test = [
    "cubed[diagnostics,lithops]",  # modal tests separate due to conflicting package reqs
    "dill",
    "numpy_groupies",
    "pytest",
    "pytest-cov",
    "pytest-mock",
]
test-beam = [
    "cubed[beam,diagnostics]",
    "dill",
    "numpy_groupies",
    "pytest",
    "pytest-cov",
    "pytest-mock",
]
test-dask = [
    "cubed[dask,diagnostics]",
    "dill",
    "numpy_groupies",
    "pytest",
    "pytest-cov",
    "pytest-mock",
]
test-dask-distributed = [
    "cubed[dask-distributed,diagnostics]",
    "dill",
    "numpy_groupies",
    "pytest",
    "pytest-cov",
    "pytest-mock",
]
test-modal = [
    "cubed[modal]",
    "numpy_groupies",
    "dill",
    "pytest",
    "pytest-cov",
    "pytest-mock",
]