omnipy.components.json.models
| CLASS | DESCRIPTION |
|---|---|
JsonCustomDictModel |
|
JsonCustomListModel |
|
JsonDictModel |
JsonDictModel is a limited JSON model supporting only JSON content |
JsonDictOfDictsModel |
|
JsonDictOfDictsOfScalarsModel |
|
JsonDictOfListsModel |
|
JsonDictOfListsOfDictsModel |
|
JsonDictOfListsOfScalarsModel |
|
JsonDictOfNestedListsModel |
|
JsonDictOfScalarsModel |
|
JsonListModel |
JsonListModel is a limited JSON model supporting only JSON content |
JsonListOfDictsModel |
|
JsonListOfDictsOfScalarsModel |
|
JsonListOfListsModel |
|
JsonListOfListsOfScalarsModel |
|
JsonListOfNestedDictsModel |
|
JsonListOfScalarsModel |
|
JsonListOrDictModel |
JsonListOrDictModel is a general JSON model supporting any JSON |
JsonModel |
JsonModel is a general JSON model supporting any JSON content, any |
JsonNestedDictsModel |
|
JsonNestedListsModel |
|
JsonOnlyDictsModel |
|
JsonOnlyListsModel |
|
JsonScalarModel |
JsonScalarModel is a limited JSON model supporting only scalar JSON |
ParseStrAsJsonMixin |
|
| FUNCTION | DESCRIPTION |
|---|---|
is_json_model_instance_hack |
Check if the given object is an instance of a JSON model class. |
| ATTRIBUTE | DESCRIPTION |
|---|---|
AnyJsonListOrDictModel |
TYPE:
|
AnyJsonModel |
TYPE:
|
AnyJsonOnlyDictsModel |
TYPE:
|
AnyJsonOnlyListsModel |
TYPE:
|
AnyJsonScalarModel |
TYPE:
|
AnyJsonListOrDictModel
module-attribute
AnyJsonOnlyDictsModel
module-attribute
AnyJsonOnlyDictsModel: TypeAlias = AnyJsonScalarModel | _JsonNestedDictsM
AnyJsonOnlyListsModel
module-attribute
AnyJsonOnlyListsModel: TypeAlias = AnyJsonScalarModel | _JsonNestedListsM
AnyJsonScalarModel
module-attribute
JsonCustomDictModel
JsonCustomListModel
JsonDictModel
Bases: Model[_JsonAnyDictM]
JsonDictModel is a limited JSON model supporting only JSON content that has a dict (or "object" in JSON nomenclature) at the root. The values of the top-level dict can be any JSON content, though, any levels deep.
Examples:
>>> my_json = JsonDictModel({'a': None, 'b': [1, 12.5, {'abc': 123}]})
>>> my_json.to_data()
{'a': None, 'b': [1, 12.5, {'abc': 123}]}
>>> my_json.to_json()
'{"a": null, "b": [1, 12.5, {"abc": 123}]}'
>>> print(my_json.to_json(pretty=True))
{
"a": null,
"b": [
1,
12.5,
{
"abc": 123
}
]
}
>>> try:
... my_json = JsonDictModel([True, {'a': None, 'b': [1, 12.5, 'abc']}])
... except Exception as e:
... print(str(e).splitlines()[0])
3 validation errors for JsonDictModel
Source code in src/omnipy/components/json/models.py
JsonDictOfDictsModel
JsonDictOfDictsOfScalarsModel
JsonDictOfListsModel
JsonDictOfListsOfDictsModel
JsonDictOfListsOfScalarsModel
JsonDictOfNestedListsModel
JsonDictOfScalarsModel
JsonListModel
Bases: Model[_JsonAnyListM]
JsonListModel is a limited JSON model supporting only JSON content that has a list (or "array" in JSON nomenclature) at the root. The content of the top-level list can be any JSON content, though, any levels deep.
Examples:
>>> my_json = JsonListModel([True, {'a': None, 'b': [1, 12.5, 'abc']}])
>>> my_json.to_data()
[True, {'a': None, 'b': [1, 12.5, 'abc']}]
>>> my_json.to_json()
'[true, {"a": null, "b": [1, 12.5, "abc"]}]'
>>> print(my_json.to_json(pretty=True))
[
true,
{
"a": null,
"b": [
1,
12.5,
"abc"
]
}
]
>>> try:
... my_json = JsonListModel({'a': None, 'b': [1, 12.5, {'abc': 123}]})
... except Exception as e:
... print(str(e).splitlines()[0])
3 validation errors for JsonListModel
Source code in src/omnipy/components/json/models.py
JsonListOfDictsModel
JsonListOfDictsOfScalarsModel
JsonListOfListsModel
JsonListOfListsOfScalarsModel
JsonListOfNestedDictsModel
JsonListOfScalarsModel
JsonListOrDictModel
Bases: ParseStrAsJsonMixin[_JsonListOfDictUnion], Model[_JsonListOfDictUnion]
JsonListOrDictModel is a general JSON model supporting any JSON content except scalar data.
Examples:
>>> my_json = JsonListOrDictModel([True, {'a': None, 'b': [1, 12.5, 'abc']}])
>>> my_json.to_data()
[True, {'a': None, 'b': [1, 12.5, 'abc']}]
>>> my_json.to_json()
'[true, {"a": null, "b": [1, 12.5, "abc"]}]'
>>> print(my_json.to_json(pretty=True))
[
true,
{
"a": null,
"b": [
1,
12.5,
"abc"
]
}
]
>>> try:
... my_json = JsonListOrDictModel(123) # scalars not supported
... except Exception as e:
... print(str(e).splitlines()[0])
34 validation errors for JsonListOrDictModel
| METHOD | DESCRIPTION |
|---|---|
start_chars_for_json_content |
|
Source code in src/omnipy/components/json/models.py
JsonModel
Bases: ParseStrAsJsonMixin[_JsonAnyUnion], Model[_JsonAnyUnion]
JsonModel is a general JSON model supporting any JSON content, any levels deep.
Examples:
>>> my_int_json = JsonModel(123)
>>> my_int_json.to_data()
123
>>> my_int_json.to_json()
'123'
>>> my_json = JsonModel([True, {'a': None, 'b': [1, 12.5, 'abc']}])
>>> my_json.to_data()
[True, {'a': None, 'b': [1, 12.5, 'abc']}]
>>> my_json.to_json()
'[true, {"a": null, "b": [1, 12.5, "abc"]}]'
>>> print(my_json.to_json(pretty=True))
[
true,
{
"a": null,
"b": [
1,
12.5,
"abc"
]
}
]
>>> try:
... my_json = JsonModel([{'a': [1, 2, 1+2j]}]) # nested complex number
... except Exception as e:
... print(str(e).splitlines()[0])
34 validation errors for JsonModel
Source code in src/omnipy/components/json/models.py
JsonNestedDictsModel
JsonNestedListsModel
JsonOnlyDictsModel
Bases: Model[_JsonOnlyDictsUnion]
Source code in src/omnipy/components/json/models.py
JsonOnlyListsModel
Bases: Model[_JsonOnlyListsUnion]
Source code in src/omnipy/components/json/models.py
JsonScalarModel
Bases: Model[JsonScalar]
JsonScalarModel is a limited JSON model supporting only scalar JSON
content, e.g. the basic types: None, int, float, str, and
bool. Lists and dicts (or "objects") are not supported.
Examples:
>>> my_none = JsonScalarModel(None)
>>> my_none.to_data(), my_none.to_json()
(None, 'null')
>>> my_int = JsonScalarModel(123)
>>> my_int.to_data(), my_int.to_json()
(123, '123')
>>> my_float = JsonScalarModel(12.3)
>>> my_float.to_data(), my_float.to_json()
(12.3, '12.3')
>>> my_str = JsonScalarModel('abc')
>>> my_str.to_data(), my_str.to_json()
(abc, '"abc"')
>>> my_bool = JsonScalarModel(False)
>>> my_bool.to_data(), my_bool.to_json()
(False, '"false"')
>>> try:
... my_json = JsonScalarModel([123])
... except Exception as e:
... print(str(e).splitlines()[0])
6 validation errors for JsonScalarModel
Source code in src/omnipy/components/json/models.py
ParseStrAsJsonMixin
Bases: Generic[_RootT]
| METHOD | DESCRIPTION |
|---|---|
start_chars_for_json_content |
|
Source code in src/omnipy/components/json/models.py
is_json_model_instance_hack
Check if the given object is an instance of a JSON model class. Temporary solution to identify JSON model classes for output formatting.
(Does not work for JsonCustomListModel and JsonCustomDictModel)
| PARAMETER | DESCRIPTION |
|---|---|
obj
|
The object to check.
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
bool
|
True if the object is an instance of a JSON model class, False otherwise. |