






# Copyright 2023 The HuggingFace Team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from typing import TYPE_CHECKING

# rely on isort to merge the imports
from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_torch_available,
)


__A          = {
    'configuration_convnextv2': [
        'CONVNEXTV2_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'ConvNextV2Config',
    ]
}

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__A          = [
				    'CONVNEXTV2_PRETRAINED_MODEL_ARCHIVE_LIST',
				    'ConvNextV2ForImageClassification',
				    'ConvNextV2Model',
				    'ConvNextV2PreTrainedModel',
				    'ConvNextV2Backbone',
				]


if TYPE_CHECKING:
				from .configuration_convnextva import (
				    CONVNEXTV2_PRETRAINED_CONFIG_ARCHIVE_MAP,
				    ConvNextVaConfig,
				)

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_convnextva import (
								    CONVNEXTV2_PRETRAINED_MODEL_ARCHIVE_LIST,
								    ConvNextVaBackbone,
								    ConvNextVaForImageClassification,
								    ConvNextVaModel,
								    ConvNextVaPreTrainedModel,
								)

else:
				import sys

				__A          = _LazyModule(__name__, globals()['__file__'], _import_structure)











def 		_UpperCamelCase      (			UpperCamelCase_				:    float			,				UpperCamelCase_				:    float			,				UpperCamelCase_				:    float						)     ->      list[int]:

						"""simple docstring"""



						if hue < 0 or hue > 360:
												raise Exception('hue should be between 0 and 360'						)

						if saturation < 0 or saturation > 1:
												raise Exception('saturation should be between 0 and 1'						)

						if value < 0 or value > 1:
												raise Exception('value should be between 0 and 1'						)

						lowerCAmelCase__			  =  value * saturation
						lowerCAmelCase__			  =  hue / 60
						lowerCAmelCase__			  =  chroma * (1 - abs(hue_section % 2 - 1						))
						lowerCAmelCase__			  =  value - chroma

						if hue_section >= 0 and hue_section <= 1:
												lowerCAmelCase__			  =  round(255 * (chroma + match_value)						)
												lowerCAmelCase__			  =  round(255 * (second_largest_component + match_value)						)
												lowerCAmelCase__			  =  round(255 * (match_value)						)
						elif hue_section > 1 and hue_section <= 2:
												lowerCAmelCase__			  =  round(255 * (second_largest_component + match_value)						)
												lowerCAmelCase__			  =  round(255 * (chroma + match_value)						)
												lowerCAmelCase__			  =  round(255 * (match_value)						)
						elif hue_section > 2 and hue_section <= 3:
												lowerCAmelCase__			  =  round(255 * (match_value)						)
												lowerCAmelCase__			  =  round(255 * (chroma + match_value)						)
												lowerCAmelCase__			  =  round(255 * (second_largest_component + match_value)						)
						elif hue_section > 3 and hue_section <= 4:
												lowerCAmelCase__			  =  round(255 * (match_value)						)
												lowerCAmelCase__			  =  round(255 * (second_largest_component + match_value)						)
												lowerCAmelCase__			  =  round(255 * (chroma + match_value)						)
						elif hue_section > 4 and hue_section <= 5:
												lowerCAmelCase__			  =  round(255 * (second_largest_component + match_value)						)
												lowerCAmelCase__			  =  round(255 * (match_value)						)
												lowerCAmelCase__			  =  round(255 * (chroma + match_value)						)
						else:
												lowerCAmelCase__			  =  round(255 * (chroma + match_value)						)
												lowerCAmelCase__			  =  round(255 * (match_value)						)
												lowerCAmelCase__			  =  round(255 * (second_largest_component + match_value)						)

						return [red, green, blue]







def 		_UpperCamelCase      (			UpperCamelCase_				:    int			,				UpperCamelCase_				:    int			,				UpperCamelCase_				:    int						)     ->      list[float]:

						"""simple docstring"""



						if red < 0 or red > 255:
												raise Exception('red should be between 0 and 255'						)

						if green < 0 or green > 255:
												raise Exception('green should be between 0 and 255'						)

						if blue < 0 or blue > 255:
												raise Exception('blue should be between 0 and 255'						)

						lowerCAmelCase__			  =  red / 255
						lowerCAmelCase__			  =  green / 255
						lowerCAmelCase__			  =  blue / 255
						lowerCAmelCase__			  =  max(UpperCamelCase_			,				UpperCamelCase_			,				UpperCamelCase_						)
						lowerCAmelCase__			  =  value - min(UpperCamelCase_			,				UpperCamelCase_			,				UpperCamelCase_						)
						lowerCAmelCase__			  =  0 if value == 0 else chroma / value

						if chroma == 0:
												lowerCAmelCase__			  =  0.0
						elif value == float_red:
												lowerCAmelCase__			  =  60 * (0 + (float_green - float_blue) / chroma)
						elif value == float_green:
												lowerCAmelCase__			  =  60 * (2 + (float_blue - float_red) / chroma)
						else:
												lowerCAmelCase__			  =  60 * (4 + (float_red - float_green) / chroma)

						lowerCAmelCase__			  =  (hue + 360) % 360

						return [hue, saturation, value]







def 		_UpperCamelCase      (			UpperCamelCase_				:    list[float]			,				UpperCamelCase_				:    list[float]						)     ->      bool:

						"""simple docstring"""



						lowerCAmelCase__			  =  abs(hsv_a[0] - hsv_a[0]						) < 0.2
						lowerCAmelCase__			  =  abs(hsv_a[1] - hsv_a[1]						) < 0.002
						lowerCAmelCase__			  =  abs(hsv_a[2] - hsv_a[2]						) < 0.002

						return check_hue and check_saturation and check_value





