"""Deprecated code."""
from enum import Enum
from .optionals import get_config_read_mode, set_config_read_mode
from .typehints import ActionTypeHint
from .typing import path_type, restricted_number_type, registered_types
from .util import _issubclass
__all__ = [
'ActionEnum',
'ActionOperators',
'ActionPath',
'set_url_support',
]
[docs]class ActionEnum:
"""DEPRECATED: An action based on an Enum that maps to-from strings and enum values.
Enums now should be given directly as a type.
"""
[docs] def __init__(self, **kwargs):
if 'enum' in kwargs:
if not _issubclass(kwargs['enum'], Enum):
raise ValueError('Expected enum to be an subclass of Enum.')
self._type = kwargs['enum']
else:
raise ValueError('Expected enum keyword argument.')
[docs] def __call__(self, *args, **kwargs):
if 'type' in kwargs:
raise ValueError('ActionEnum does not allow type given to add_argument.')
return ActionTypeHint(typehint=self._type)(**kwargs)
[docs]class ActionOperators:
"""DEPRECATED: Action to restrict a value with comparison operators.
The new alternative is explained in :ref:`restricted-numbers`.
"""
[docs] def __init__(self, **kwargs):
if 'expr' in kwargs:
restrictions = [kwargs['expr']] if isinstance(kwargs['expr'], tuple) else kwargs['expr']
register_key = (tuple(sorted(restrictions)), kwargs.get('type', int), kwargs.get('join', 'and'))
if register_key in registered_types:
self._type = registered_types[register_key]
else:
self._type = restricted_number_type(None, kwargs.get('type', int), kwargs['expr'], kwargs.get('join', 'and'))
else:
raise ValueError('Expected expr keyword argument.')
[docs] def __call__(self, *args, **kwargs):
if 'type' in kwargs:
raise ValueError('ActionOperators does not allow type given to add_argument.')
return ActionTypeHint(typehint=self._type)(**kwargs)
[docs]class ActionPath:
"""DEPRECATED: Action to check and store a path.
Paths now should be given directly as a type.
"""
[docs] def __init__(
self,
mode: str,
skip_check: bool = False,
):
self._type = path_type(mode, skip_check=skip_check)
[docs] def __call__(self, *args, **kwargs):
if 'type' in kwargs:
raise ValueError('ActionPath does not allow type given to add_argument.')
return ActionTypeHint(typehint=self._type)(**kwargs)
[docs]def set_url_support(enabled:bool):
"""DEPRECATED: Enables/disables URL support for config read mode.
Optional config read modes should now be set using function set_config_read_mode.
"""
set_config_read_mode(
urls_enabled=enabled,
fsspec_enabled=True if 's' in get_config_read_mode() else False,
)