OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python37
/
lib
/
python3.7
/
site-packages
/
attr
Server IP: 2a02:4780:11:1594:0:ef5:22d7:a
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/13/2025 09:39:25 PM
rwxr-xr-x
📄
__init__.py
1.58 KB
05/07/2021 09:20:15 AM
rw-r--r--
📄
__init__.pyi
14.49 KB
05/05/2021 08:25:16 AM
rw-r--r--
📁
__pycache__
-
05/14/2024 03:09:23 PM
rwxr-xr-x
📄
_cmp.py
4.04 KB
05/06/2021 07:03:24 AM
rw-r--r--
📄
_cmp.pyi
318 bytes
05/01/2021 12:26:39 PM
rw-r--r--
📄
_compat.py
7.38 KB
02/27/2021 09:49:47 AM
rw-r--r--
📄
_config.py
514 bytes
10/17/2019 08:29:00 AM
rw-r--r--
📄
_funcs.py
13.08 KB
05/06/2021 02:11:04 PM
rw-r--r--
📄
_make.py
95.45 KB
05/05/2021 08:05:42 AM
rw-r--r--
📄
_next_gen.py
3.98 KB
04/12/2021 12:35:56 PM
rw-r--r--
📄
_version_info.py
2.11 KB
03/29/2020 07:56:49 AM
rw-r--r--
📄
_version_info.pyi
209 bytes
03/29/2020 07:56:49 AM
rw-r--r--
📄
converters.py
2.97 KB
02/18/2021 03:38:25 PM
rw-r--r--
📄
converters.pyi
382 bytes
02/19/2021 07:15:51 AM
rw-r--r--
📄
exceptions.py
1.9 KB
04/30/2021 12:38:44 PM
rw-r--r--
📄
exceptions.pyi
540 bytes
02/19/2021 07:15:51 AM
rw-r--r--
📄
filters.py
1.07 KB
03/29/2020 07:56:49 AM
rw-r--r--
📄
filters.pyi
216 bytes
02/19/2021 07:15:51 AM
rw-r--r--
📄
py.typed
0 bytes
07/12/2018 10:28:53 AM
rw-r--r--
📄
setters.py
1.4 KB
07/20/2020 10:43:42 AM
rw-r--r--
📄
setters.pyi
574 bytes
04/06/2021 04:14:02 AM
rw-r--r--
📄
validators.py
11.23 KB
07/20/2020 10:43:42 AM
rw-r--r--
📄
validators.pyi
1.83 KB
02/19/2021 07:15:51 AM
rw-r--r--
Editing: converters.py
Close
""" Commonly useful converters. """ from __future__ import absolute_import, division, print_function from ._compat import PY2 from ._make import NOTHING, Factory, pipe if not PY2: import inspect import typing __all__ = [ "pipe", "optional", "default_if_none", ] def optional(converter): """ A converter that allows an attribute to be optional. An optional attribute is one which can be set to ``None``. Type annotations will be inferred from the wrapped converter's, if it has any. :param callable converter: the converter that is used for non-``None`` values. .. versionadded:: 17.1.0 """ def optional_converter(val): if val is None: return None return converter(val) if not PY2: sig = None try: sig = inspect.signature(converter) except (ValueError, TypeError): # inspect failed pass if sig: params = list(sig.parameters.values()) if params and params[0].annotation is not inspect.Parameter.empty: optional_converter.__annotations__["val"] = typing.Optional[ params[0].annotation ] if sig.return_annotation is not inspect.Signature.empty: optional_converter.__annotations__["return"] = typing.Optional[ sig.return_annotation ] return optional_converter def default_if_none(default=NOTHING, factory=None): """ A converter that allows to replace ``None`` values by *default* or the result of *factory*. :param default: Value to be used if ``None`` is passed. Passing an instance of `attr.Factory` is supported, however the ``takes_self`` option is *not*. :param callable factory: A callable that takes no parameters whose result is used if ``None`` is passed. :raises TypeError: If **neither** *default* or *factory* is passed. :raises TypeError: If **both** *default* and *factory* are passed. :raises ValueError: If an instance of `attr.Factory` is passed with ``takes_self=True``. .. versionadded:: 18.2.0 """ if default is NOTHING and factory is None: raise TypeError("Must pass either `default` or `factory`.") if default is not NOTHING and factory is not None: raise TypeError( "Must pass either `default` or `factory` but not both." ) if factory is not None: default = Factory(factory) if isinstance(default, Factory): if default.takes_self: raise ValueError( "`takes_self` is not supported by default_if_none." ) def default_if_none_converter(val): if val is not None: return val return default.factory() else: def default_if_none_converter(val): if val is not None: return val return default return default_if_none_converter