def get_partitions( graphene_info, repository_handle, partition_set, cursor=None, limit=None, reverse=False ): check.inst_param(repository_handle, 'repository_handle', RepositoryHandle) check.inst_param(partition_set, 'partition_set', ExternalPartitionSet) result = sync_get_external_partition_names(repository_handle, partition_set.name) if isinstance(result, ExternalPartitionNamesData): partition_names = _apply_cursor_limit_reverse( result.partition_names, cursor, limit, reverse ) return graphene_info.schema.type_named('Partitions')( results=[ graphene_info.schema.type_named('Partition')( external_partition_set=partition_set, external_repository_handle=repository_handle, partition_name=partition_name, ) for partition_name in partition_names ] ) else: assert isinstance(result, ExternalPartitionExecutionErrorData) return graphene_info.schema.type_named('PythonError')(result.error)
def get_partitions(graphene_info, repository_handle, partition_set, cursor=None, limit=None, reverse=False): check.inst_param(repository_handle, 'repository_handle', RepositoryHandle) check.inst_param(partition_set, 'partition_set', ExternalPartitionSet) result = sync_get_external_partition_names(repository_handle, partition_set.name) if isinstance(result, ExternalPartitionNamesData): partition_names = _apply_cursor_limit_reverse(result.partition_names, cursor, limit, reverse) return graphene_info.schema.type_named('Partitions')(results=[ graphene_info.schema.type_named('Partition')( external_partition_set=partition_set, external_repository_handle=repository_handle, partition_name=partition_name, ) for partition_name in partition_names ]) else: # TODO: surface user-facing error here, using the serialized error # https://github.com/dagster-io/dagster/issues/2576 return []
def get_external_partition_names(self, repository_handle, partition_set_name): check.inst_param(repository_handle, 'repository_handle', RepositoryHandle) check.str_param(partition_set_name, 'partition_set_name') return sync_get_external_partition_names(repository_handle, partition_set_name)
def get_partition_names(repository_handle, partition_set_name): check.inst_param(repository_handle, 'repository_handle', RepositoryHandle) check.str_param(partition_set_name, 'partition_set_name') result = sync_get_external_partition_names(repository_handle, partition_set_name) if isinstance(result, ExternalPartitionNamesData): return result.partition_names else: # TODO: surface user-facing error here, using the serialized error # https://github.com/dagster-io/dagster/issues/2576 return []
def test_external_partition_names_error(): repository_handle = get_bar_repo_handle() error = sync_get_external_partition_names(repository_handle, 'error_partitions') assert isinstance(error, ExternalPartitionExecutionErrorData) assert 'womp womp' in error.error.to_string()
def test_external_partition_names(): repository_handle = get_bar_repo_handle() data = sync_get_external_partition_names(repository_handle, 'baz_partitions') assert isinstance(data, ExternalPartitionNamesData) assert data.partition_names == list(string.ascii_lowercase)