"""simple docstring"""


from __future__ import annotations

from collections.abc import Generator


def   __UpperCAmelCase     (	_snake_case		:       int       ):
   if not isinstance(_UpperCAmelCase,				_UpperCAmelCase       ) or n < 1:
      raise Exception("Sequence only defined for positive integers"       )

   yield n
   while n != 1:
      if n % 2 == 0:
         n //= 2
      else:
         _lowercase							     =       3 * n + 1
      yield n


def   __UpperCAmelCase     (	):
   _lowercase							     =       4_3
   _lowercase							     =       tuple(collatz_sequence(_UpperCAmelCase       )       )
   print(_UpperCAmelCase       )
   print(f"""Collatz sequence from {n} took {len(_UpperCAmelCase       )} steps."""       )


if __name__ == "__main__":
  main()




from typing import TYPE_CHECKING

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


UpperCAmelCase__  =			{
    "configuration_align": [
        "ALIGN_PRETRAINED_CONFIG_ARCHIVE_MAP",
        "AlignConfig",
        "AlignTextConfig",
        "AlignVisionConfig",
    ],
    "processing_align": ["AlignProcessor"],
}

try:
							if not is_torch_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							UpperCAmelCase__  =			[
							    "ALIGN_PRETRAINED_MODEL_ARCHIVE_LIST",
							    "AlignModel",
							    "AlignPreTrainedModel",
							    "AlignTextModel",
							    "AlignVisionModel",
							]

if TYPE_CHECKING:
							from .configuration_align import (
							    ALIGN_PRETRAINED_CONFIG_ARCHIVE_MAP,
							    AlignConfig,
							    AlignTextConfig,
							    AlignVisionConfig,
							)
							from .processing_align import AlignProcessor

							try:
														if not is_torch_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_align import (
														    ALIGN_PRETRAINED_MODEL_ARCHIVE_LIST,
														    AlignModel,
														    AlignPreTrainedModel,
														    AlignTextModel,
														    AlignVisionModel,
														)

else:
							import sys

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