






from __future__ import annotations


def 						_A     (       SCREAMING_SNAKE_CASE__						:			int ):
    assert (
        isinstance(SCREAMING_SNAKE_CASE__  ,						SCREAMING_SNAKE_CASE__ ) and mask > 0
    ), F'''mask needs to be positive integer, your input {mask}'''
    UpperCamelCase :Any										=     []
    UpperCamelCase :Tuple										=     mask

    while submask:
        all_submasks.append(SCREAMING_SNAKE_CASE__ )
        UpperCamelCase :Optional[int]										=     (submask - 1) & mask

    return all_submasks


if __name__ == "__main__":
 import doctest

 doctest.testmod()













from typing import TYPE_CHECKING

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


__snake_case							      =						{
    """configuration_open_llama""": ["""OPEN_LLAMA_PRETRAINED_CONFIG_ARCHIVE_MAP""", """OpenLlamaConfig"""],
}

try:
 if not is_sentencepiece_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __snake_case							      =						["""LlamaTokenizer"""]

try:
 if not is_tokenizers_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __snake_case							      =						["""LlamaTokenizerFast"""]

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __snake_case							      =						[
     """OpenLlamaForCausalLM""",
     """OpenLlamaModel""",
     """OpenLlamaPreTrainedModel""",
     """OpenLlamaForSequenceClassification""",
 ]


if TYPE_CHECKING:
 from .configuration_open_llama import OPEN_LLAMA_PRETRAINED_CONFIG_ARCHIVE_MAP, OpenLlamaConfig

 try:
  if not is_sentencepiece_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from transformers import LlamaTokenizer

 try:
  if not is_tokenizers_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from transformers import LlamaTokenizerFast

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_open_llama import (
      OpenLlamaForCausalLM,
      OpenLlamaForSequenceClassification,
      OpenLlamaModel,
      OpenLlamaPreTrainedModel,
  )


else:
 import sys

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





