示例#1
0
    def __new__(cls, *args, _delayed=True, **kwargs):
        # If _delayed=True, we return a task instance wrapped in dask.delayed.

        if cls is Task:
            raise NotImplementedError

        # Create instance
        self = super().__new__(cls)

        # Initialize instance attributes. Dependencies are overridden as they are
        # non-data descriptors.
        self.__bound = cls.__signature__.bind_partial(*args, **kwargs)
        for name, value in self.__bound.arguments.items():
            setattr(self, name, value)

        if _delayed:
            # Return the task instance as a dask.delayed function,
            # called with the task.run parameters.
            func = cls._delayed_run
            args, kwargs = self._run_arguments
            return func(literal(self), args, kwargs, dask_key_name=self.dask_key)
        else:
            # Return instance. Needed for Task serialization.
            return self
示例#2
0
def test_tokenize_literal():
    assert tokenize(literal(["x", 1])) == tokenize(literal(["x", 1]))
示例#3
0
def test_literal_serializable():
    l = literal((add, 1, 2))
    assert pickle.loads(pickle.dumps(l)).data == (add, 1, 2)
示例#4
0
def test_literal_serializable():
    l = literal((add, 1, 2))
    assert pickle.loads(pickle.dumps(l)).data == (add, 1, 2)