schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes module

This module contains XSD types classes for xsdtypes package

schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.is_datetime(date_string, date_format='%Y-%m-%d')

Check if the string represents a valid datetime according to the specified formatting.

Parameters
  • date_string – The string containing the datetime

  • date_format – The reference formatting for datetime

Returns

True if the string is a valid datetime, False if not.

class schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType(name, python_type, validators=None, to_python=None, from_python=<class 'str'>)

Bases: object

Base class for representing generic XSD types. Use this class for create XSD built-in types.

An instance contains a Python’s type transformation ana a list of validator functions.

Use Python’s types conversion:

Decoding from XML: python_type(value) Encoding to XML: str(value)

__init__(name, python_type, validators=None, to_python=None, from_python=<class 'str'>)
Parameters
  • python_type – The correspondent Python’s type

  • validators – The optional validator for value objects

  • to_python – The optional decode function

  • from_python – The optional encode function

is_list()
validate(value)

Validator for decoded values. :param value: The Python’s object that has to be validated

decode(text)

Transform an XML text into a Python object. :param text: XML text

encode(obj)

Transform a Python object into an XML string. :param obj: The Python object that has to be encoded in XML

basename()

Get the name of the type without prefix or namespace URI.

get_rank()

The rank of the XSDType-only instance (an XSD builtin type) is always 0.

get_lengths(only_lists=True)
class schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDSimpleType(base_type, elem, name=None, is_list=False, length=None, validators=None, enumeration=None)

Bases: schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType

A class for represent XSD schema simple type.

__init__(base_type, elem, name=None, is_list=False, length=None, validators=None, enumeration=None)
Parameters
  • python_type – The correspondent Python’s type

  • validators – The optional validator for value objects

  • to_python – The optional decode function

  • from_python – The optional encode function

is_list()
validate(value)

Validator for decoded values. :param value: The Python’s object that has to be validated

decode(text)

Transform an XML text into a Python object. :param text: XML text

encode(obj)

Transform a Python object into an XML string. :param obj: The Python object that has to be encoded in XML

get_rank()

Compute the pseudo-dimension of the XSDSimpleType, considering the dimension of the base type.

Returns

int

get_lengths(only_lists=True)

Get the lengths defined for the XSD type.

Parameters

only_lists – Include lengths defined for other types.

Returns

a list with defined lengths

basename()

Get the name of the type without prefix or namespace URI.

class schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDComplexType(base_type, elem, name=None, is_list=False, validators=None, enumeration=None, content_model=None, attributes=None)

Bases: schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDSimpleType

A class for represent XSD schema simple type.

__init__(base_type, elem, name=None, is_list=False, validators=None, enumeration=None, content_model=None, attributes=None)
Parameters
  • python_type – The correspondent Python’s type

  • validators – The optional validator for value objects

  • to_python – The optional decode function

  • from_python – The optional encode function

basename()

Get the name of the type without prefix or namespace URI.

decode(text)

Transform an XML text into a Python object. :param text: XML text

encode(obj)

Transform a Python object into an XML string. :param obj: The Python object that has to be encoded in XML

get_lengths(only_lists=True)

Get the lengths defined for the XSD type.

Parameters

only_lists – Include lengths defined for other types.

Returns

a list with defined lengths

get_rank()

Compute the pseudo-dimension of the XSDSimpleType, considering the dimension of the base type.

Returns

int

is_list()
validate(value)

Validator for decoded values. :param value: The Python’s object that has to be validated

class schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDElement(name, path, xsd_type, attrib=None)

Bases: object

Support structure to associate an element and its attributes with XSD simple types.

__init__(name, path, xsd_type, attrib=None)

Initialize self. See help(type(self)) for accurate signature.

name

The name is the element tag

path

The XPath of this element

xsd_type

XSD type of the element

attrib

Attributes of element declaration (eg. minOccurs, default …)

basename()

Get the name of the element without prefix or namespace URI.

get_type()
is_optional()
get_default()
get_min_occurs()
get_max_occurs()
class schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDAttribute(xsd_type, attrib=None)

Bases: object

Support structure to associate an attribute with XSD simple types.

__init__(xsd_type, attrib=None)

Initialize self. See help(type(self)) for accurate signature.

xsd_type

XSD type of the attribute

attrib

Attributes of attribute declaration (eg. use, default, …)

get_type()
is_optional()
get_default()
class schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDGroup(name=None, group_type=None, attrib=None, *args, **kwargs)

Bases: list

__init__(name=None, group_type=None, attrib=None, *args, **kwargs)

Initialize self. See help(type(self)) for accurate signature.

attrib

Attributes of element declaration (eg. minOccurs, default …)

get_min_occurs()
get_max_occurs()
__contains__(key, /)

