33 lines
930 B
Python
33 lines
930 B
Python
try:
|
|
from enum import Flag
|
|
except ImportError: # pragma: no cover
|
|
from jsons._compatibility_impl import Flag
|
|
|
|
|
|
class Verbosity(Flag):
|
|
"""
|
|
An enum that defines the level of verbosity of the serialization of an
|
|
object.
|
|
"""
|
|
WITH_NOTHING = 0
|
|
WITH_CLASS_INFO = 10
|
|
WITH_DUMP_TIME = 20
|
|
WITH_EVERYTHING = WITH_CLASS_INFO | WITH_DUMP_TIME
|
|
|
|
@staticmethod
|
|
def from_value(value: any) -> 'Verbosity':
|
|
"""
|
|
Return a ``Verbosity`` instance from the given value.
|
|
:param value:
|
|
:return: a ``Verbosity`` instance corresponding to ``value``.
|
|
"""
|
|
if isinstance(value, Verbosity):
|
|
return value
|
|
if value in (False, None):
|
|
return Verbosity.WITH_NOTHING
|
|
if value is True:
|
|
return Verbosity.WITH_EVERYTHING
|
|
if value:
|
|
return Verbosity.WITH_EVERYTHING
|
|
return Verbosity.WITH_NOTHING
|