json_utils#
Module containing quantify JSON utilities.
Module Contents#
Classes#
A mixin that adds validation utilities to classes that have |
|
The Quantify Scheduler JSONDecoder. |
|
Custom JSONEncoder which encodes a Quantify Scheduler object into a JSON file format |
Functions#
|
Validate schema using jsonschema-rs. |
|
Load a JSON schema from file. Expects a 'schemas' directory in the same directory |
|
Load a JSON validator from file. Expects a 'schemas' directory in the same directory |
Attributes#
- load_json_schema(relative_to: str | pathlib.Path, filename: str)[source]#
Load a JSON schema from file. Expects a ‘schemas’ directory in the same directory as
relative_to
.Tip
Typical usage of the form
schema = load_json_schema(__file__, 'definition.json')
- Parameters:
relative_to – the file to begin searching from
filename – the JSON file to load
- Returns:
the schema
- Return type:
- load_json_validator(relative_to: str | pathlib.Path, filename: str) Callable [source]#
Load a JSON validator from file. Expects a ‘schemas’ directory in the same directory as
relative_to
.- Parameters:
relative_to – the file to begin searching from
filename – the JSON file to load
- Returns:
The validator
- Return type:
Callable
- class JSONSchemaValMixin[source]#
A mixin that adds validation utilities to classes that have a data attribute like a
UserDict
based on JSONSchema.This requires the class to have a class variable “schema_filename”
- classmethod is_valid(object_to_be_validated) bool [source]#
Checks if the object is valid according to its schema.
- Raises:
fastjsonschema.JsonSchemaException – if the data is invalid
- class SchedulerJSONDecoder(*args, **kwargs)[source]#
Bases:
json.JSONDecoder
The Quantify Scheduler JSONDecoder.
The SchedulerJSONDecoder is used to convert a string with JSON content into instances of classes in quantify-scheduler.
To avoid the execution of malicious code ScheduleJSONDecoder uses
ast.literal_eval()
instead ofeval()
to convert the data to an instance of Schedule.The list of serializable classes can be extended with custom classes by providing the
modules
keyword argument. These classes have to implementquantify_scheduler.operations.operation.Operation
and overload the__str__
and__repr__
methods in order to serialize and deserialize domain objects into a valid JSON-format.- Keyword Arguments:
modules (List[ModuleType], optional) – A list of custom modules containing serializable classes, by default []
- class SchedulerJSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]#
Bases:
json.JSONEncoder
Custom JSONEncoder which encodes a Quantify Scheduler object into a JSON file format string.
- default(o)[source]#
Overloads the json.JSONEncoder default method that returns a serializable object. It will try 3 different serialization methods which are, in order, check if the object is to be serialized to a string using repr. If not, try to use
__getstate__
. Finally, try to serialize the__dict__
property.