Return key in self.

__len__()

Return len(self).

append(object, /)

Append object to the end of the list.

clear()

Remove all items from list.

copy()

Return a shallow copy of the list.

count(value, /)

Return number of occurrences of value.

extend(iterable, /)

Extend list by appending elements from the iterable.

index(value, start=0, stop=9223372036854775807, /)

Return first index of value.

Raises ValueError if the value is not present.

insert(index, object, /)

Insert object before index.

pop(index=- 1, /)

Remove and return item at index (default last).

Raises IndexError if list is empty or index is out of range.

remove(value, /)

Remove first occurrence of value.

Raises ValueError if the value is not present.

reverse()

Reverse IN PLACE.

sort(*, key=None, reverse=False)

Sort the list in ascending order and return None.

The sort is in-place (i.e. the list itself is modified) and stable (i.e. the order of two equal elements is maintained).

If a key function is given, apply it once to each list item and sort them, ascending or descending, according to their function values.

The reverse flag can be set to sort in descending order.

schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.xsd_builtin_types_factory(xsd_type_class=<class 'schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType'>, *args, **kwargs)

Build a dictionary for XSD builtin types mapping.

Parameters
  • xsd_type_class – XSDType class for instances.

  • args – List of tuples containing a single definition.

  • kwargs – A dictionary with multiple built-in type declarations.

Returns

Dictionary that map a type name to a decoding type class instance

schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSD_BUILTIN_TYPES = {'QName': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'anyType': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'anyURI': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'boolean': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'byte': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'date': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'dateTime': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'decimal': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'double': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'duration': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'float': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'gDay': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'gMonth': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'gMonthDay': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'gYear': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'gYearMonth': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'int': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'integer': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'long': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'negativeInteger': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'nonNegativeInteger': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'nonPositiveInteger': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'positiveInteger': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'short': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'string': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'time': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'unsignedByte': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'unsignedInt': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'unsignedLong': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>, 'unsignedShort': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDType object>}

Dictionary for XSD built-in types mapping. The values are XSDType instances

schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSI_ATTRIBUTES = {'{http://www.w3.org/2001/XMLSchema-instance}noNamespaceSchemaLocation': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDAttribute object>, '{http://www.w3.org/2001/XMLSchema-instance}schemaLocation': <schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.XSDAttribute object>}

XSI attributes for schema instances

schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.xsd_simple_type_factory(elem, **kwargs)

Factory function for XSD simple type declaration.

Parameters

elem – The ElementTree’s Element. It must be

a simpleType declaration element. :param kwargs: Various lookup tables and parameters, dependant by the context where the function is called. :return: a couple with the type_name, that maybe an empty string, and the XSDSimpleType instance that represents the XSD declaration.

schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.xsd_attribute_type_factory(elem, **kwargs)

Factory function for XSD attribute declaration.

Parameters

elem – The ElementTree’s Element. It must be

a attribute declaration element. :param kwargs: Various lookup tables and parameters, dependant by the context where the function is called. :return: a couple with the attribute name and the instance of XSDType associated with it.

schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.xsd_complex_type_factory(elem, **kwargs)

Factory function for XSD complex type declaration.

Parameters

elem – The ElementTree’s Element. It must be

a complexType declaration element. :param kwargs: Various lookup tables and parameters, dependant by the context where the function is called. :return: a couple with the type_name, that maybe an empty string, and the XSDComplexType instance that represents the XSD declaration.

schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.xsd_group_factory(elem, **kwargs)
schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.xsd_element_factory(elem, xsd_element=None, **kwargs)

Factory function for XSD element declaration. The function walks through complexTypes to find declarations of descendant XSD elements.

Parameters

elem – The ElementTree’s Element. It must be

an element declaration element. :param xsd_element: The complex type, if it’s already created. :param kwargs: Various lookup tables and parameters, dependant by the context where the function is called. An xsd_elements dictionary is needed as the destination of the XSD element declarations.

schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.add_xsd_types_to_dict(declarations, target_dict, factory_function, **kwargs)

Function to add XSD global types declarations. Unresolved references to other types in the list are retried until are completed.

Parameters

declarations – Sequence of XSD simpleType/complexType

declarations. :param target_dict: Dictionary for type declarations. :param factory_function: Factory function to use. :param kwargs: Various arguments to pass to the factory function.

schrodinger.application.matsci.qexsd.qespresso.xsdtypes.xsdtypes.xsd_get_type(type_name, xsd_types)

Lookup for a XSD type in XSD predefined built-in types map and in XML Schema types map.

Parameters
  • type_name – XSD type name

  • xsd_types – Map for XSD simple types

Returns

BaseXSDType/XSDSimpleType instance