コード例 #1
0
ファイル: decorator.py プロジェクト: zjiang91/pytorch
 def __call__(self, cls):
     if isinstance(cls, Type):  # type: ignore
         if not issubclass(cls, IterDataPipe):
             raise TypeError(
                 '`functional_datapipe` can only decorate IterDataPipe')
     # with non_deterministic decorator
     else:
         if not isinstance(cls, non_deterministic) and \
             not (hasattr(cls, '__self__') and
                  isinstance(cls.__self__, non_deterministic)):
             raise TypeError(
                 '`functional_datapipe` can only decorate IterDataPipe')
     IterDataPipe.register_datapipe_as_function(self.name, cls)
     return cls
コード例 #2
0
    def __call__(self, cls):
        if issubclass(cls, IterDataPipe):
            if isinstance(cls, Type):  # type: ignore[arg-type]
                if not isinstance(cls, _DataPipeMeta):
                    raise TypeError(
                        '`functional_datapipe` can only decorate IterDataPipe')
            # with non_deterministic decorator
            else:
                if not isinstance(cls, non_deterministic) and \
                    not (hasattr(cls, '__self__') and
                         isinstance(cls.__self__, non_deterministic)):
                    raise TypeError(
                        '`functional_datapipe` can only decorate IterDataPipe')
            IterDataPipe.register_datapipe_as_function(
                self.name,
                cls,
                enable_df_api_tracing=self.enable_df_api_tracing)
        elif issubclass(cls, MapDataPipe):
            MapDataPipe.register_datapipe_as_function(self.name, cls)

        return cls
コード例 #3
0
 def __call__(self, cls):
     if not (isinstance(cls, non_deterministic) or issubclass(cls, IterDataPipe)):
         raise Exception('Can only decorate IterDataPipe')
     IterDataPipe.register_datapipe_as_function(self.name, cls)
     return cls