




import unittest
from dataclasses import dataclass
from typing import List, Union

import numpy as np
import PIL.Image

from diffusers.utils.outputs import BaseOutput




@dataclass
class 		UpperCamelCase__     (__lowerCamelCase					):

    '''simple docstring'''



    lowerCamelCase_				:     Union[List[PIL.Image.Image], np.ndarray]




class 		UpperCamelCase__     (unittest.TestCase					):

    '''simple docstring'''



    def    _lowercase					(   self					)					->				List[str]:
           lowerCamelCase       :				List[str]      			= CustomOutput(images=np.random.rand(1					,  3					,  4					,  4					)					)

           # check every way of getting the attribute
           assert isinstance(outputs.images					,  np.ndarray					)
           assert outputs.images.shape == (1, 3, 4, 4)
           assert isinstance(outputs["images"]					,  np.ndarray					)
           assert outputs["images"].shape == (1, 3, 4, 4)
           assert isinstance(outputs[0]					,  np.ndarray					)
           assert outputs[0].shape == (1, 3, 4, 4)

           # test with a non-tensor attribute
           lowerCamelCase       :				List[str]      			= CustomOutput(images=[PIL.Image.new("RGB"					,  (4, 4)					)]					)

           # check every way of getting the attribute
           assert isinstance(outputs.images					,  _UpperCamelCase					)
           assert isinstance(outputs.images[0]					,  PIL.Image.Image					)
           assert isinstance(outputs["images"]					,  _UpperCamelCase					)
           assert isinstance(outputs["images"][0]					,  PIL.Image.Image					)
           assert isinstance(outputs[0]					,  _UpperCamelCase					)
           assert isinstance(outputs[0][0]					,  PIL.Image.Image					)







    def    _lowercase					(   self					)					->				Optional[int]:
           lowerCamelCase       :				Dict      			= CustomOutput({"images": np.random.rand(1					,  3					,  4					,  4					)}					)

           # check every way of getting the attribute
           assert isinstance(outputs.images					,  np.ndarray					)
           assert outputs.images.shape == (1, 3, 4, 4)
           assert isinstance(outputs["images"]					,  np.ndarray					)
           assert outputs["images"].shape == (1, 3, 4, 4)
           assert isinstance(outputs[0]					,  np.ndarray					)
           assert outputs[0].shape == (1, 3, 4, 4)

           # test with a non-tensor attribute
           lowerCamelCase       :				Optional[Any]      			= CustomOutput({"images": [PIL.Image.new("RGB"					,  (4, 4)					)]}					)

           # check every way of getting the attribute
           assert isinstance(outputs.images					,  _UpperCamelCase					)
           assert isinstance(outputs.images[0]					,  PIL.Image.Image					)
           assert isinstance(outputs["images"]					,  _UpperCamelCase					)
           assert isinstance(outputs["images"][0]					,  PIL.Image.Image					)
           assert isinstance(outputs[0]					,  _UpperCamelCase					)
           assert isinstance(outputs[0][0]					,  PIL.Image.Image					)












from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


SCREAMING_SNAKE_CASE__	:				Dict  =       {
    'configuration_oneformer': ['ONEFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP', 'OneFormerConfig'],
    'processing_oneformer': ['OneFormerProcessor'],
}

try:
       if not is_vision_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       SCREAMING_SNAKE_CASE__	:				Optional[Any]  =       ['OneFormerImageProcessor']

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       SCREAMING_SNAKE_CASE__	:				Optional[int]  =       [
           'ONEFORMER_PRETRAINED_MODEL_ARCHIVE_LIST',
           'OneFormerForUniversalSegmentation',
           'OneFormerModel',
           'OneFormerPreTrainedModel',
       ]

if TYPE_CHECKING:
       from .configuration_oneformer import ONEFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP, OneFormerConfig
       from .processing_oneformer import OneFormerProcessor

       try:
              if not is_vision_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .image_processing_oneformer import OneFormerImageProcessor
       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_oneformer import (
                  ONEFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
                  OneFormerForUniversalSegmentation,
                  OneFormerModel,
                  OneFormerPreTrainedModel,
              )


else:
       import sys

       SCREAMING_SNAKE_CASE__	:				str  =       _LazyModule(__name__, globals()['__file__'], _import_structure)






