'''simple docstring'''




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 					a__   (     UpperCAmelCase__				):
     lowerCamelCase						:  Union[List[PIL.Image.Image], np.ndarray]




class 					a__   (     unittest.TestCase				):






     def      SCREAMING_SNAKE_CASE__     (				self	:	Dict					):





         """simple docstring"""



         __lowerCamelCase						=						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						=						CustomOutput(images=[PIL.Image.new('''RGB'''						,       (4, 4)					)]					)

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






     def      SCREAMING_SNAKE_CASE__     (				self	:	Dict					):





         """simple docstring"""



         __lowerCamelCase						=						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						=						CustomOutput({'''images''': [PIL.Image.new('''RGB'''						,       (4, 4)					)]}					)

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

'''simple docstring'''




from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_torch_available,
)


__UpperCAmelCase  							={
    "configuration_rwkv": ["RWKV_PRETRAINED_CONFIG_ARCHIVE_MAP", "RwkvConfig", "RwkvOnnxConfig"],
}

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __UpperCAmelCase  							=[
      "RWKV_PRETRAINED_MODEL_ARCHIVE_LIST",
      "RwkvForCausalLM",
      "RwkvModel",
      "RwkvPreTrainedModel",
  ]


if TYPE_CHECKING:
  from .configuration_rwkv import RWKV_PRETRAINED_CONFIG_ARCHIVE_MAP, RwkvConfig, RwkvOnnxConfig

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_rwkv import (
        RWKV_PRETRAINED_MODEL_ARCHIVE_LIST,
        RwkvForCausalLM,
        RwkvModel,
        RwkvPreTrainedModel,
    )
else:
  import sys

  __UpperCAmelCase  							=_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)
