Skip to content

Commit

Permalink
Merge pull request #313 from informatics-lab/refactor-intake-loader-d…
Browse files Browse the repository at this point in the history
…river

Refactor intake_loader.py driver
  • Loading branch information
andrewgryan committed Mar 20, 2020
2 parents 59c6e14 + d7ceb3d commit dbaf096
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 14 deletions.
1 change: 0 additions & 1 deletion forest/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@

from .config import *
from . import (
navigate,
redux,
tutorial)
from .db import Database
Expand Down
17 changes: 17 additions & 0 deletions forest/intake_loader.py → forest/drivers/intake_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,29 @@
except ModuleNotFoundError:
intake = None

import forest.view
from forest import geo, util
from forest.drivers import gridded_forecast

# Location of the Pangeo-CMIP6 intake catalogue file.
URL = 'https://raw.githubusercontent.com/NCAR/intake-esm-datastore/master/catalogs/pangeo-cmip6.json'


class Dataset:
def __init__(self, pattern=None, color_mapper=None, **kwargs):
self.pattern = pattern
self.color_mapper = color_mapper

def navigator(self):
return Navigator()

def map_view(self):
loader = IntakeLoader(self.pattern)
view = forest.view.UMView(loader, self.color_mapper)
view.set_hover_properties(INTAKE_TOOLTIPS, INTAKE_FORMATTERS)
return view


@functools.lru_cache(maxsize=64)
def _get_intake_vars(
experiment_id,
Expand Down
5 changes: 1 addition & 4 deletions forest/load.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@
from forest import (
exceptions,
data,
rdt,
intake_loader)
rdt)


__all__ = []
Expand Down Expand Up @@ -83,7 +82,5 @@ def file_loader(file_type, pattern, label=None):
return rdt.Loader(pattern)
elif file_type == 'gpm':
return data.GPM(pattern)
elif file_type == 'intake':
return intake_loader.IntakeLoader(pattern)
else:
raise exceptions.UnknownFileType("unrecognised file_type: {}".format(file_type))
5 changes: 0 additions & 5 deletions forest/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
presets,
redux,
rx,
intake_loader,
navigate,
parse_args)
import forest.components
Expand Down Expand Up @@ -107,10 +106,6 @@ def main(argv=None):
viewer = rdt.View(loader)
elif isinstance(loader, data.GPM):
viewer = view.GPMView(loader, color_mapper)
elif isinstance(loader, intake_loader.IntakeLoader):
viewer = view.UMView(loader, color_mapper)
viewer.set_hover_properties(intake_loader.INTAKE_TOOLTIPS,
intake_loader.INTAKE_FORMATTERS)
else:
viewer = view.UMView(loader, color_mapper)
else:
Expand Down
5 changes: 1 addition & 4 deletions forest/navigate.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
exceptions,
drivers,
db,
rdt,
intake_loader)
rdt)


class Navigator:
Expand Down Expand Up @@ -86,8 +85,6 @@ def from_file_type(cls, paths, file_type, pattern=None):
if file_type.lower() == "rdt":
coordinates = rdt.Coordinates()
return cls(paths, coordinates)
elif file_type.lower() == 'intake':
return intake_loader.Navigator()
else:
raise Exception("Unrecognised file type: '{}'".format(file_type))

Expand Down
21 changes: 21 additions & 0 deletions test/test_drivers_intake_loader.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import bokeh.models
import forest.drivers
import forest.view


def test_dataset_navigator():
dataset = forest.drivers.get_dataset("intake_loader", {})
navigator = dataset.navigator()
assert isinstance(navigator, forest.drivers.intake_loader.Navigator)


def test_dataset_map_view():
pattern = "a_b_c_d_e_f"
dataset = forest.drivers.get_dataset("intake_loader", {
"pattern": pattern,
"color_mapper": bokeh.models.ColorMapper()
})
map_view = dataset.map_view()
assert isinstance(map_view, forest.view.UMView)
assert map_view.tooltips == forest.drivers.intake_loader.INTAKE_TOOLTIPS
assert map_view.formatters == forest.drivers.intake_loader.INTAKE_FORMATTERS

0 comments on commit dbaf096

Please sign in to comment.