




import importlib.metadata
from typing import Union

from packaging.version import Version, parse

from .constants import STR_OPERATION_TO_FUNC


__a							     =					parse(importlib.metadata.version('torch'))







def lowerCamelCase__  (     _lowercase					,		_lowercase					,		_lowercase ):

     '''simple docstring'''


     if operation not in STR_OPERATION_TO_FUNC.keys():
          raise ValueError(f'''`operation` must be one of {list(STR_OPERATION_TO_FUNC.keys() )}, received {operation}''' )
     UpperCAmelCase_     :				Optional[Any]  =     STR_OPERATION_TO_FUNC[operation]
     if isinstance(_lowercase					,		_lowercase ):
          UpperCAmelCase_     :				Any  =     parse(importlib.metadata.version(_lowercase ) )
     return operation(_lowercase					,		parse(_lowercase ) )







def lowerCamelCase__  (     _lowercase					,		_lowercase ):

     '''simple docstring'''


     return compare_versions(_lowercase					,		_lowercase					,		_lowercase )





from typing import TYPE_CHECKING

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


__a							     =					{
    'configuration_encodec': [
        'ENCODEC_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'EncodecConfig',
    ],
    'feature_extraction_encodec': ['EncodecFeatureExtractor'],
}

try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     __a							     =					[
         'ENCODEC_PRETRAINED_MODEL_ARCHIVE_LIST',
         'EncodecModel',
         'EncodecPreTrainedModel',
     ]

if TYPE_CHECKING:
     from .configuration_encodec import (
         ENCODEC_PRETRAINED_CONFIG_ARCHIVE_MAP,
         EncodecConfig,
     )
     from .feature_extraction_encodec import EncodecFeatureExtractor

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_encodec import (
              ENCODEC_PRETRAINED_MODEL_ARCHIVE_LIST,
              EncodecModel,
              EncodecPreTrainedModel,
          )

else:
     import sys

     __a							     =					_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)