How to use the jsons._common_impl.get_cls_from_str function in jsons

To help you get started, we’ve selected a few jsons examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github ramonhagenaars / jsons / tests / test_common_impl.py View on Github external
def test_get_cls_from_str(self):
        self.assertEqual(str, get_cls_from_str('str', {}, None))
        self.assertEqual(int, get_cls_from_str('int', {}, None))
        self.assertEqual(list, get_cls_from_str('list', {}, None))
github ramonhagenaars / jsons / tests / test_common_impl.py View on Github external
def test_get_cls_from_str(self):
        self.assertEqual(str, get_cls_from_str('str', {}, None))
        self.assertEqual(int, get_cls_from_str('int', {}, None))
        self.assertEqual(list, get_cls_from_str('list', {}, None))
github ramonhagenaars / jsons / tests / test_common_impl.py View on Github external
def test_get_cls_from_str(self):
        self.assertEqual(str, get_cls_from_str('str', {}, None))
        self.assertEqual(int, get_cls_from_str('int', {}, None))
        self.assertEqual(list, get_cls_from_str('list', {}, None))
github ramonhagenaars / jsons / jsons / deserializers / default_object.py View on Github external
def _get_value_from_obj(obj, cls, sig, sig_key, meta_hints, **kwargs):
    # Obtain the value for the attribute with the given signature from the
    # given obj. Try to obtain the class of this attribute from the meta info
    # or from type hints.
    cls_key = '/{}'.format(sig_key)
    cls_str_from_meta = meta_hints.get(cls_key, None)
    new_hints = meta_hints
    cls_from_meta = None
    if cls_str_from_meta:
        cls_from_meta = get_cls_from_str(
            cls_str_from_meta, obj, kwargs['fork_inst'])
        # Rebuild the class hints: cls_key becomes the new root.
        new_hints = {
            key.replace(cls_key, '/'): meta_hints[key]
            for key in meta_hints
            if key != '/'
        }
    cls_ = determine_precedence(cls=cls, cls_from_meta=cls_from_meta,
                                cls_from_type=None, inferred_cls=True)
    value = load(obj[sig_key], cls_, meta_hints=new_hints, **kwargs)
    return value
github ramonhagenaars / jsons / jsons / _load_impl.py View on Github external
:param json_obj: the dict that is to be deserialized.
    :param cls: a matching class of which an instance should be returned.
    :param strict: a bool to determine if the deserializer should be strict
    (i.e. fail on a partially deserialized `json_obj` or on `None`).
    :param fork_inst: if given, it uses this fork of ``JsonSerializable``.
    :param attr_getters: a ``dict`` that may hold callables that return values
    for certain attributes.
    :param kwargs: the keyword args are passed on to the deserializer function.
    :return: an instance of ``cls`` if given, a dict otherwise.
    """
    _check_for_none(json_obj, cls)
    if _should_skip(json_obj, cls, strict):
        validate(json_obj, cls, fork_inst)
        return json_obj
    if isinstance(cls, str):
        cls = get_cls_from_str(cls, json_obj, fork_inst)
    cls, meta_hints = _check_and_get_cls_and_meta_hints(
        json_obj, cls, fork_inst, kwargs.get('_inferred_cls', False))

    deserializer = get_deserializer(cls, fork_inst)

    # Is this the initial call or a nested?
    initial = kwargs.get('_initial', True)

    kwargs_ = {
        'strict': strict,
        'fork_inst': fork_inst,
        'attr_getters': attr_getters,
        'meta_hints': meta_hints,
        '_initial': False,
        **kwargs
    }
github ramonhagenaars / jsons / jsons / _main_impl.py View on Github external
then `json_obj` is simply returned.

    :param json_obj: the dict that is to be deserialized.
    :param cls: a matching class of which an instance should be returned.
    :param strict: a bool to determine if the deserializer should be strict
    (i.e. fail on a partially deserialized `json_obj` or on `None`).
    :param fork_inst: if given, it uses this fork of ``JsonSerializable``.
    :param attr_getters: a ``dict`` that may hold callables that return values
    for certain attributes.
    :param kwargs: the keyword args are passed on to the deserializer function.
    :return: an instance of ``cls`` if given, a dict otherwise.
    """
    if _should_skip(json_obj, cls, strict):
        return json_obj
    if isinstance(cls, str):
        cls = get_cls_from_str(cls, json_obj, fork_inst)
    cls, meta_hints = _check_and_get_cls_and_meta_hints(
        json_obj, cls, fork_inst, kwargs.get('_inferred_cls', False))

    deserializer = _get_deserializer(cls, fork_inst)
    kwargs_ = {
        'strict': strict,
        'fork_inst': fork_inst,
        'attr_getters': attr_getters,
        'meta_hints': meta_hints,
        **kwargs
    }
    try:
        return deserializer(json_obj, cls, **kwargs_)
    except Exception as err:
        if isinstance(err, JsonsError):
            raise