odML-Support Classes

These classes are

Validation

class odml.validation.Validation(obj, validate=True, reset=False)

Validation provides a set of default validations that can used to validate odml objects. Custom validations can be added via the ‘register_handler’ method.

Parameters:obj – odml object the validation will be applied to.
error(validation_error)

Registers an error found during the validation process.

register_custom_handler(klass, handler)

Adds a validation handler for an odml class. The handler is called in the validation process for each corresponding object. The handler is assumed to be a generator function yielding all ValidationErrors it finds.

Section handlers are only called for sections and not for the document node. If both are required, the handler needs to be registered twice.

Parameters:
  • klass – string corresponding to an odml class. Valid strings are ‘odML’, ‘section’ and ‘property’.
  • handler – validation function applied to the odml class.
static register_handler(klass, handler)

Adds a validation handler for an odml class. The handler is called in the validation process for each corresponding object. The handler is assumed to be a generator function yielding all ValidationErrors it finds.

Section handlers are only called for sections and not for the document node. If both are required, the handler needs to be registered twice.

Parameters:
  • klass – string corresponding to an odml class. Valid strings are ‘odML’, ‘section’ and ‘property’.
  • handler – validation function applied to the odml class.
report()

Validates the registered object and returns a results report.

run_validation()

Runs a clean new validation on the registered Validation object.

validate(obj)

Runs all registered handlers that are applicable to a provided odml class instance. Occurring validation errors will be collected in the Validation.error attribute.

Parameters:obj – odml class instance.

IssueID

class odml.validation.IssueID

IDs identifying registered validation handlers.

custom_validation = 701
object_name_readable = 300
object_required_attributes = 101
property_dependency_check = 401
property_terminology_check = 400
property_unique_ids = 201
property_unique_name = 203
property_values_cardinality = 502
property_values_check = 402
property_values_string_check = 403
section_properties_cardinality = 500
section_repository_present = 600
section_sections_cardinality = 501
section_type_must_be_defined = 102
section_unique_ids = 200
section_unique_name_type = 202
unspecified = 1

ValidationError

class odml.validation.ValidationError(obj, msg, rank='error', validation_id=None)

Represents an error found in the validation process.

The error is bound to an odML-object (obj) or a list of those and contains a message and a rank which may be one of: ‘error’, ‘warning’.

is_error
Returns:Boolean whether the current ValidationError has rank ‘Error’.
is_warning
Returns:Boolean whether the current ValidationError has rank ‘Warning’.
path
Returns:The absolute path to the odml object the ValidationError is bound to.

TemplateHandler

class odml.templates.TemplateHandler

TemplateHandler facilitates synchronous and deferred loading, caching, browsing and importing of full or partial odML templates.

browse(url)

Load, cache and pretty print an odML template XML file from a URL.

Parameters:url – location of an odML template XML file.
Returns:The odML document loaded from url.
clear() → None. Remove all items from D.
clone_section(url, section_name, children=True, keep_id=False)

Load a section by name from an odML template found at the provided URL and return a clone. By default it will return a clone with all child sections and properties as well as changed IDs for every entity. The named section has to be a root (direct) child of the referenced odML document.

Parameters:
  • url – location of an odML template XML file.
  • section_name – Unique name of the requested Section.
  • children – Boolean whether the child entities of a Section will be returned as well. Default is True.
  • keep_id – Boolean whether all returned entities will keep the original ID or have a new one assigned. Default is False.
Returns:

The cloned odML section loaded from url.

copy() → a shallow copy of D
deferred_load(url)

Start a background thread to load an odML template from a URL.

Parameters:url – location of an odML template XML file.
fromkeys()

Create a new dictionary with keys from iterable and values set to value.

get()

Return the value for key if key is in the dictionary, else default.

items() → a set-like object providing a view on D's items
keys() → a set-like object providing a view on D's keys
load(url)

Load and cache an odML template from a URL.

Parameters:url – location of an odML template XML file.
Returns:The odML document loaded from url.
loading = {}
pop(k[, d]) → v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised

popitem() → (k, v), remove and return some (key, value) pair as a

2-tuple; but raise KeyError if D is empty.

setdefault()

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update([E, ]**F) → None. Update D from dict/iterable E and F.

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() → an object providing a view on D's values

Terminologies

class odml.terminology.Terminologies

Terminologies facilitates synchronous and deferred loading, caching, browsing and importing of full or partial odML terminologies.

clear() → None. Remove all items from D.
copy() → a shallow copy of D
deferred_load(url)

Starts a background thread to load an odML XML file from a URL.

Parameters:url – location of an odML XML file.
fromkeys()

Create a new dictionary with keys from iterable and values set to value.

get()

Return the value for key if key is in the dictionary, else default.

items() → a set-like object providing a view on D's items
keys() → a set-like object providing a view on D's keys
load(url)

Loads and caches an odML XML file from a URL.

Parameters:url – location of an odML XML file.
Returns:The odML document loaded from url.
loading = {}
pop(k[, d]) → v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised

popitem() → (k, v), remove and return some (key, value) pair as a

2-tuple; but raise KeyError if D is empty.

refresh(url)

Deletes and reloads all cached odML XML files given in the terminology file from a URL.

Parameters:url – location of an odML XML file.
reload_cache = False
setdefault()

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update([E, ]**F) → None. Update D from dict/iterable E and F.

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() → an object providing a view on D's values