Exemplo n.º 1
0
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 []
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
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 []
Exemplo n.º 5
0
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()
Exemplo n.º 6
0
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)