schrockn
11/30/2018, 1:05 PMfreiksenet
11/30/2018, 1:05 PMfreiksenet
11/30/2018, 1:05 PMfreiksenet
11/30/2018, 1:06 PMfreiksenet
11/30/2018, 1:06 PMschrockn
11/30/2018, 1:09 PMschrockn
11/30/2018, 1:09 PMfreiksenet
11/30/2018, 1:10 PMfreiksenet
11/30/2018, 1:10 PMfreiksenet
11/30/2018, 1:10 PMfreiksenet
11/30/2018, 1:10 PMfreiksenet
11/30/2018, 1:11 PMfreiksenet
11/30/2018, 1:11 PMfreiksenet
11/30/2018, 1:11 PMfreiksenet
11/30/2018, 1:12 PMfreiksenet
11/30/2018, 1:12 PMclass SomethingOrError(object):
def __init__(self, it, is_error=None):
self._it = it
self._is_error = is_error
def chain(self, fn):
if is_error and self._is_error(self._it):
return self
else:
result = fn(self._it)
if isinstance(result, SomethingOrError):
return result
else:
return SomethingOrError(result)
def get(self):
return self._it
schrockn
11/30/2018, 1:12 PMschrockn
11/30/2018, 1:12 PMschrockn
11/30/2018, 1:12 PMfreiksenet
11/30/2018, 1:13 PMreturn repository_or_error_from_info(info).chain(pipeline_or_error_from_repository).get()
freiksenet
11/30/2018, 1:13 PMschrockn
11/30/2018, 1:13 PMschrockn
11/30/2018, 1:14 PMschrockn
11/30/2018, 1:14 PMfreiksenet
11/30/2018, 1:15 PMfreiksenet
11/30/2018, 1:15 PMfreiksenet
11/30/2018, 1:15 PMfreiksenet
11/30/2018, 1:15 PMfreiksenet
11/30/2018, 1:15 PM@staticmethod
def get_pipelines(info):
def process_pipelines(repository):
pipelines = []
for pipeline_def in repository.get_all_pipelines():
pipelines.append(Pipeline(pipeline_def))
return pipelines
repositoryOrError = repository_or_error_from_info(info)
return repositoryOrError.bind(process_pipelines).get()
freiksenet
11/30/2018, 1:16 PM