





"""simple docstring"""




from typing import TYPE_CHECKING

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


SCREAMING_SNAKE_CASE_						       =	{
    """configuration_funnel""": ["""FUNNEL_PRETRAINED_CONFIG_ARCHIVE_MAP""", """FunnelConfig"""],
    """convert_funnel_original_tf_checkpoint_to_pytorch""": [],
    """tokenization_funnel""": ["""FunnelTokenizer"""],
}

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

try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      SCREAMING_SNAKE_CASE_						       =	[
          """FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST""",
          """FunnelBaseModel""",
          """FunnelForMaskedLM""",
          """FunnelForMultipleChoice""",
          """FunnelForPreTraining""",
          """FunnelForQuestionAnswering""",
          """FunnelForSequenceClassification""",
          """FunnelForTokenClassification""",
          """FunnelModel""",
          """FunnelPreTrainedModel""",
          """load_tf_weights_in_funnel""",
      ]

try:
      if not is_tf_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      SCREAMING_SNAKE_CASE_						       =	[
          """TF_FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST""",
          """TFFunnelBaseModel""",
          """TFFunnelForMaskedLM""",
          """TFFunnelForMultipleChoice""",
          """TFFunnelForPreTraining""",
          """TFFunnelForQuestionAnswering""",
          """TFFunnelForSequenceClassification""",
          """TFFunnelForTokenClassification""",
          """TFFunnelModel""",
          """TFFunnelPreTrainedModel""",
      ]


if TYPE_CHECKING:
      from .configuration_funnel import FUNNEL_PRETRAINED_CONFIG_ARCHIVE_MAP, FunnelConfig
      from .tokenization_funnel import FunnelTokenizer

      try:
            if not is_tokenizers_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .tokenization_funnel_fast import FunnelTokenizerFast

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_funnel import (
                FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST,
                FunnelBaseModel,
                FunnelForMaskedLM,
                FunnelForMultipleChoice,
                FunnelForPreTraining,
                FunnelForQuestionAnswering,
                FunnelForSequenceClassification,
                FunnelForTokenClassification,
                FunnelModel,
                FunnelPreTrainedModel,
                load_tf_weights_in_funnel,
            )

      try:
            if not is_tf_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_tf_funnel import (
                TF_FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST,
                TFFunnelBaseModel,
                TFFunnelForMaskedLM,
                TFFunnelForMultipleChoice,
                TFFunnelForPreTraining,
                TFFunnelForQuestionAnswering,
                TFFunnelForSequenceClassification,
                TFFunnelForTokenClassification,
                TFFunnelModel,
                TFFunnelPreTrainedModel,
            )

else:
      import sys

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









def        __lowercase       (				_SCREAMING_SNAKE_CASE			,						_SCREAMING_SNAKE_CASE			,						_SCREAMING_SNAKE_CASE			,						_SCREAMING_SNAKE_CASE			,						_SCREAMING_SNAKE_CASE     )			->       int:


      '''simple docstring'''


      if index == number_of_items:
            return 0
      SCREAMING_SNAKE_CASE		=						0
      SCREAMING_SNAKE_CASE		=						0
      SCREAMING_SNAKE_CASE		=						knapsack(_SCREAMING_SNAKE_CASE			,						_SCREAMING_SNAKE_CASE			,						_SCREAMING_SNAKE_CASE			,						_SCREAMING_SNAKE_CASE			,						index + 1     )
      if weights[index] <= max_weight:
            SCREAMING_SNAKE_CASE		=						values[index] + knapsack(
                _SCREAMING_SNAKE_CASE			,						_SCREAMING_SNAKE_CASE			,						_SCREAMING_SNAKE_CASE			,						max_weight - weights[index]			,						index + 1     )
      return max(_SCREAMING_SNAKE_CASE			,						_SCREAMING_SNAKE_CASE     )


if __name__ == "__main__":
      import doctest

      doctest.testmod()


